From 938ef444389918a8397508a9f39f4be80242e5df Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Tue, 30 Jan 2018 13:34:03 -0500 Subject: [PATCH 01/65] Bug 1422393 - Add reftest. r=mstange MozReview-Commit-ID: LwNQqnP9r8j --HG-- extra : rebase_source : 1981685a91e871e608fdb76040f790da21aa3e8d --- layout/reftests/bugs/1422393-ref.html | 21 +++++++++++++++++++++ layout/reftests/bugs/1422393.html | 22 ++++++++++++++++++++++ layout/reftests/bugs/reftest.list | 1 + 3 files changed, 44 insertions(+) create mode 100644 layout/reftests/bugs/1422393-ref.html create mode 100644 layout/reftests/bugs/1422393.html diff --git a/layout/reftests/bugs/1422393-ref.html b/layout/reftests/bugs/1422393-ref.html new file mode 100644 index 000000000000..8660e2ec7a21 --- /dev/null +++ b/layout/reftests/bugs/1422393-ref.html @@ -0,0 +1,21 @@ + + + +Table border-collapse borders are too opaque and overlap in the corners + + + +
diff --git a/layout/reftests/bugs/1422393.html b/layout/reftests/bugs/1422393.html new file mode 100644 index 000000000000..c9c7308282e0 --- /dev/null +++ b/layout/reftests/bugs/1422393.html @@ -0,0 +1,22 @@ + + + +Table border-collapse borders are too opaque and overlap in the corners + + + +
diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index 2588ec7126b7..b813412a6e84 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -2054,6 +2054,7 @@ needs-focus != 1377447-1.html 1377447-2.html test-pref(font.size.systemFontScale,200) == 1412743.html 1412743-ref.html == 1419820-1.html 1419820-1-ref.html == 1420946-1.html 1420946-1-ref.html +== 1422393.html 1422393-ref.html == 1424177.html 1424177-ref.html == 1424680.html 1424680-ref.html == 1424798-1.html 1424798-ref.html From 7067b76c956ce8f26c90beede25fa1bf2cdec2bd Mon Sep 17 00:00:00 2001 From: Ed Lee Date: Mon, 29 Jan 2018 15:22:26 -0800 Subject: [PATCH 02/65] Bug 1434116 - Add direct adding, thumbnail disabling and bug fixes to Activity Stream. r=ursula MozReview-Commit-ID: J8WNlfmATf6 --HG-- extra : rebase_source : 309dd3f7b074e970926cba73996ddca037585134 --- .../css/activity-stream-linux.css | 68 +- .../css/activity-stream-mac.css | 68 +- .../css/activity-stream-windows.css | 68 +- .../data/content/activity-stream.bundle.js | 773 ++++++++---------- .../extensions/activity-stream/install.rdf.in | 2 +- .../activity-stream/lib/ActivityStream.jsm | 9 +- .../lib/ActivityStreamPrefs.jsm | 3 + .../activity-stream/lib/HighlightsFeed.jsm | 2 +- .../activity-stream/lib/LinksCache.jsm | 12 +- .../activity-stream/lib/NewTabInit.jsm | 2 + .../activity-stream/lib/PlacesFeed.jsm | 49 +- .../activity-stream/lib/PrefsFeed.jsm | 2 + .../activity-stream/lib/Screenshots.jsm | 24 + .../activity-stream/lib/TelemetryFeed.jsm | 2 +- .../activity-stream/lib/TippyTopProvider.jsm | 2 + .../activity-stream/lib/TopSitesFeed.jsm | 3 +- .../activity-stream/lib/TopStoriesFeed.jsm | 11 +- .../lib/UserDomainAffinityProvider.jsm | 2 +- .../ach/activity-stream-prerendered.html | 2 +- .../locales/ach/activity-stream-strings.js | 2 + .../ar/activity-stream-prerendered.html | 2 +- .../locales/ar/activity-stream-strings.js | 2 + .../ast/activity-stream-prerendered.html | 2 +- .../locales/ast/activity-stream-strings.js | 2 + .../az/activity-stream-prerendered.html | 2 +- .../locales/az/activity-stream-strings.js | 2 + .../be/activity-stream-prerendered.html | 2 +- .../locales/be/activity-stream-strings.js | 2 + .../bg/activity-stream-prerendered.html | 2 +- .../locales/bg/activity-stream-strings.js | 2 + .../bn-BD/activity-stream-prerendered.html | 2 +- .../locales/bn-BD/activity-stream-strings.js | 2 + .../bn-IN/activity-stream-prerendered.html | 2 +- .../locales/bn-IN/activity-stream-strings.js | 2 + .../br/activity-stream-prerendered.html | 2 +- .../locales/br/activity-stream-strings.js | 2 + .../bs/activity-stream-prerendered.html | 2 +- .../locales/bs/activity-stream-strings.js | 2 + .../ca/activity-stream-prerendered.html | 2 +- .../locales/ca/activity-stream-strings.js | 2 + .../cak/activity-stream-prerendered.html | 2 +- .../locales/cak/activity-stream-strings.js | 2 + .../cs/activity-stream-prerendered.html | 2 +- .../locales/cs/activity-stream-strings.js | 4 +- .../cy/activity-stream-prerendered.html | 2 +- .../locales/cy/activity-stream-strings.js | 2 + .../da/activity-stream-prerendered.html | 2 +- .../locales/da/activity-stream-strings.js | 2 + .../de/activity-stream-prerendered.html | 2 +- .../locales/de/activity-stream-strings.js | 2 + .../dsb/activity-stream-prerendered.html | 2 +- .../locales/dsb/activity-stream-strings.js | 2 + .../el/activity-stream-prerendered.html | 2 +- .../locales/el/activity-stream-strings.js | 2 + .../en-GB/activity-stream-prerendered.html | 2 +- .../locales/en-GB/activity-stream-strings.js | 2 + .../en-US/activity-stream-prerendered.html | 2 +- .../locales/en-US/activity-stream-strings.js | 2 + .../eo/activity-stream-prerendered.html | 2 +- .../locales/eo/activity-stream-strings.js | 2 + .../es-AR/activity-stream-prerendered.html | 2 +- .../locales/es-AR/activity-stream-strings.js | 2 + .../es-CL/activity-stream-prerendered.html | 2 +- .../locales/es-CL/activity-stream-strings.js | 2 + .../es-ES/activity-stream-prerendered.html | 2 +- .../locales/es-ES/activity-stream-strings.js | 2 + .../es-MX/activity-stream-prerendered.html | 2 +- .../locales/es-MX/activity-stream-strings.js | 2 + .../et/activity-stream-prerendered.html | 2 +- .../locales/et/activity-stream-strings.js | 2 + .../eu/activity-stream-prerendered.html | 2 +- .../locales/eu/activity-stream-strings.js | 2 + .../fa/activity-stream-prerendered.html | 2 +- .../locales/fa/activity-stream-strings.js | 2 + .../ff/activity-stream-prerendered.html | 2 +- .../locales/ff/activity-stream-strings.js | 22 +- .../fi/activity-stream-prerendered.html | 2 +- .../locales/fi/activity-stream-strings.js | 2 + .../fr/activity-stream-prerendered.html | 2 +- .../locales/fr/activity-stream-strings.js | 2 + .../fy-NL/activity-stream-prerendered.html | 2 +- .../locales/fy-NL/activity-stream-strings.js | 2 + .../ga-IE/activity-stream-prerendered.html | 2 +- .../locales/ga-IE/activity-stream-strings.js | 2 + .../gd/activity-stream-prerendered.html | 2 +- .../locales/gd/activity-stream-strings.js | 10 +- .../gl/activity-stream-prerendered.html | 2 +- .../locales/gl/activity-stream-strings.js | 2 + .../gn/activity-stream-prerendered.html | 2 +- .../locales/gn/activity-stream-strings.js | 2 + .../gu-IN/activity-stream-prerendered.html | 2 +- .../locales/gu-IN/activity-stream-strings.js | 2 + .../he/activity-stream-prerendered.html | 2 +- .../locales/he/activity-stream-strings.js | 2 + .../hi-IN/activity-stream-prerendered.html | 2 +- .../locales/hi-IN/activity-stream-strings.js | 2 + .../hr/activity-stream-prerendered.html | 2 +- .../locales/hr/activity-stream-strings.js | 2 + .../hsb/activity-stream-prerendered.html | 2 +- .../locales/hsb/activity-stream-strings.js | 2 + .../hu/activity-stream-prerendered.html | 2 +- .../locales/hu/activity-stream-strings.js | 2 + .../hy-AM/activity-stream-prerendered.html | 2 +- .../locales/hy-AM/activity-stream-strings.js | 2 + .../ia/activity-stream-prerendered.html | 2 +- .../locales/ia/activity-stream-strings.js | 2 + .../id/activity-stream-prerendered.html | 2 +- .../locales/id/activity-stream-strings.js | 2 + .../it/activity-stream-prerendered.html | 2 +- .../locales/it/activity-stream-strings.js | 2 + .../ja/activity-stream-prerendered.html | 2 +- .../locales/ja/activity-stream-strings.js | 2 + .../ka/activity-stream-prerendered.html | 2 +- .../locales/ka/activity-stream-strings.js | 2 + .../kab/activity-stream-prerendered.html | 2 +- .../locales/kab/activity-stream-strings.js | 2 + .../kk/activity-stream-prerendered.html | 2 +- .../locales/kk/activity-stream-strings.js | 2 + .../km/activity-stream-prerendered.html | 2 +- .../locales/km/activity-stream-strings.js | 2 + .../kn/activity-stream-prerendered.html | 2 +- .../locales/kn/activity-stream-strings.js | 2 + .../ko/activity-stream-prerendered.html | 2 +- .../locales/ko/activity-stream-strings.js | 2 + .../lij/activity-stream-prerendered.html | 2 +- .../locales/lij/activity-stream-strings.js | 2 + .../lo/activity-stream-prerendered.html | 2 +- .../locales/lo/activity-stream-strings.js | 2 + .../lt/activity-stream-prerendered.html | 2 +- .../locales/lt/activity-stream-strings.js | 2 + .../ltg/activity-stream-prerendered.html | 2 +- .../locales/ltg/activity-stream-strings.js | 2 + .../lv/activity-stream-prerendered.html | 2 +- .../locales/lv/activity-stream-strings.js | 2 + .../mk/activity-stream-prerendered.html | 2 +- .../locales/mk/activity-stream-strings.js | 2 + .../ml/activity-stream-prerendered.html | 2 +- .../locales/ml/activity-stream-strings.js | 2 + .../mr/activity-stream-prerendered.html | 2 +- .../locales/mr/activity-stream-strings.js | 2 + .../ms/activity-stream-prerendered.html | 2 +- .../locales/ms/activity-stream-strings.js | 2 + .../my/activity-stream-prerendered.html | 2 +- .../locales/my/activity-stream-strings.js | 2 + .../nb-NO/activity-stream-prerendered.html | 2 +- .../locales/nb-NO/activity-stream-strings.js | 2 + .../ne-NP/activity-stream-prerendered.html | 2 +- .../locales/ne-NP/activity-stream-strings.js | 2 + .../nl/activity-stream-prerendered.html | 2 +- .../locales/nl/activity-stream-strings.js | 2 + .../nn-NO/activity-stream-prerendered.html | 2 +- .../locales/nn-NO/activity-stream-strings.js | 2 + .../pa-IN/activity-stream-prerendered.html | 2 +- .../locales/pa-IN/activity-stream-strings.js | 2 + .../pl/activity-stream-prerendered.html | 2 +- .../locales/pl/activity-stream-strings.js | 4 +- .../pt-BR/activity-stream-prerendered.html | 2 +- .../locales/pt-BR/activity-stream-strings.js | 2 + .../pt-PT/activity-stream-prerendered.html | 2 +- .../locales/pt-PT/activity-stream-strings.js | 2 + .../rm/activity-stream-prerendered.html | 2 +- .../locales/rm/activity-stream-strings.js | 2 + .../ro/activity-stream-prerendered.html | 2 +- .../locales/ro/activity-stream-strings.js | 2 + .../ru/activity-stream-prerendered.html | 2 +- .../locales/ru/activity-stream-strings.js | 2 + .../si/activity-stream-prerendered.html | 2 +- .../locales/si/activity-stream-strings.js | 2 + .../sk/activity-stream-prerendered.html | 2 +- .../locales/sk/activity-stream-strings.js | 2 + .../sl/activity-stream-prerendered.html | 2 +- .../locales/sl/activity-stream-strings.js | 2 + .../sq/activity-stream-prerendered.html | 2 +- .../locales/sq/activity-stream-strings.js | 2 + .../sr/activity-stream-prerendered.html | 2 +- .../locales/sr/activity-stream-strings.js | 2 + .../sv-SE/activity-stream-prerendered.html | 2 +- .../locales/sv-SE/activity-stream-strings.js | 2 + .../ta/activity-stream-prerendered.html | 2 +- .../locales/ta/activity-stream-strings.js | 2 + .../te/activity-stream-prerendered.html | 2 +- .../locales/te/activity-stream-strings.js | 8 +- .../th/activity-stream-prerendered.html | 2 +- .../locales/th/activity-stream-strings.js | 2 + .../tl/activity-stream-prerendered.html | 2 +- .../locales/tl/activity-stream-strings.js | 2 + .../tr/activity-stream-prerendered.html | 2 +- .../locales/tr/activity-stream-strings.js | 2 + .../uk/activity-stream-prerendered.html | 2 +- .../locales/uk/activity-stream-strings.js | 2 + .../ur/activity-stream-prerendered.html | 2 +- .../locales/ur/activity-stream-strings.js | 2 + .../uz/activity-stream-prerendered.html | 2 +- .../locales/uz/activity-stream-strings.js | 2 + .../vi/activity-stream-prerendered.html | 2 +- .../locales/vi/activity-stream-strings.js | 2 + .../zh-CN/activity-stream-prerendered.html | 2 +- .../locales/zh-CN/activity-stream-strings.js | 2 + .../zh-TW/activity-stream-prerendered.html | 2 +- .../locales/zh-TW/activity-stream-strings.js | 2 + .../activity-stream-prerendered-debug.html | 2 +- .../activity-stream/test/.eslintrc.js | 5 +- .../mochitest/browser_topsites_section.js | 10 +- .../unit/activity-stream-prerender.test.jsx | 2 +- .../test/unit/common/Reducers.test.js | 10 +- .../test/unit/lib/ActivityStream.test.js | 6 +- .../lib/ActivityStreamMessageChannel.test.js | 4 +- .../test/unit/lib/FaviconFeed.test.js | 2 +- .../test/unit/lib/HighlightsFeed.test.js | 5 +- .../test/unit/lib/PlacesFeed.test.js | 93 ++- .../test/unit/lib/Screenshots.test.js | 48 ++ .../test/unit/lib/SectionsManager.test.js | 14 +- .../test/unit/lib/SnippetsFeed.test.js | 4 +- .../test/unit/lib/TopSitesFeed.test.js | 21 +- .../test/unit/lib/TopStoriesFeed.test.js | 16 +- .../test/unit/lib/init-store.test.js | 4 +- .../activity-stream/test/unit/unit-entry.js | 2 +- 217 files changed, 902 insertions(+), 850 deletions(-) diff --git a/browser/extensions/activity-stream/css/activity-stream-linux.css b/browser/extensions/activity-stream/css/activity-stream-linux.css index cc78bdeeefed..63c9b18b39be 100644 --- a/browser/extensions/activity-stream/css/activity-stream-linux.css +++ b/browser/extensions/activity-stream/css/activity-stream-linux.css @@ -408,59 +408,18 @@ main { padding: 0 13px; } .top-sites-list .top-site-outer .edit-button { background-image: url("../data/content/assets/glyph-edit-16.svg"); } - .top-sites-list .top-site-outer .edit-menu { - background: #FFF; - border: 1px solid #B1B1B3; - border-radius: 12.5px; - box-shadow: 0 2px rgba(12, 12, 13, 0.1); - height: 25px; - position: absolute; - offset-inline-end: -12.5px; - opacity: 0; - overflow: hidden; - top: -12.5px; - transform: scale(0.25); - transition-property: transform, opacity; - transition-duration: 200ms; - z-index: 1000; } - .top-sites-list .top-site-outer .edit-menu:-moz-any(:active, :focus) { - transform: scale(1); - opacity: 1; } - .top-sites-list .top-site-outer .edit-menu button { - border: 0; - border-right: 1px solid #B1B1B3; - background-color: #FFF; - cursor: pointer; - height: 100%; - width: 25px; } - .top-sites-list .top-site-outer .edit-menu button:hover { - background-color: #EDEDF0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:last-child:dir(rtl) { - width: 30px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - width: 28px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr) { - border-right: 0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - border-right: 0; } .top-sites-list .top-site-outer.placeholder .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); } .top-sites-list .top-site-outer.placeholder .screenshot { display: none; } - .top-sites-list .top-site-outer.placeholder .edit-menu:last-child button { - background-size: 13px; - width: 23px; } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB; transition: box-shadow 150ms; } - .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .edit-menu { - opacity: 1; - transform: scale(1); } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button { opacity: 1; transform: scale(1); } -.edit-topsites-wrapper .edit-topsites-button { +.edit-topsites-wrapper .add-topsites-button { border-right: 1px solid #D7D7DB; line-height: 13px; offset-inline-end: 24px; @@ -470,19 +429,19 @@ main { position: absolute; top: 2px; transition: opacity 0.2s cubic-bezier(0.07, 0.95, 0, 1); } - .edit-topsites-wrapper .edit-topsites-button:dir(rtl) { + .edit-topsites-wrapper .add-topsites-button:dir(rtl) { border-left: 1px solid #D7D7DB; border-right: 0; } - .edit-topsites-wrapper .edit-topsites-button:-moz-any(:active, :focus) { + .edit-topsites-wrapper .add-topsites-button:-moz-any(:active, :focus) { opacity: 1; } - .edit-topsites-wrapper .edit-topsites-button button { + .edit-topsites-wrapper .add-topsites-button button { background: none; border: 0; color: #737373; cursor: pointer; font-size: 12px; padding: 0; } - .edit-topsites-wrapper .edit-topsites-button button:focus { + .edit-topsites-wrapper .add-topsites-button button:focus { background: #EDEDF0; border-bottom: dotted 1px #737373; } @@ -497,22 +456,7 @@ main { margin: 0; padding: 15px 30px; } -.edit-topsites-wrapper .show-more, -.edit-topsites-wrapper .show-less { - background-position: left 10px center; - background-repeat: no-repeat; - height: auto; - margin-inline-start: 10px; - padding-inline-end: 15px; - width: auto; } - .edit-topsites-wrapper .show-more:dir(rtl), - .edit-topsites-wrapper .show-less:dir(rtl) { - background-position: right 10px center; } - .edit-topsites-wrapper .show-more span, - .edit-topsites-wrapper .show-less span { - padding-inline-start: 3px; } - -.top-sites:not(.collapsed):hover .edit-topsites-button { +.top-sites:not(.collapsed):hover .add-topsites-button { opacity: 1; pointer-events: auto; } diff --git a/browser/extensions/activity-stream/css/activity-stream-mac.css b/browser/extensions/activity-stream/css/activity-stream-mac.css index b836161d1a63..2a070e19a9f3 100644 --- a/browser/extensions/activity-stream/css/activity-stream-mac.css +++ b/browser/extensions/activity-stream/css/activity-stream-mac.css @@ -408,59 +408,18 @@ main { padding: 0 13px; } .top-sites-list .top-site-outer .edit-button { background-image: url("../data/content/assets/glyph-edit-16.svg"); } - .top-sites-list .top-site-outer .edit-menu { - background: #FFF; - border: 1px solid #B1B1B3; - border-radius: 12.5px; - box-shadow: 0 2px rgba(12, 12, 13, 0.1); - height: 25px; - position: absolute; - offset-inline-end: -12.5px; - opacity: 0; - overflow: hidden; - top: -12.5px; - transform: scale(0.25); - transition-property: transform, opacity; - transition-duration: 200ms; - z-index: 1000; } - .top-sites-list .top-site-outer .edit-menu:-moz-any(:active, :focus) { - transform: scale(1); - opacity: 1; } - .top-sites-list .top-site-outer .edit-menu button { - border: 0; - border-right: 1px solid #B1B1B3; - background-color: #FFF; - cursor: pointer; - height: 100%; - width: 25px; } - .top-sites-list .top-site-outer .edit-menu button:hover { - background-color: #EDEDF0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:last-child:dir(rtl) { - width: 30px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - width: 28px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr) { - border-right: 0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - border-right: 0; } .top-sites-list .top-site-outer.placeholder .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); } .top-sites-list .top-site-outer.placeholder .screenshot { display: none; } - .top-sites-list .top-site-outer.placeholder .edit-menu:last-child button { - background-size: 13px; - width: 23px; } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB; transition: box-shadow 150ms; } - .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .edit-menu { - opacity: 1; - transform: scale(1); } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button { opacity: 1; transform: scale(1); } -.edit-topsites-wrapper .edit-topsites-button { +.edit-topsites-wrapper .add-topsites-button { border-right: 1px solid #D7D7DB; line-height: 13px; offset-inline-end: 24px; @@ -470,19 +429,19 @@ main { position: absolute; top: 2px; transition: opacity 0.2s cubic-bezier(0.07, 0.95, 0, 1); } - .edit-topsites-wrapper .edit-topsites-button:dir(rtl) { + .edit-topsites-wrapper .add-topsites-button:dir(rtl) { border-left: 1px solid #D7D7DB; border-right: 0; } - .edit-topsites-wrapper .edit-topsites-button:-moz-any(:active, :focus) { + .edit-topsites-wrapper .add-topsites-button:-moz-any(:active, :focus) { opacity: 1; } - .edit-topsites-wrapper .edit-topsites-button button { + .edit-topsites-wrapper .add-topsites-button button { background: none; border: 0; color: #737373; cursor: pointer; font-size: 12px; padding: 0; } - .edit-topsites-wrapper .edit-topsites-button button:focus { + .edit-topsites-wrapper .add-topsites-button button:focus { background: #EDEDF0; border-bottom: dotted 1px #737373; } @@ -497,22 +456,7 @@ main { margin: 0; padding: 15px 30px; } -.edit-topsites-wrapper .show-more, -.edit-topsites-wrapper .show-less { - background-position: left 10px center; - background-repeat: no-repeat; - height: auto; - margin-inline-start: 10px; - padding-inline-end: 15px; - width: auto; } - .edit-topsites-wrapper .show-more:dir(rtl), - .edit-topsites-wrapper .show-less:dir(rtl) { - background-position: right 10px center; } - .edit-topsites-wrapper .show-more span, - .edit-topsites-wrapper .show-less span { - padding-inline-start: 3px; } - -.top-sites:not(.collapsed):hover .edit-topsites-button { +.top-sites:not(.collapsed):hover .add-topsites-button { opacity: 1; pointer-events: auto; } diff --git a/browser/extensions/activity-stream/css/activity-stream-windows.css b/browser/extensions/activity-stream/css/activity-stream-windows.css index fcc9466a56aa..b720aade1a85 100644 --- a/browser/extensions/activity-stream/css/activity-stream-windows.css +++ b/browser/extensions/activity-stream/css/activity-stream-windows.css @@ -408,59 +408,18 @@ main { padding: 0 13px; } .top-sites-list .top-site-outer .edit-button { background-image: url("../data/content/assets/glyph-edit-16.svg"); } - .top-sites-list .top-site-outer .edit-menu { - background: #FFF; - border: 1px solid #B1B1B3; - border-radius: 12.5px; - box-shadow: 0 2px rgba(12, 12, 13, 0.1); - height: 25px; - position: absolute; - offset-inline-end: -12.5px; - opacity: 0; - overflow: hidden; - top: -12.5px; - transform: scale(0.25); - transition-property: transform, opacity; - transition-duration: 200ms; - z-index: 1000; } - .top-sites-list .top-site-outer .edit-menu:-moz-any(:active, :focus) { - transform: scale(1); - opacity: 1; } - .top-sites-list .top-site-outer .edit-menu button { - border: 0; - border-right: 1px solid #B1B1B3; - background-color: #FFF; - cursor: pointer; - height: 100%; - width: 25px; } - .top-sites-list .top-site-outer .edit-menu button:hover { - background-color: #EDEDF0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:last-child:dir(rtl) { - width: 30px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr), .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - width: 28px; } - .top-sites-list .top-site-outer .edit-menu button:last-child:dir(ltr) { - border-right: 0; } - .top-sites-list .top-site-outer .edit-menu button:first-child:dir(rtl) { - border-right: 0; } .top-sites-list .top-site-outer.placeholder .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); } .top-sites-list .top-site-outer.placeholder .screenshot { display: none; } - .top-sites-list .top-site-outer.placeholder .edit-menu:last-child button { - background-size: 13px; - width: 23px; } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile { box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB; transition: box-shadow 150ms; } - .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .edit-menu { - opacity: 1; - transform: scale(1); } .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button { opacity: 1; transform: scale(1); } -.edit-topsites-wrapper .edit-topsites-button { +.edit-topsites-wrapper .add-topsites-button { border-right: 1px solid #D7D7DB; line-height: 13px; offset-inline-end: 24px; @@ -470,19 +429,19 @@ main { position: absolute; top: 2px; transition: opacity 0.2s cubic-bezier(0.07, 0.95, 0, 1); } - .edit-topsites-wrapper .edit-topsites-button:dir(rtl) { + .edit-topsites-wrapper .add-topsites-button:dir(rtl) { border-left: 1px solid #D7D7DB; border-right: 0; } - .edit-topsites-wrapper .edit-topsites-button:-moz-any(:active, :focus) { + .edit-topsites-wrapper .add-topsites-button:-moz-any(:active, :focus) { opacity: 1; } - .edit-topsites-wrapper .edit-topsites-button button { + .edit-topsites-wrapper .add-topsites-button button { background: none; border: 0; color: #737373; cursor: pointer; font-size: 12px; padding: 0; } - .edit-topsites-wrapper .edit-topsites-button button:focus { + .edit-topsites-wrapper .add-topsites-button button:focus { background: #EDEDF0; border-bottom: dotted 1px #737373; } @@ -497,22 +456,7 @@ main { margin: 0; padding: 15px 30px; } -.edit-topsites-wrapper .show-more, -.edit-topsites-wrapper .show-less { - background-position: left 10px center; - background-repeat: no-repeat; - height: auto; - margin-inline-start: 10px; - padding-inline-end: 15px; - width: auto; } - .edit-topsites-wrapper .show-more:dir(rtl), - .edit-topsites-wrapper .show-less:dir(rtl) { - background-position: right 10px center; } - .edit-topsites-wrapper .show-more span, - .edit-topsites-wrapper .show-less span { - padding-inline-start: 3px; } - -.top-sites:not(.collapsed):hover .edit-topsites-button { +.top-sites:not(.collapsed):hover .add-topsites-button { opacity: 1; pointer-events: auto; } diff --git a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js index d57f163f410d..8671b3e5c192 100644 --- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js +++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js @@ -755,12 +755,15 @@ class ContextMenu_ContextMenu extends external__React__default.a.PureComponent { super(props); this.hideContext = this.hideContext.bind(this); } + hideContext() { this.props.onUpdate(false); } + componentWillMount() { this.hideContext(); } + componentDidUpdate(prevProps) { if (this.props.visible && !prevProps.visible) { setTimeout(() => { @@ -771,9 +774,11 @@ class ContextMenu_ContextMenu extends external__React__default.a.PureComponent { window.removeEventListener("click", this.hideContext); } } + componentWillUnmount() { window.removeEventListener("click", this.hideContext); } + render() { return external__React__default.a.createElement( "span", @@ -793,10 +798,12 @@ class ContextMenu_ContextMenuItem extends external__React__default.a.PureCompone this.onClick = this.onClick.bind(this); this.onKeyDown = this.onKeyDown.bind(this); } + onClick() { this.props.hideContext(); this.props.option.onClick(); } + onKeyDown(event) { const { option } = this.props; switch (event.key) { @@ -814,6 +821,7 @@ class ContextMenu_ContextMenuItem extends external__React__default.a.PureCompone break; } } + render() { const { option } = this.props; return external__React__default.a.createElement( @@ -961,7 +969,7 @@ const DEFAULT_SITE_MENU_OPTIONS = ["CheckPinTopSite", "EditTopSite", "Separator" class LinkMenu__LinkMenu extends external__React__default.a.PureComponent { getOptions() { - const props = this.props; + const { props } = this; const { site, index, source } = props; // Handle special case of default site @@ -995,6 +1003,7 @@ class LinkMenu__LinkMenu extends external__React__default.a.PureComponent { options[options.length - 1].last = true; return options; } + render() { return external__React__default.a.createElement(ContextMenu_ContextMenu, { visible: this.props.visible, @@ -1057,20 +1066,24 @@ class Info extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.PureComponent { this.setState({ infoActive }); } } + onInfoEnter() { // We're getting focus or hover, so info state should be true if not yet. this._setInfoState(true); } + onInfoLeave(event) { // We currently have an active (true) info state, so keep it true only if we // have a related event target that is contained "within" the current target // (section-info-option) as itself or a descendant. Set to false otherwise. this._setInfoState(event && event.relatedTarget && (event.relatedTarget === event.currentTarget || event.relatedTarget.compareDocumentPosition(event.currentTarget) & Node.DOCUMENT_POSITION_CONTAINS)); } + onManageClick() { this.props.dispatch({ type: __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionTypes */].SETTINGS_OPEN }); this.props.dispatch(__WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].UserEvent({ event: "OPEN_NEWTAB_PREFS" })); } + render() { const { infoOption, intl } = this.props; const infoOptionIconA11yAttrs = { @@ -1141,7 +1154,7 @@ class Disclaimer extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.PureCompo } render() { - const disclaimer = this.props.disclaimer; + const { disclaimer } = this.props; return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement( "div", { className: "section-disclaimer" }, @@ -1185,6 +1198,7 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_2_react___default.a. componentWillMount() { this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation); } + componentWillUpdate(nextProps) { // Check if we're about to go from expanded to collapsed if (!getCollapsed(this.props) && getCollapsed(nextProps)) { @@ -1195,9 +1209,11 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_2_react___default.a. this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions } } + componentWillUnmount() { this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation); } + enableOrDisableAnimation() { // Only animate the collapse/expand for visible tabs. const visible = this.props.document.visibilityState === VISIBLE; @@ -1205,6 +1221,7 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_2_react___default.a. this.setState({ enableAnimation: visible }); } } + _setInfoState(nextActive) { // Take a truthy value to conditionally change the infoActive state. const infoActive = !!nextActive; @@ -1212,19 +1229,23 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_2_react___default.a. this.setState({ infoActive }); } } + onBodyMount(node) { this.sectionBody = node; } + onInfoEnter() { // We're getting focus or hover, so info state should be true if not yet. this._setInfoState(true); } + onInfoLeave(event) { // We currently have an active (true) info state, so keep it true only if we // have a related event target that is contained "within" the current target // (section-info-option) as itself or a descendant. Set to false otherwise. this._setInfoState(event && event.relatedTarget && (event.relatedTarget === event.currentTarget || event.relatedTarget.compareDocumentPosition(event.currentTarget) & Node.DOCUMENT_POSITION_CONTAINS)); } + onHeaderClick() { // Get the current height of the body so max-height transitions can work this.setState({ @@ -1233,19 +1254,22 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_2_react___default.a. }); this.props.dispatch(__WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].SetPref(this.props.prefName, !getCollapsed(this.props))); } + onTransitionEnd(event) { // Only update the animating state for our own transition (not a child's) if (event.target === event.currentTarget) { this.setState({ isAnimating: false }); } } + renderIcon() { - const icon = this.props.icon; + const { icon } = this.props; if (icon && icon.startsWith("moz-extension://")) { return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement("span", { className: "icon icon-small-spacer", style: { backgroundImage: `url('${icon}')` } }); } return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement("span", { className: `icon icon-small-spacer icon-${icon || "webextension"}` }); } + render() { const isCollapsible = this.props.prefName in this.props.Prefs.values; const isCollapsed = getCollapsed(this.props); @@ -1728,7 +1752,7 @@ class SnippetsMap extends Map { if (!id) { return; } - let blockList = this.blockList; + const { blockList } = this; if (!blockList.includes(id)) { blockList.push(id); this._dispatch(__WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].SendToMain({ type: __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionTypes */].SNIPPETS_BLOCKLIST_UPDATED, data: blockList })); @@ -2179,6 +2203,7 @@ class ManualMigration__ManualMigration extends external__React__default.a.PureCo this.onLaunchTour = this.onLaunchTour.bind(this); this.onCancelTour = this.onCancelTour.bind(this); } + onLaunchTour() { this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ type: Actions["b" /* actionTypes */].MIGRATION_START })); this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ event: Actions["b" /* actionTypes */].MIGRATION_START })); @@ -2264,6 +2289,7 @@ class PreferencesPane__PreferencesPane extends external__React__default.a.PureCo this.togglePane = this.togglePane.bind(this); this.onWrapperMount = this.onWrapperMount.bind(this); } + componentDidUpdate(prevProps, prevState) { if (prevProps.PreferencesPane.visible !== this.props.PreferencesPane.visible) { // While the sidebar is open, listen for all document clicks. @@ -2274,30 +2300,32 @@ class PreferencesPane__PreferencesPane extends external__React__default.a.PureCo } } } + isSidebarOpen() { return this.props.PreferencesPane.visible; } + handleClickOutside(event) { // if we are showing the sidebar and there is a click outside, close it. if (this.isSidebarOpen() && !this.wrapper.contains(event.target)) { this.togglePane(); } } - handlePrefChange(event) { - const target = event.target; - const { name, checked } = target; + + handlePrefChange({ target: { name, checked } }) { let value = checked; if (name === "topSitesCount") { value = checked ? Reducers["b" /* TOP_SITES_SHOWMORE_LENGTH */] : Reducers["a" /* TOP_SITES_DEFAULT_LENGTH */]; } this.props.dispatch(Actions["a" /* actionCreators */].SetPref(name, value)); } - handleSectionChange(event) { - const target = event.target; + + handleSectionChange({ target }) { const id = target.name; const type = target.checked ? Actions["b" /* actionTypes */].SECTION_ENABLE : Actions["b" /* actionTypes */].SECTION_DISABLE; this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ type, data: id })); } + togglePane() { if (this.isSidebarOpen()) { this.props.dispatch({ type: Actions["b" /* actionTypes */].SETTINGS_CLOSE }); @@ -2307,11 +2335,13 @@ class PreferencesPane__PreferencesPane extends external__React__default.a.PureCo this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ event: "OPEN_NEWTAB_PREFS" })); } } + onWrapperMount(wrapper) { this.wrapper = wrapper; } + render() { - const props = this.props; + const { props } = this; const prefs = props.Prefs.values; const sections = props.Sections; const isVisible = this.isSidebarOpen(); @@ -2526,12 +2556,15 @@ class Search__Search extends external__React__default.a.PureComponent { this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ event: "SEARCH" })); } } + onClick(event) { window.gContentSearchController.search(event); } + componentWillUnmount() { delete window.gContentSearchController; } + onInputMount(input) { if (input) { // The "healthReportKey" and needs to be "newtab" or "abouthome" so that @@ -2618,6 +2651,190 @@ var CollapsibleSection = __webpack_require__(7); // EXTERNAL MODULE: ./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx var ComponentPerfTimer = __webpack_require__(8); +// CONCATENATED MODULE: ./system-addon/content-src/components/TopSites/TopSiteForm.jsx + + + + + +class TopSiteForm_TopSiteForm extends external__React__default.a.PureComponent { + constructor(props) { + super(props); + this.state = { + label: props.label || "", + url: props.url || "", + validationError: false + }; + this.onLabelChange = this.onLabelChange.bind(this); + this.onUrlChange = this.onUrlChange.bind(this); + this.onCancelButtonClick = this.onCancelButtonClick.bind(this); + this.onAddButtonClick = this.onAddButtonClick.bind(this); + this.onSaveButtonClick = this.onSaveButtonClick.bind(this); + this.onUrlInputMount = this.onUrlInputMount.bind(this); + } + + onLabelChange(event) { + this.resetValidation(); + this.setState({ "label": event.target.value }); + } + + onUrlChange(event) { + this.resetValidation(); + this.setState({ "url": event.target.value }); + } + + onCancelButtonClick(ev) { + ev.preventDefault(); + this.props.onClose(); + } + + onAddButtonClick(ev) { + ev.preventDefault(); + if (this.validateForm()) { + let site = { url: this.cleanUrl() }; + if (this.state.label !== "") { + site.label = this.state.label; + } + this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ + type: Actions["b" /* actionTypes */].TOP_SITES_INSERT, + data: { site } + })); + this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ + source: TOP_SITES_SOURCE, + event: "TOP_SITES_ADD" + })); + this.props.onClose(); + } + } + + onSaveButtonClick(ev) { + ev.preventDefault(); + if (this.validateForm()) { + let site = { url: this.cleanUrl() }; + if (this.state.label !== "") { + site.label = this.state.label; + } + this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ + type: Actions["b" /* actionTypes */].TOP_SITES_PIN, + data: { site, index: this.props.index } + })); + this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ + source: TOP_SITES_SOURCE, + event: "TOP_SITES_EDIT", + action_position: this.props.index + })); + this.props.onClose(); + } + } + + cleanUrl() { + let { url } = this.state; + // If we are missing a protocol, prepend http:// + if (!url.startsWith("http:") && !url.startsWith("https:")) { + url = `http://${url}`; + } + return url; + } + + resetValidation() { + if (this.state.validationError) { + this.setState({ validationError: false }); + } + } + + validateUrl() { + try { + return !!new URL(this.cleanUrl()); + } catch (e) { + return false; + } + } + + validateForm() { + this.resetValidation(); + // Only the URL is required and must be valid. + if (!this.state.url || !this.validateUrl()) { + this.setState({ validationError: true }); + this.inputUrl.focus(); + return false; + } + return true; + } + + onUrlInputMount(input) { + this.inputUrl = input; + } + + render() { + return external__React__default.a.createElement( + "form", + { className: "topsite-form" }, + external__React__default.a.createElement( + "section", + { className: "edit-topsites-inner-wrapper" }, + external__React__default.a.createElement( + "div", + { className: "form-wrapper" }, + external__React__default.a.createElement( + "h3", + { className: "section-title" }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: this.props.editMode ? "topsites_form_edit_header" : "topsites_form_add_header" }) + ), + external__React__default.a.createElement( + "div", + { className: "field title" }, + external__React__default.a.createElement("input", { + type: "text", + value: this.state.label, + onChange: this.onLabelChange, + placeholder: this.props.intl.formatMessage({ id: "topsites_form_title_placeholder" }) }) + ), + external__React__default.a.createElement( + "div", + { className: `field url${this.state.validationError ? " invalid" : ""}` }, + external__React__default.a.createElement("input", { + type: "text", + ref: this.onUrlInputMount, + value: this.state.url, + onChange: this.onUrlChange, + placeholder: this.props.intl.formatMessage({ id: "topsites_form_url_placeholder" }) }), + this.state.validationError && external__React__default.a.createElement( + "aside", + { className: "error-tooltip" }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_url_validation" }) + ) + ) + ) + ), + external__React__default.a.createElement( + "section", + { className: "actions" }, + external__React__default.a.createElement( + "button", + { className: "cancel", type: "button", onClick: this.onCancelButtonClick }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_cancel_button" }) + ), + this.props.editMode && external__React__default.a.createElement( + "button", + { className: "done save", type: "submit", onClick: this.onSaveButtonClick }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_save_button" }) + ), + !this.props.editMode && external__React__default.a.createElement( + "button", + { className: "done add", type: "submit", onClick: this.onAddButtonClick }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_add_button" }) + ) + ) + ); + } +} + +TopSiteForm_TopSiteForm.defaultProps = { + label: "", + url: "", + index: 0, + editMode: false // by default we are in "Add New Top Site" mode +}; // EXTERNAL MODULE: ./system-addon/content-src/components/LinkMenu/LinkMenu.jsx + 2 modules var LinkMenu = __webpack_require__(6); @@ -2676,11 +2893,12 @@ class TopSite_TopSiteLink extends external__React__default.a.PureComponent { break; } } + render() { const { children, className, isDraggable, link, onClick, title } = this.props; const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : ""}`; const { tippyTopIcon, faviconSize } = link; - const letterFallback = title[0]; + const [letterFallback] = title; let imageClassName; let imageStyle; let showSmallFavicon = false; @@ -2765,10 +2983,8 @@ class TopSite_TopSite extends external__React__default.a.PureComponent { this.onLinkClick = this.onLinkClick.bind(this); this.onMenuButtonClick = this.onMenuButtonClick.bind(this); this.onMenuUpdate = this.onMenuUpdate.bind(this); - this.onDismissButtonClick = this.onDismissButtonClick.bind(this); - this.onPinButtonClick = this.onPinButtonClick.bind(this); - this.onEditButtonClick = this.onEditButtonClick.bind(this); } + userEvent(event) { this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ event, @@ -2776,55 +2992,21 @@ class TopSite_TopSite extends external__React__default.a.PureComponent { action_position: this.props.index })); } + onLinkClick(ev) { - if (this.props.onEdit) { - // Ignore clicks if we are in the edit modal. - ev.preventDefault(); - return; - } this.userEvent("CLICK"); } + onMenuButtonClick(event) { event.preventDefault(); this.props.onActivate(this.props.index); this.setState({ showContextMenu: true }); } + onMenuUpdate(showContextMenu) { this.setState({ showContextMenu }); } - onDismissButtonClick() { - const { link } = this.props; - if (link.isPinned) { - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].TOP_SITES_UNPIN, - data: { site: { url: link.url } } - })); - } - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].BLOCK_URL, - data: link.url - })); - this.userEvent("BLOCK"); - } - onPinButtonClick() { - const { link, index } = this.props; - if (link.isPinned) { - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].TOP_SITES_UNPIN, - data: { site: { url: link.url } } - })); - this.userEvent("UNPIN"); - } else { - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].TOP_SITES_PIN, - data: { site: { url: link.url }, index } - })); - this.userEvent("PIN"); - } - } - onEditButtonClick() { - this.props.onEdit(this.props.index); - } + render() { const { props } = this; const { link } = props; @@ -2833,7 +3015,7 @@ class TopSite_TopSite extends external__React__default.a.PureComponent { return external__React__default.a.createElement( TopSite_TopSiteLink, _extends({}, props, { onClick: this.onLinkClick, onDragEvent: this.props.onDragEvent, className: isContextMenuOpen ? "active" : "", title: title }), - !props.onEdit && external__React__default.a.createElement( + external__React__default.a.createElement( "div", null, external__React__default.a.createElement( @@ -2842,7 +3024,7 @@ class TopSite_TopSite extends external__React__default.a.PureComponent { external__React__default.a.createElement( "span", { className: "sr-only" }, - `Open context menu for ${title}` + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "context_menu_button_sr", values: { title } }) ) ), external__React__default.a.createElement(LinkMenu["a" /* LinkMenu */], { @@ -2853,22 +3035,6 @@ class TopSite_TopSite extends external__React__default.a.PureComponent { site: link, source: TOP_SITES_SOURCE, visible: isContextMenuOpen }) - ), - props.onEdit && external__React__default.a.createElement( - "div", - { className: "edit-menu" }, - external__React__default.a.createElement("button", { - className: `icon icon-${link.isPinned ? "unpin" : "pin"}`, - title: this.props.intl.formatMessage({ id: `edit_topsites_${link.isPinned ? "unpin" : "pin"}_button` }), - onClick: this.onPinButtonClick }), - external__React__default.a.createElement("button", { - className: "icon icon-edit", - title: this.props.intl.formatMessage({ id: "edit_topsites_edit_button" }), - onClick: this.onEditButtonClick }), - external__React__default.a.createElement("button", { - className: "icon icon-dismiss", - title: this.props.intl.formatMessage({ id: "edit_topsites_dismiss_button" }), - onClick: this.onDismissButtonClick }) ) ); } @@ -2905,28 +3071,34 @@ class TopSite_TopSitePlaceholder extends external__React__default.a.PureComponen } class TopSite__TopSiteList extends external__React__default.a.PureComponent { - constructor(props) { - super(props); - this.state = this.DEFAULT_STATE = { + static get DEFAULT_STATE() { + return { + activeIndex: null, draggedIndex: null, draggedSite: null, draggedTitle: null, - topSitesPreview: null, - activeIndex: null + topSitesPreview: null }; + } + + constructor(props) { + super(props); + this.state = TopSite__TopSiteList.DEFAULT_STATE; this.onDragEvent = this.onDragEvent.bind(this); this.onActivate = this.onActivate.bind(this); } + componentWillUpdate(nextProps) { if (this.state.draggedSite) { const prevTopSites = this.props.TopSites && this.props.TopSites.rows; const newTopSites = nextProps.TopSites && nextProps.TopSites.rows; if (prevTopSites && prevTopSites[this.state.draggedIndex] && prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url && (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) { // We got the new order from the redux store via props. We can clear state now. - this.setState(this.DEFAULT_STATE); + this.setState(TopSite__TopSiteList.DEFAULT_STATE); } } } + userEvent(event, index) { this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ event, @@ -2934,6 +3106,7 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent { action_position: index })); } + onDragEvent(event, index, link, title) { switch (event.type) { case "dragstart": @@ -2949,7 +3122,7 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent { case "dragend": if (!this.dropped) { // If there was no drop event, reset the state to the default. - this.setState(this.DEFAULT_STATE); + this.setState(TopSite__TopSiteList.DEFAULT_STATE); } break; case "dragenter": @@ -2971,6 +3144,7 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent { break; } } + _getTopSites() { // Make a copy of the sites to truncate or extend to desired length let topSites = this.props.TopSites.rows.slice(); @@ -3019,9 +3193,11 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent { return preview; } + onActivate(index) { this.setState({ activeIndex: index }); } + render() { const { props } = this; const topSites = this.state.topSitesPreview || this._getTopSites(); @@ -3060,353 +3236,6 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent { } const TopSiteList = Object(external__ReactIntl_["injectIntl"])(TopSite__TopSiteList); -// CONCATENATED MODULE: ./system-addon/content-src/components/TopSites/TopSiteForm.jsx - - - - - -class TopSiteForm_TopSiteForm extends external__React__default.a.PureComponent { - constructor(props) { - super(props); - this.state = { - label: props.label || "", - url: props.url || "", - validationError: false - }; - this.onLabelChange = this.onLabelChange.bind(this); - this.onUrlChange = this.onUrlChange.bind(this); - this.onCancelButtonClick = this.onCancelButtonClick.bind(this); - this.onAddButtonClick = this.onAddButtonClick.bind(this); - this.onSaveButtonClick = this.onSaveButtonClick.bind(this); - this.onUrlInputMount = this.onUrlInputMount.bind(this); - } - onLabelChange(event) { - this.resetValidation(); - this.setState({ "label": event.target.value }); - } - onUrlChange(event) { - this.resetValidation(); - this.setState({ "url": event.target.value }); - } - onCancelButtonClick(ev) { - ev.preventDefault(); - this.props.onClose(); - } - onAddButtonClick(ev) { - ev.preventDefault(); - if (this.validateForm()) { - let site = { url: this.cleanUrl() }; - if (this.state.label !== "") { - site.label = this.state.label; - } - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].TOP_SITES_INSERT, - data: { site } - })); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: "TOP_SITES_ADD" - })); - this.props.onClose(); - } - } - onSaveButtonClick(ev) { - ev.preventDefault(); - if (this.validateForm()) { - let site = { url: this.cleanUrl() }; - if (this.state.label !== "") { - site.label = this.state.label; - } - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].TOP_SITES_PIN, - data: { site, index: this.props.index } - })); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: "TOP_SITES_EDIT", - action_position: this.props.index - })); - this.props.onClose(); - } - } - cleanUrl() { - let url = this.state.url; - // If we are missing a protocol, prepend http:// - if (!url.startsWith("http:") && !url.startsWith("https:")) { - url = `http://${url}`; - } - return url; - } - resetValidation() { - if (this.state.validationError) { - this.setState({ validationError: false }); - } - } - validateUrl() { - try { - return !!new URL(this.cleanUrl()); - } catch (e) { - return false; - } - } - validateForm() { - this.resetValidation(); - // Only the URL is required and must be valid. - if (!this.state.url || !this.validateUrl()) { - this.setState({ validationError: true }); - this.inputUrl.focus(); - return false; - } - return true; - } - onUrlInputMount(input) { - this.inputUrl = input; - } - render() { - return external__React__default.a.createElement( - "form", - { className: "topsite-form" }, - external__React__default.a.createElement( - "section", - { className: "edit-topsites-inner-wrapper" }, - external__React__default.a.createElement( - "div", - { className: "form-wrapper" }, - external__React__default.a.createElement( - "h3", - { className: "section-title" }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: this.props.editMode ? "topsites_form_edit_header" : "topsites_form_add_header" }) - ), - external__React__default.a.createElement( - "div", - { className: "field title" }, - external__React__default.a.createElement("input", { - type: "text", - value: this.state.label, - onChange: this.onLabelChange, - placeholder: this.props.intl.formatMessage({ id: "topsites_form_title_placeholder" }) }) - ), - external__React__default.a.createElement( - "div", - { className: `field url${this.state.validationError ? " invalid" : ""}` }, - external__React__default.a.createElement("input", { - type: "text", - ref: this.onUrlInputMount, - value: this.state.url, - onChange: this.onUrlChange, - placeholder: this.props.intl.formatMessage({ id: "topsites_form_url_placeholder" }) }), - this.state.validationError && external__React__default.a.createElement( - "aside", - { className: "error-tooltip" }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_url_validation" }) - ) - ) - ) - ), - external__React__default.a.createElement( - "section", - { className: "actions" }, - external__React__default.a.createElement( - "button", - { className: "cancel", type: "button", onClick: this.onCancelButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_cancel_button" }) - ), - this.props.editMode && external__React__default.a.createElement( - "button", - { className: "done save", type: "submit", onClick: this.onSaveButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_save_button" }) - ), - !this.props.editMode && external__React__default.a.createElement( - "button", - { className: "done add", type: "submit", onClick: this.onAddButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "topsites_form_add_button" }) - ) - ) - ); - } -} - -TopSiteForm_TopSiteForm.defaultProps = { - label: "", - url: "", - index: 0, - editMode: false // by default we are in "Add New Top Site" mode -}; -// CONCATENATED MODULE: ./system-addon/content-src/components/TopSites/TopSitesEdit.jsx - - - - - - - - -class TopSitesEdit__TopSitesEdit extends external__React__default.a.PureComponent { - constructor(props) { - super(props); - this.state = { - showEditModal: false, - showAddForm: false, - showEditForm: false, - editIndex: -1 // Index of top site being edited - }; - this.onEditButtonClick = this.onEditButtonClick.bind(this); - this.onShowMoreLessClick = this.onShowMoreLessClick.bind(this); - this.onModalOverlayClick = this.onModalOverlayClick.bind(this); - this.onAddButtonClick = this.onAddButtonClick.bind(this); - this.onFormClose = this.onFormClose.bind(this); - this.onEdit = this.onEdit.bind(this); - this.dispatchEditModalUserEvent = this.dispatchEditModalUserEvent.bind(this); - } - dispatchEditModalUserEvent() { - const event = this.state.showEditModal ? "TOP_SITES_EDIT_OPEN" : "TOP_SITES_EDIT_CLOSE"; - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event - })); - } - onEditButtonClick() { - function toggleEditModal(prevState) { - return { showEditModal: !prevState.showEditModal }; - } - this.setState(toggleEditModal, this.dispatchEditModalUserEvent); - } - onModalOverlayClick() { - this.setState({ showEditModal: false, showAddForm: false, showEditForm: false }); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: "TOP_SITES_EDIT_CLOSE" - })); - this.props.dispatch({ type: Actions["b" /* actionTypes */].TOP_SITES_CANCEL_EDIT }); - } - onShowMoreLessClick() { - const prefIsSetToDefault = this.props.TopSitesCount === Reducers["a" /* TOP_SITES_DEFAULT_LENGTH */]; - this.props.dispatch(Actions["a" /* actionCreators */].SendToMain({ - type: Actions["b" /* actionTypes */].SET_PREF, - data: { name: "topSitesCount", value: prefIsSetToDefault ? Reducers["b" /* TOP_SITES_SHOWMORE_LENGTH */] : Reducers["a" /* TOP_SITES_DEFAULT_LENGTH */] } - })); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: prefIsSetToDefault ? "TOP_SITES_EDIT_SHOW_MORE" : "TOP_SITES_EDIT_SHOW_LESS" - })); - } - onAddButtonClick() { - this.setState({ showAddForm: true }); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: "TOP_SITES_ADD_FORM_OPEN" - })); - } - onFormClose() { - this.setState({ showAddForm: false, showEditForm: false }); - this.props.dispatch({ type: Actions["b" /* actionTypes */].TOP_SITES_CANCEL_EDIT }); - } - onEdit(index) { - this.setState({ showEditForm: true, editIndex: index }); - this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ - source: TOP_SITES_SOURCE, - event: "TOP_SITES_EDIT_FORM_OPEN" - })); - } - render() { - const { editForm } = this.props.TopSites; - const showEditForm = editForm && editForm.visible || this.state.showEditModal && this.state.showEditForm; - let editIndex = this.state.editIndex; - if (editIndex < 0 && editForm) { - editIndex = editForm.index; - } - const editSite = this.props.TopSites.rows[editIndex] || {}; - return external__React__default.a.createElement( - "div", - { className: "edit-topsites-wrapper" }, - external__React__default.a.createElement( - "div", - { className: "edit-topsites-button" }, - external__React__default.a.createElement( - "button", - { - className: "edit", - title: this.props.intl.formatMessage({ id: "edit_topsites_button_label" }), - onClick: this.onEditButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "edit_topsites_button_text" }) - ) - ), - this.state.showEditModal && !this.state.showAddForm && !this.state.showEditForm && external__React__default.a.createElement( - "div", - { className: "edit-topsites" }, - external__React__default.a.createElement("div", { className: "modal-overlay", onClick: this.onModalOverlayClick }), - external__React__default.a.createElement( - "div", - { className: "modal" }, - external__React__default.a.createElement( - "section", - { className: "edit-topsites-inner-wrapper" }, - external__React__default.a.createElement( - "div", - { className: "section-top-bar" }, - external__React__default.a.createElement( - "h3", - { className: "section-title" }, - external__React__default.a.createElement("span", { className: `icon icon-small-spacer icon-topsites` }), - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "header_top_sites" }) - ) - ), - external__React__default.a.createElement(TopSiteList, { TopSites: this.props.TopSites, TopSitesCount: this.props.TopSitesCount, onEdit: this.onEdit, dispatch: this.props.dispatch, intl: this.props.intl }) - ), - external__React__default.a.createElement( - "section", - { className: "actions" }, - external__React__default.a.createElement( - "button", - { className: "add", onClick: this.onAddButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "edit_topsites_add_button" }) - ), - external__React__default.a.createElement( - "button", - { className: `icon icon-topsites show-${this.props.TopSitesCount === Reducers["a" /* TOP_SITES_DEFAULT_LENGTH */] ? "more" : "less"}`, onClick: this.onShowMoreLessClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: `edit_topsites_show${this.props.TopSitesCount === Reducers["a" /* TOP_SITES_DEFAULT_LENGTH */] ? "more" : "less"}_button` }) - ), - external__React__default.a.createElement( - "button", - { className: "done", onClick: this.onEditButtonClick }, - external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "edit_topsites_done_button" }) - ) - ) - ) - ), - this.state.showEditModal && this.state.showAddForm && external__React__default.a.createElement( - "div", - { className: "edit-topsites" }, - external__React__default.a.createElement("div", { className: "modal-overlay", onClick: this.onModalOverlayClick }), - external__React__default.a.createElement( - "div", - { className: "modal" }, - external__React__default.a.createElement(TopSiteForm_TopSiteForm, { onClose: this.onFormClose, dispatch: this.props.dispatch, intl: this.props.intl }) - ) - ), - showEditForm && external__React__default.a.createElement( - "div", - { className: "edit-topsites" }, - external__React__default.a.createElement("div", { className: "modal-overlay", onClick: this.onModalOverlayClick }), - external__React__default.a.createElement( - "div", - { className: "modal" }, - external__React__default.a.createElement(TopSiteForm_TopSiteForm, { - label: editSite.label || editSite.hostname || "", - url: editSite.url || "", - index: editIndex, - editMode: true, - onClose: this.onFormClose, - dispatch: this.props.dispatch, - intl: this.props.intl }) - ) - ) - ); - } -} - -const TopSitesEdit = Object(external__ReactIntl_["injectIntl"])(TopSitesEdit__TopSitesEdit); // CONCATENATED MODULE: ./system-addon/content-src/components/TopSites/TopSites.jsx @@ -3450,6 +3279,21 @@ function countTopSitesIconsTypes(topSites) { } class TopSites__TopSites extends external__React__default.a.PureComponent { + static get DEFAULT_STATE() { + return { + showAddForm: false, + showEditForm: false, + editIndex: -1 // Index of top site being edited + }; + } + + constructor(props) { + super(props); + this.state = TopSites__TopSites.DEFAULT_STATE; + this.onAddButtonClick = this.onAddButtonClick.bind(this); + this.onFormClose = this.onFormClose.bind(this); + } + /** * Dispatch session statistics about the quality of TopSites icons and pinned count. */ @@ -3479,12 +3323,37 @@ class TopSites__TopSites extends external__React__default.a.PureComponent { this._dispatchTopSitesStats(); } + onAddButtonClick() { + this.setState({ showAddForm: true }); + this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ + source: TOP_SITES_SOURCE, + event: "TOP_SITES_ADD_FORM_OPEN" + })); + } + + onFormClose() { + this.setState(TopSites__TopSites.DEFAULT_STATE); + this.props.dispatch(Actions["a" /* actionCreators */].UserEvent({ + source: TOP_SITES_SOURCE, + event: "TOP_SITES_EDIT_CLOSE" + })); + this.props.dispatch({ type: Actions["b" /* actionTypes */].TOP_SITES_CANCEL_EDIT }); + } + render() { - const props = this.props; + const { props } = this; const infoOption = { header: { id: "settings_pane_topsites_header" }, body: { id: "settings_pane_topsites_body" } }; + const { showAddForm } = this.state; + const { editForm } = this.props.TopSites; + const showEditForm = editForm && editForm.visible || this.state.showEditForm; + let { editIndex } = this.state; + if (editIndex < 0 && editForm) { + editIndex = editForm.index; + } + const editSite = this.props.TopSites.rows[editIndex] || {}; return external__React__default.a.createElement( ComponentPerfTimer["a" /* ComponentPerfTimer */], { id: "topsites", initialized: props.TopSites.initialized, dispatch: props.dispatch }, @@ -3492,7 +3361,49 @@ class TopSites__TopSites extends external__React__default.a.PureComponent { CollapsibleSection["a" /* CollapsibleSection */], { className: "top-sites", icon: "topsites", title: external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "header_top_sites" }), infoOption: infoOption, prefName: "collapseTopSites", Prefs: props.Prefs, dispatch: props.dispatch }, external__React__default.a.createElement(TopSiteList, { TopSites: props.TopSites, TopSitesCount: props.TopSitesCount, dispatch: props.dispatch, intl: props.intl }), - external__React__default.a.createElement(TopSitesEdit, props) + external__React__default.a.createElement( + "div", + { className: "edit-topsites-wrapper" }, + external__React__default.a.createElement( + "div", + { className: "add-topsites-button" }, + external__React__default.a.createElement( + "button", + { + className: "add", + title: this.props.intl.formatMessage({ id: "edit_topsites_add_button_tooltip" }), + onClick: this.onAddButtonClick }, + external__React__default.a.createElement(external__ReactIntl_["FormattedMessage"], { id: "edit_topsites_add_button" }) + ) + ), + showAddForm && external__React__default.a.createElement( + "div", + { className: "edit-topsites" }, + external__React__default.a.createElement("div", { className: "modal-overlay", onClick: this.onFormClose }), + external__React__default.a.createElement( + "div", + { className: "modal" }, + external__React__default.a.createElement(TopSiteForm_TopSiteForm, { onClose: this.onFormClose, dispatch: this.props.dispatch, intl: this.props.intl }) + ) + ), + showEditForm && external__React__default.a.createElement( + "div", + { className: "edit-topsites" }, + external__React__default.a.createElement("div", { className: "modal-overlay", onClick: this.onFormClose }), + external__React__default.a.createElement( + "div", + { className: "modal" }, + external__React__default.a.createElement(TopSiteForm_TopSiteForm, { + label: editSite.label || editSite.hostname || "", + url: editSite.url || "", + index: editIndex, + editMode: true, + onClose: this.onFormClose, + dispatch: this.props.dispatch, + intl: this.props.intl }) + ) + ) + ) ) ); } @@ -3502,7 +3413,7 @@ const TopSites = Object(external__ReactRedux_["connect"])(state => ({ TopSites: state.TopSites, Prefs: state.Prefs, TopSitesCount: state.Prefs.values.topSitesCount -}))(TopSites__TopSites); +}))(Object(external__ReactIntl_["injectIntl"])(TopSites__TopSites)); // CONCATENATED MODULE: ./system-addon/content-src/components/Base/Base.jsx @@ -3555,7 +3466,7 @@ class Base__Base extends external__React__default.a.PureComponent { } render() { - const props = this.props; + const { props } = this; const { App, locale, strings } = props; const { initialized } = App; const prefs = props.Prefs.values; @@ -3949,6 +3860,7 @@ class Card_Card extends external__React__default.a.PureComponent { showContextMenu: true }); } + onLinkClick(event) { event.preventDefault(); const { altKey, button, ctrlKey, metaKey, shiftKey } = event; @@ -3969,21 +3881,26 @@ class Card_Card extends external__React__default.a.PureComponent { })); } } + onMenuUpdate(showContextMenu) { this.setState({ showContextMenu }); } + componentDidMount() { this.maybeLoadImage(); } + componentDidUpdate() { this.maybeLoadImage(); } + componentWillReceiveProps(nextProps) { // Clear the image state if changing images if (nextProps.link.image !== this.props.link.image) { this.setState({ imageLoaded: false }); } } + render() { const { index, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats } = this.props; const { props } = this; diff --git a/browser/extensions/activity-stream/install.rdf.in b/browser/extensions/activity-stream/install.rdf.in index 67acc0da627a..7de2064e74cc 100644 --- a/browser/extensions/activity-stream/install.rdf.in +++ b/browser/extensions/activity-stream/install.rdf.in @@ -8,7 +8,7 @@ 2 true false - 2018.01.20.1140-7b6573a1 + 2018.01.30.1052-2ec746e0 Activity Stream A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox. true diff --git a/browser/extensions/activity-stream/lib/ActivityStream.jsm b/browser/extensions/activity-stream/lib/ActivityStream.jsm index 023c55571e40..dbdac6af67f0 100644 --- a/browser/extensions/activity-stream/lib/ActivityStream.jsm +++ b/browser/extensions/activity-stream/lib/ActivityStream.jsm @@ -58,9 +58,9 @@ const PREFS_CONFIG = new Map([ provider_name: "Pocket", read_more_endpoint: "https://getpocket.com/explore/trending?src=fx_new_tab", stories_endpoint: `https://getpocket.cdn.mozilla.net/v3/firefox/global-recs?version=2&consumer_key=$apiKey&locale_lang=${args.locale}`, - stories_referrer: "http://getpocket.com/recommendations", + stories_referrer: "https://getpocket.com/recommendations", info_link: "https://www.mozilla.org/privacy/firefox/#pocketstories", - disclaimer_link: "https://getpocket.com/firefox/new_tab_learn_more.php", + disclaimer_link: "https://getpocket.com/firefox/new_tab_learn_more", topics_endpoint: `https://getpocket.cdn.mozilla.net/v3/firefox/trending-topics?version=2&consumer_key=$apiKey&locale_lang=${args.locale}`, show_spocs: false, personalized: true @@ -244,6 +244,7 @@ this.ActivityStream = class ActivityStream { this.feeds = FEEDS_CONFIG; this._defaultPrefs = new DefaultPrefs(PREFS_CONFIG); } + init() { try { this._updateDynamicPrefs(); @@ -266,6 +267,7 @@ this.ActivityStream = class ActivityStream { throw e; } } + uninit() { if (this.geo === "") { Services.prefs.removeObserver(GEO_PREF, this); @@ -274,6 +276,7 @@ this.ActivityStream = class ActivityStream { this.store.uninit(); this.initialized = false; } + uninstall(reason) { if (reason === REASON_ADDON_UNINSTALL) { // This resets all prefs in the config to their default values, @@ -282,6 +285,7 @@ this.ActivityStream = class ActivityStream { this._defaultPrefs.reset(); } } + _updateDynamicPrefs() { // Save the geo pref if we have it if (Services.prefs.prefHasUserValue(GEO_PREF)) { @@ -315,6 +319,7 @@ this.ActivityStream = class ActivityStream { prefConfig.value = newValue; } } + observe(subject, topic, data) { switch (topic) { case "nsPref:changed": diff --git a/browser/extensions/activity-stream/lib/ActivityStreamPrefs.jsm b/browser/extensions/activity-stream/lib/ActivityStreamPrefs.jsm index 4246dbac5a38..7c96147cd068 100644 --- a/browser/extensions/activity-stream/lib/ActivityStreamPrefs.jsm +++ b/browser/extensions/activity-stream/lib/ActivityStreamPrefs.jsm @@ -20,14 +20,17 @@ this.Prefs = class Prefs extends Preferences { this._branchName = branch; this._branchObservers = new Map(); } + get branchName() { return this._branchName; } + ignoreBranch(listener) { const observer = this._branchObservers.get(listener); this._prefBranch.removeObserver("", observer); this._branchObservers.delete(listener); } + observeBranch(listener) { const observer = (subject, topic, pref) => { listener.onPrefChanged(pref, this.get(pref)); diff --git a/browser/extensions/activity-stream/lib/HighlightsFeed.jsm b/browser/extensions/activity-stream/lib/HighlightsFeed.jsm index 0e7719238ac5..eb8140a5c134 100644 --- a/browser/extensions/activity-stream/lib/HighlightsFeed.jsm +++ b/browser/extensions/activity-stream/lib/HighlightsFeed.jsm @@ -144,7 +144,7 @@ this.HighlightsFeed = class HighlightsFeed { * Fetch an image for a given highlight and update the card with it. If no * image is available then fallback to fetching a screenshot. */ - async fetchImage(page) { + fetchImage(page) { // Request a screenshot if we don't already have one pending const {preview_image_url: imageUrl, url} = page; Screenshots.maybeCacheScreenshot(page, imageUrl || url, "image", image => { diff --git a/browser/extensions/activity-stream/lib/LinksCache.jsm b/browser/extensions/activity-stream/lib/LinksCache.jsm index 9c8e12555742..8aacd56b7ce5 100644 --- a/browser/extensions/activity-stream/lib/LinksCache.jsm +++ b/browser/extensions/activity-stream/lib/LinksCache.jsm @@ -104,13 +104,13 @@ this.LinksCache = class LinksCache { } } else { // Share data among link copies and new links from future requests - newLink.__sharedCache = { - // Provide a helper to update the cached link - updateLink(property, value) { - newLink[property] = value; - } - }; + newLink.__sharedCache = {}; } + // Provide a helper to update the cached link + newLink.__sharedCache.updateLink = (property, value) => { + newLink[property] = value; + }; + return newLink; })); }); diff --git a/browser/extensions/activity-stream/lib/NewTabInit.jsm b/browser/extensions/activity-stream/lib/NewTabInit.jsm index ba54105c699a..27445b8ae529 100644 --- a/browser/extensions/activity-stream/lib/NewTabInit.jsm +++ b/browser/extensions/activity-stream/lib/NewTabInit.jsm @@ -15,6 +15,7 @@ this.NewTabInit = class NewTabInit { constructor() { this._repliedEarlyTabs = new Map(); } + reply(target) { // Skip this reply if we already replied to an early tab if (this._repliedEarlyTabs.get(target)) { @@ -30,6 +31,7 @@ this.NewTabInit = class NewTabInit { this._repliedEarlyTabs.set(target, true); } } + onAction(action) { switch (action.type) { case at.NEW_TAB_STATE_REQUEST: diff --git a/browser/extensions/activity-stream/lib/PlacesFeed.jsm b/browser/extensions/activity-stream/lib/PlacesFeed.jsm index 5332391aca09..5cd3b40d280a 100644 --- a/browser/extensions/activity-stream/lib/PlacesFeed.jsm +++ b/browser/extensions/activity-stream/lib/PlacesFeed.jsm @@ -71,12 +71,19 @@ class HistoryObserver extends Observer { // Empty functions to make xpconnect happy onBeginUpdateBatch() {} + onEndUpdateBatch() {} + onVisits() {} + onTitleChanged() {} + onFrecencyChanged() {} + onManyFrecenciesChanged() {} + onPageChanged() {} + onDeleteVisits() {} } @@ -104,10 +111,7 @@ class BookmarksObserver extends Observer { * @param {int} source Used to distinguish bookmarks made by different * actions: sync, bookmarks import, other. */ - onItemAdded(...args) { - const type = args[3]; - const source = args[9]; - const uri = args[4]; + onItemAdded(id, folderId, index, type, uri, bookmarkTitle, dateAdded, bookmarkGuid, parentGuid, source) { // eslint-disable-line max-params // Skips items that are not bookmarks (like folders), about:* pages or // default bookmarks, added when the profile is created. if (type !== PlacesUtils.bookmarks.TYPE_BOOKMARK || @@ -115,9 +119,6 @@ class BookmarksObserver extends Observer { (uri.scheme !== "http" && uri.scheme !== "https")) { return; } - const bookmarkTitle = args[5]; - const dateAdded = args[6]; - const bookmarkGuid = args[7]; this.dispatch({ type: at.PLACES_BOOKMARK_ADDED, data: { @@ -193,8 +194,11 @@ class BookmarksObserver extends Observer { // Empty functions to make xpconnect happy onBeginUpdateBatch() {} + onEndUpdateBatch() {} + onItemVisited() {} + onItemMoved() {} } @@ -239,12 +243,21 @@ class PlacesFeed { } } - openNewWindow(action, isPrivate = false) { + /** + * Open a link in a desired destination defaulting to action's event. + */ + openLink(action, where = "", isPrivate = false) { + const params = {private: isPrivate}; + + // Always include the referrer (even for http links) if we have one + const {event, referrer} = action.data; + if (referrer) { + params.referrerPolicy = Ci.nsIHttpChannel.REFERRER_POLICY_UNSAFE_URL; + params.referrerURI = Services.io.newURI(referrer); + } + const win = action._target.browser.ownerGlobal; - const privateParam = {private: isPrivate}; - const params = (action.data.referrer) ? - Object.assign(privateParam, {referrerURI: Services.io.newURI(action.data.referrer)}) : privateParam; - win.openLinkIn(action.data.url, "window", params); + win.openLinkIn(action.data.url, where || win.whereToOpenLink(event), params); } onAction(action) { @@ -274,22 +287,16 @@ class PlacesFeed { break; } case at.OPEN_NEW_WINDOW: - this.openNewWindow(action); + this.openLink(action, "window"); break; case at.OPEN_PRIVATE_WINDOW: - this.openNewWindow(action, true); + this.openLink(action, "window", true); break; case at.SAVE_TO_POCKET: Pocket.savePage(action._target.browser, action.data.site.url, action.data.site.title); break; case at.OPEN_LINK: { - const win = action._target.browser.ownerGlobal; - const where = win.whereToOpenLink(action.data.event); - if (action.data.referrer) { - win.openLinkIn(action.data.url, where, {referrerURI: Services.io.newURI(action.data.referrer)}); - } else { - win.openLinkIn(action.data.url, where, {}); - } + this.openLink(action); break; } } diff --git a/browser/extensions/activity-stream/lib/PrefsFeed.jsm b/browser/extensions/activity-stream/lib/PrefsFeed.jsm index 8b0a34916544..ad0575c1dd1b 100644 --- a/browser/extensions/activity-stream/lib/PrefsFeed.jsm +++ b/browser/extensions/activity-stream/lib/PrefsFeed.jsm @@ -71,9 +71,11 @@ this.PrefsFeed = class PrefsFeed { this._setPrerenderPref(); this._initOnboardingPref(); } + removeListeners() { this._prefs.ignoreBranch(this); } + onAction(action) { switch (action.type) { case at.INIT: diff --git a/browser/extensions/activity-stream/lib/Screenshots.jsm b/browser/extensions/activity-stream/lib/Screenshots.jsm index a88e331a6716..74e3a0712d02 100644 --- a/browser/extensions/activity-stream/lib/Screenshots.jsm +++ b/browser/extensions/activity-stream/lib/Screenshots.jsm @@ -18,6 +18,10 @@ XPCOMUtils.defineLazyServiceGetter(this, "MIMEService", "@mozilla.org/mime;1", "nsIMIMEService"); XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils", + "resource://gre/modules/PrivateBrowsingUtils.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "Services", + "resource://gre/modules/Services.jsm"); const GREY_10 = "#F9F9FA"; @@ -63,6 +67,22 @@ this.Screenshots = { return screenshot; }, + /** + * Checks if all the open windows are private browsing windows. If so, we do not + * want to collect screenshots. If there exists at least 1 non-private window, + * we are ok to collect screenshots. + */ + _shouldGetScreenshots() { + const windows = Services.wm.getEnumerator("navigator:browser"); + while (windows.hasMoreElements()) { + if (!PrivateBrowsingUtils.isWindowPrivate(windows.getNext())) { + // As soon as we encounter 1 non-private window, screenshots are fair game. + return true; + } + } + return false; + }, + /** * Conditionally get a screenshot for a link if there's no existing pending * screenshot. Updates the cached link's desired property with the result. @@ -73,6 +93,10 @@ this.Screenshots = { @ @param onScreenshot {function} Callback for when the screenshot loads */ async maybeCacheScreenshot(link, url, property, onScreenshot) { + // If there are only private windows open, do not collect screenshots + if (!this._shouldGetScreenshots()) { + return; + } // Nothing to do if we already have a pending screenshot or // if a previous request failed and returned null. const cache = link.__sharedCache; diff --git a/browser/extensions/activity-stream/lib/TelemetryFeed.jsm b/browser/extensions/activity-stream/lib/TelemetryFeed.jsm index 4684cc773158..5a472d44a62f 100644 --- a/browser/extensions/activity-stream/lib/TelemetryFeed.jsm +++ b/browser/extensions/activity-stream/lib/TelemetryFeed.jsm @@ -333,7 +333,7 @@ this.TelemetryFeed = class TelemetryFeed { ); } - async sendEvent(event_object) { + sendEvent(event_object) { if (this.telemetryEnabled) { this.pingCentre.sendPing(event_object, {filter: ACTIVITY_STREAM_ID}); diff --git a/browser/extensions/activity-stream/lib/TippyTopProvider.jsm b/browser/extensions/activity-stream/lib/TippyTopProvider.jsm index 0e3eaeaaabe5..ab9794acd0ff 100644 --- a/browser/extensions/activity-stream/lib/TippyTopProvider.jsm +++ b/browser/extensions/activity-stream/lib/TippyTopProvider.jsm @@ -26,6 +26,7 @@ this.TippyTopProvider = class TippyTopProvider { this._sitesByDomain = new Map(); this.initialized = false; } + async init() { // Load the Tippy Top sites from the json manifest. try { @@ -41,6 +42,7 @@ this.TippyTopProvider = class TippyTopProvider { Cu.reportError("Failed to load tippy top manifest."); } } + processSite(site) { const tippyTop = this._sitesByDomain.get(getDomain(site.url)); if (tippyTop) { diff --git a/browser/extensions/activity-stream/lib/TopSitesFeed.jsm b/browser/extensions/activity-stream/lib/TopSitesFeed.jsm index 20b7eb65b25a..80e8a2ff1f56 100644 --- a/browser/extensions/activity-stream/lib/TopSitesFeed.jsm +++ b/browser/extensions/activity-stream/lib/TopSitesFeed.jsm @@ -50,6 +50,7 @@ this.TopSitesFeed = class TopSitesFeed { _dedupeKey(site) { return site && site.hostname; } + refreshDefaults(sites) { // Clear out the array of any previous defaults DEFAULT_TOP_SITES.length = 0; @@ -292,7 +293,7 @@ this.TopSitesFeed = class TopSitesFeed { this._broadcastPinnedSitesUpdated(); } - async onAction(action) { + onAction(action) { switch (action.type) { case at.INIT: this.refresh({broadcast: true}); diff --git a/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm b/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm index 1f22b0234a73..cb1c4e41cae6 100644 --- a/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm +++ b/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm @@ -42,7 +42,7 @@ this.TopStoriesFeed = class TopStoriesFeed { const initFeed = () => { SectionsManager.enableSection(SECTION_ID); try { - const options = SectionsManager.sections.get(SECTION_ID).options; + const {options} = SectionsManager.sections.get(SECTION_ID); const apiKey = this.getApiKeyFromPref(options.api_key_pref); this.stories_endpoint = this.produceFinalEndpointUrl(options.stories_endpoint, apiKey); this.topics_endpoint = this.produceFinalEndpointUrl(options.topics_endpoint, apiKey); @@ -102,7 +102,8 @@ this.TopStoriesFeed = class TopStoriesFeed { } this.dispatchUpdateEvent(this.storiesLastUpdated, {rows: this.stories}); - body._timestamp = this.storiesLastUpdated = Date.now(); + this.storiesLastUpdated = Date.now(); + body._timestamp = this.storiesLastUpdated; // This is filtered so an update function can return true to retry on the next run this.contentUpdateQueue = this.contentUpdateQueue.filter(update => update()); @@ -172,7 +173,8 @@ this.TopStoriesFeed = class TopStoriesFeed { const {topics} = body; if (topics) { this.dispatchUpdateEvent(this.topicsLastUpdated, {topics, read_more_endpoint: this.read_more_endpoint}); - body._timestamp = this.topicsLastUpdated = Date.now(); + this.topicsLastUpdated = Date.now(); + body._timestamp = this.topicsLastUpdated; this.cache.set("topics", body); } } catch (error) { @@ -224,7 +226,8 @@ this.TopStoriesFeed = class TopStoriesFeed { })); const affinities = this.affinityProvider.getAffinities(); - affinities._timestamp = this.domainAffinitiesLastUpdated = Date.now(); + this.domainAffinitiesLastUpdated = Date.now(); + affinities._timestamp = this.domainAffinitiesLastUpdated; this.cache.set("domainAffinities", affinities); } diff --git a/browser/extensions/activity-stream/lib/UserDomainAffinityProvider.jsm b/browser/extensions/activity-stream/lib/UserDomainAffinityProvider.jsm index c13e8d7df3a9..f6e66416a52a 100644 --- a/browser/extensions/activity-stream/lib/UserDomainAffinityProvider.jsm +++ b/browser/extensions/activity-stream/lib/UserDomainAffinityProvider.jsm @@ -257,7 +257,7 @@ this.UserDomainAffinityProvider = class UserDomainAffinityProvider { options.sortingMode = options.SORT_BY_VISITCOUNT_DESCENDING; options.maxResults = this.maxHistoryQueryResults; - const root = history.executeQuery(query, options).root; + const {root} = history.executeQuery(query, options); root.containerOpen = true; for (let i = 0; i < root.childCount; i++) { let node = root.getChild(i); diff --git a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html index fc719312dca8..4766e4b05317 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

Kakube maloyo

Lami tam obedo Pocket

Lok macuk gi lamal:

    Wiye madito

    +

    Kakube maloyo

    Lami tam obedo Pocket

    Lok macuk gi lamal:

      Wiye madito

      diff --git a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js index b0b905df0748..c3e6fd9a6273 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Lami tam obedo {provider}", "header_bookmarks_placeholder": "Pud i pee ki alamabuk.", "header_stories_from": "ki bot", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Kilimo", "type_label_bookmarked": "Kiketo alamabuk", "type_label_synced": "Kiribo ki i nyonyo mukene", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Yub kakube man", "edit_topsites_dismiss_button": "Kwer kakube man", "edit_topsites_add_button": "Medi", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Kakube maloyo manyen", "topsites_form_edit_header": "Yub Kakube maloyo", "topsites_form_title_placeholder": "Ket wiye", diff --git a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html index e1f2df088f9f..5c5f4a6645f9 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

      المواقع الأكثر زيارة

      ينصح به Pocket

      المواضيع الشائعة:

        أهم الأحداث

        +

        المواقع الأكثر زيارة

        ينصح به Pocket

        المواضيع الشائعة:

          أهم الأحداث

          diff --git a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js index d6654b38cfb1..f29ba945cc40 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "ينصح به {provider}", "header_bookmarks_placeholder": "لا علامات لديك بعد.", "header_stories_from": "من", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "مُزارة", "type_label_bookmarked": "معلّمة", "type_label_synced": "مُزامنة من جهاز آخر", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "حرّر هذا الموقع", "edit_topsites_dismiss_button": "احذف هذا الموقع", "edit_topsites_add_button": "أضِفْ", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "موقع شائع جديد", "topsites_form_edit_header": "حرّر الموقع الشائع", "topsites_form_title_placeholder": "أدخل عنوانًا", diff --git a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html index c7b99e4b87bc..adf154b53ce4 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

          Más visitaos

          Recomendáu por Pocket

          Temes populares:

            Destacaos

            +

            Más visitaos

            Recomendáu por Pocket

            Temes populares:

              Destacaos

              diff --git a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js index 23c15c855b05..96dacf771d79 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendáu por {provider}", "header_bookmarks_placeholder": "Entá nun tienes dengún marcador.", "header_stories_from": "de", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visitóse", "type_label_bookmarked": "Amestóse a marcadores", "type_label_synced": "Sincronizóse dende otru preséu", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar esti sitiu", "edit_topsites_dismiss_button": "Escartar esti sitiu", "edit_topsites_add_button": "Amestar", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nuevu Sitiu más visitáu", "topsites_form_edit_header": "Editar Sitiu más visitáu", "topsites_form_title_placeholder": "Introducir títulu", diff --git a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html index b7754f7de6ed..7bd929878ad3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

              Qabaqcıl Saytlar

              Pocket məsləhət görür

              Məşhur Mövzular:

                Seçilmişlər

                +

                Qabaqcıl Saytlar

                Pocket məsləhət görür

                Məşhur Mövzular:

                  Seçilmişlər

                  diff --git a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js index 424c34696e8f..6b030746ec16 100644 --- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} məsləhət görür", "header_bookmarks_placeholder": "Hələlik heç əlfəcininiz yoxdur.", "header_stories_from": "qaynaq:", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Ziyarət edilib", "type_label_bookmarked": "Əlfəcinlənib", "type_label_synced": "Digər cihazdan sync edilib", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Bu saytı düzəlt", "edit_topsites_dismiss_button": "Bu saytı çıxart", "edit_topsites_add_button": "Əlavə et", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Yeni Qabaqcıl Saytlar", "topsites_form_edit_header": "Qabaqcıl Saytları Dəyişdir", "topsites_form_title_placeholder": "Başlıq daxil et", diff --git a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html index 85c25288a7ac..ab581f40cdfa 100644 --- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                  Папулярныя сайты

                  Рэкамендавана Pocket

                  Папулярныя тэмы:

                    Выбранае

                    +

                    Папулярныя сайты

                    Рэкамендавана Pocket

                    Папулярныя тэмы:

                      Выбранае

                      diff --git a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js index 616b6f31fed0..de6c0a2154c9 100644 --- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Рэкамендавана {provider}", "header_bookmarks_placeholder": "У вас яшчэ няма закладак.", "header_stories_from": "ад", + "context_menu_button_sr": "Адкрыць кантэкстнае меню для {title}", "type_label_visited": "Наведанае", "type_label_bookmarked": "У закладках", "type_label_synced": "Сінхранізаванае з іншай прылады", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Рэдагаваць гэты сайт", "edit_topsites_dismiss_button": "Адхіліць гэты сайт", "edit_topsites_add_button": "Дадаць", + "edit_topsites_add_button_tooltip": "Дадаць папулярны сайт", "topsites_form_add_header": "Новы папулярны сайт", "topsites_form_edit_header": "Рэдагаваць папулярны сайт", "topsites_form_title_placeholder": "Увядзіце назву", diff --git a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html index 52c181170e9e..e35b71e8ab30 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                      Най-посещавани

                      Препоръчано от Pocket

                      Популярни теми:

                        Акценти

                        +

                        Най-посещавани

                        Препоръчано от Pocket

                        Популярни теми:

                          Акценти

                          diff --git a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js index 35a24beadf85..da09d3ad11ea 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Препоръчано от {provider}", "header_bookmarks_placeholder": "Все още нямате отметки.", "header_stories_from": "от", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Посетена", "type_label_bookmarked": "Отметната", "type_label_synced": "Синхронизирана от друго устройство", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Редактиране", "edit_topsites_dismiss_button": "Изтриване", "edit_topsites_add_button": "Добавяне", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Нов най-посещаван сайт", "topsites_form_edit_header": "Редактиране на най-посещаван сайт", "topsites_form_title_placeholder": "Заглавие", diff --git a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html index 11e4c00ef1eb..296f219e1647 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                          শীর্ঘ সাইট

                          Pocket দ্বারা সুপারিশকৃত

                          জনপ্রিয় বিষয়:

                            হাইলাইটস

                            +

                            শীর্ঘ সাইট

                            Pocket দ্বারা সুপারিশকৃত

                            জনপ্রিয় বিষয়:

                              হাইলাইটস

                              diff --git a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js index 6d4ec2e2727c..8c0bebe3e2cc 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} দ্বারা সুপারিশকৃত", "header_bookmarks_placeholder": "এখনও কোন বুকমার্ক নেই।", "header_stories_from": "থেকে", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "পরিদর্শিত", "type_label_bookmarked": "বুকমার্ক করা হয়েছে", "type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "সাইটটি সম্পাদনা করুন", "edit_topsites_dismiss_button": "সাইটটি মুছে দিন", "edit_topsites_add_button": "যোগ", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "নতুন শীর্ষ সাইট", "topsites_form_edit_header": "শীর্ষ সাইট সম্পাদনা করুন", "topsites_form_title_placeholder": "নাম দিন", diff --git a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html index 20f84b143715..dc8bb5e7924d 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                              শীর্ষ সাইটগুলি

                              Pocket দ্বারা সুপারিশকৃত

                              জনপ্রিয় বিষয়:

                                হাইলাইটস

                                +

                                শীর্ষ সাইটগুলি

                                Pocket দ্বারা সুপারিশকৃত

                                জনপ্রিয় বিষয়:

                                  হাইলাইটস

                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js index fd83b9a9c75f..8ce4dae2a7ab 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} দ্বারা সুপারিশকৃত", "header_bookmarks_placeholder": "এখনও কোন বুকমার্ক নেই।", "header_stories_from": "থেকে", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "দেখা হয়েছে", "type_label_bookmarked": "বুকমার্ক করা হয়েছে", "type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "সাইটটি সম্পাদনা করুন", "edit_topsites_dismiss_button": "সাইটটি মুছে দিন", "edit_topsites_add_button": "যুক্ত করুন", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "নতুন শীর্ষ সাইট", "topsites_form_edit_header": "শীর্ষ সাইট সম্পাদনা করুন", "topsites_form_title_placeholder": "একটি শিরোনাম লিখুন", diff --git a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html index b6637962c832..2a9a48cf149f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                  Lec'hiennoù pennañ

                                  Erbedet gant Pocket

                                  Danvezioù brudet:

                                    Mareoù pouezus

                                    +

                                    Lec'hiennoù pennañ

                                    Erbedet gant Pocket

                                    Danvezioù brudet:

                                      Mareoù pouezus

                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js index 341011df1ae0..87f6303c631f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Erbedet gant {provider}", "header_bookmarks_placeholder": "N'ho peus sined ebet evit ar mare.", "header_stories_from": "a-berzh", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Gweladennet", "type_label_bookmarked": "Lakaet er sinedoù", "type_label_synced": "Goubredet eus un trevnad all", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Embann al lec'hienn-mañ", "edit_topsites_dismiss_button": "Dilemel al lec'hienn-mañ", "edit_topsites_add_button": "Ouzhpennañ", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Lec'hiennoù gwellañ nevez", "topsites_form_edit_header": "Embann al Lec'hiennoù Gwellañ", "topsites_form_title_placeholder": "Enankañ un titl", diff --git a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html index 449a1b53ec58..2ec670717798 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                      Najposjećenije stranice

                                      Preporučeno od Pocket

                                      Popularne teme:

                                        Istaknuto

                                        +

                                        Najposjećenije stranice

                                        Preporučeno od Pocket

                                        Popularne teme:

                                          Istaknuto

                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js index 6132ac612e29..011b24c66ff1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Preporučeno od {provider}", "header_bookmarks_placeholder": "Nemate nijednu zabilješku.", "header_stories_from": "od", + "context_menu_button_sr": "Otvorite kontekstni meni za {title}", "type_label_visited": "Posjećeno", "type_label_bookmarked": "Zabilježeno", "type_label_synced": "Sinhronizovano s drugog uređaja", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Uredi ovu stranicu", "edit_topsites_dismiss_button": "Odbaci ovu stranicu", "edit_topsites_add_button": "Dodaj", + "edit_topsites_add_button_tooltip": "Dodajte top stranicu", "topsites_form_add_header": "Nova najbolja stranica", "topsites_form_edit_header": "Uredi najbolju stranicu", "topsites_form_title_placeholder": "Unesi naslov", diff --git a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html index 2fbc2f7786fe..594dd3a3fd0f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                          Llocs principals

                                          Recomanat per Pocket

                                          Temes populars:

                                            Destacats

                                            +

                                            Llocs principals

                                            Recomanat per Pocket

                                            Temes populars:

                                              Destacats

                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js index eef7125572fd..2fbcf7c0015c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomanat per {provider}", "header_bookmarks_placeholder": "Encara no teniu cap adreça d'interès.", "header_stories_from": "de", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visitat", "type_label_bookmarked": "A les adreces d'interès", "type_label_synced": "Sincronitzat des d'un altre dispositiu", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edita aquest lloc", "edit_topsites_dismiss_button": "Elimina aquest lloc", "edit_topsites_add_button": "Afegeix", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Lloc principal nou", "topsites_form_edit_header": "Edita el lloc principal", "topsites_form_title_placeholder": "Escriviu el títol", diff --git a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html index 40be1b67aecd..b666c9f1f8f3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                              Utziläj taq Ruxaq K'amaya'l

                                              Chilab'en ruma Pocket

                                              Nima'q taq Na'oj:

                                                Taq k'ewachinïk

                                                +

                                                Utziläj taq Ruxaq K'amaya'l

                                                Chilab'en ruma Pocket

                                                Nima'q taq Na'oj:

                                                  Taq k'ewachinïk

                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js index 6901c7bb63a3..744997be6ebb 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Chilab'en ruma {provider}", "header_bookmarks_placeholder": "K'a majun ayaketal k'o.", "header_stories_from": "richin", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Tz'eton", "type_label_bookmarked": "Yakon retal", "type_label_synced": "Ximon rik'in jun chik okisaxel", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Tinuk' re ruxaq k'amaya'l re'", "edit_topsites_dismiss_button": "Tiyuj re ruxaq k'amaya'l re'", "edit_topsites_add_button": "Titz'aqatisäx", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "K'ak'a' Utziläj Ruxaq K'amaya'l", "topsites_form_edit_header": "Tinuk' re Utziläj Ruxaq K'amaya'l re'", "topsites_form_title_placeholder": "Tatz'ib'aj jun b'i'aj", diff --git a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html index f020003a77ba..daa9c83e579e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                  Top stránky

                                                  Doporučení ze služby Pocket

                                                  Populární témata:

                                                    Vybrané

                                                    +

                                                    Top stránky

                                                    Doporučení ze služby Pocket

                                                    Populární témata:

                                                      Vybrané

                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js index 15dce9d5d021..af679f66a7f7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Doporučení ze služby {provider}", "header_bookmarks_placeholder": "Zatím nemáte uložené žádné záložky.", "header_stories_from": "ze šlužby", + "context_menu_button_sr": "Otevřít kontextovou nabídku pro {title}", "type_label_visited": "Navštívené", "type_label_bookmarked": "V záložkách", "type_label_synced": "Synchronizované z jiného zařízení", @@ -54,7 +55,7 @@ window.gActivityStreamStrings = { "settings_pane_search_header": "Vyhledávání", "settings_pane_search_body": "Vyhledávání na webu rovnou ze stránky nového panelu.", "settings_pane_topsites_header": "Top stránky", - "settings_pane_topsites_body": "Přístup ke stránkám, které nejčastěji navštěvujete.", + "settings_pane_topsites_body": "Přístup k nejčastěji navštěvovaným stránkám.", "settings_pane_topsites_options_showmore": "Zobrazit dva řádky", "settings_pane_bookmarks_header": "Nedávno přidané záložky", "settings_pane_bookmarks_body": "Vaše nově přidané záložky na místě hned po ruce.", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Upravit tuto stránku", "edit_topsites_dismiss_button": "Skrýt tuto stránku", "edit_topsites_add_button": "Přidat", + "edit_topsites_add_button_tooltip": "Přidat top stránku", "topsites_form_add_header": "Nová top stránka", "topsites_form_edit_header": "Upravit top stránku", "topsites_form_title_placeholder": "Zadejte název", diff --git a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html index 991d66aa598b..f23eaab27048 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                      Hoff Wefannau

                                                      Argymhellwyd gan Pocket

                                                      Pynciau Poblogaidd:

                                                        Goreuon

                                                        +

                                                        Hoff Wefannau

                                                        Argymhellwyd gan Pocket

                                                        Pynciau Poblogaidd:

                                                          Goreuon

                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js index 5e5640fa25f3..f4eab333baf3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Argymhellwyd gan {provider}", "header_bookmarks_placeholder": "Nid oes gennych unrhyw nodau tudalen eto.", "header_stories_from": "oddi wrth", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Ymwelwyd", "type_label_bookmarked": "Nod Tudalen", "type_label_synced": "Cydweddwyd o ddyfais arall", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Golygu'r wefan", "edit_topsites_dismiss_button": "Dileu'r wefan", "edit_topsites_add_button": "Ychwanegu", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Hoff Wefan Newydd", "topsites_form_edit_header": "Golygu'r Hoff Wefan", "topsites_form_title_placeholder": "Rhoi teitl", diff --git a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html index c6fedac1b125..2e20542146eb 100644 --- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                          Mest besøgte websider

                                                          Anbefalet af Pocket

                                                          Populære emner:

                                                            Fremhævede

                                                            +

                                                            Mest besøgte websider

                                                            Anbefalet af Pocket

                                                            Populære emner:

                                                              Fremhævede

                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js index e61c396bb1ff..9504be838021 100644 --- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Anbefalet af {provider}", "header_bookmarks_placeholder": "Du har ingen bogmærker endnu.", "header_stories_from": "fra", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Besøgt", "type_label_bookmarked": "Bogmærket", "type_label_synced": "Synkroniseret fra en anden enhed", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Rediger denne webside", "edit_topsites_dismiss_button": "Afvis denne webside", "edit_topsites_add_button": "Tilføj", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Ny webside", "topsites_form_edit_header": "Rediger mest besøgte webside", "topsites_form_title_placeholder": "Indtast en titel", diff --git a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html index bcc8804b7708..7ea300ae9cc8 100644 --- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                              Wichtige Seiten

                                                              Empfohlen von Pocket

                                                              Beliebte Themen:

                                                                Überblick

                                                                +

                                                                Wichtige Seiten

                                                                Empfohlen von Pocket

                                                                Beliebte Themen:

                                                                  Überblick

                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js index 9b6a352825dd..f72bba7876f8 100644 --- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Empfohlen von {provider}", "header_bookmarks_placeholder": "Sie haben noch keine Lesezeichen.", "header_stories_from": "von", + "context_menu_button_sr": "Kontextmenü für {title} öffnen", "type_label_visited": "Besucht", "type_label_bookmarked": "Lesezeichen", "type_label_synced": "Von anderem Gerät synchronisiert", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Diese Website bearbeiten", "edit_topsites_dismiss_button": "Website entfernen", "edit_topsites_add_button": "Hinzufügen", + "edit_topsites_add_button_tooltip": "Wichtige Seite hinzufügen", "topsites_form_add_header": "Neue wichtige Seite", "topsites_form_edit_header": "Wichtige Seite bearbeiten", "topsites_form_title_placeholder": "Name eingeben", diff --git a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html index 2dec83e5d812..6d1c00faf2de 100644 --- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                  Nejcesćej woglědane sedła

                                                                  Wót Pocket dopórucony

                                                                  Woblubowane temy:

                                                                    Wjerški

                                                                    +

                                                                    Nejcesćej woglědane sedła

                                                                    Wót Pocket dopórucony

                                                                    Woblubowane temy:

                                                                      Wjerški

                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js index 0f5ea99401e2..13f718652397 100644 --- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Wót {provider} dopórucony", "header_bookmarks_placeholder": "Hyšći cytańske znamjenja njamaśo.", "header_stories_from": "wót", + "context_menu_button_sr": "Kontekstowy meni za {title} wócyniś", "type_label_visited": "Woglědany", "type_label_bookmarked": "Ako cytańske znamje skłaźony", "type_label_synced": "Z drugego rěda synchronizěrowany", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Toś to sedło wobźěłaś", "edit_topsites_dismiss_button": "Sedło zachyśiś", "edit_topsites_add_button": "Pśidaś", + "edit_topsites_add_button_tooltip": "Woblubowane sedło pśidaś", "topsites_form_add_header": "Nowe nejcesćej woglědane sedło", "topsites_form_edit_header": "Nejcesćej woglědane sedło wobźěłaś", "topsites_form_title_placeholder": "Titel zapódaś", diff --git a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html index 358f9ef74aeb..2c14b5c97819 100644 --- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                      Κορυφαίες ιστοσελίδες

                                                                      Προτεινόμενο από τον πάροχο Pocket

                                                                      Δημοφιλή θέματα:

                                                                        Κορυφαίες στιγμές

                                                                        +

                                                                        Κορυφαίες ιστοσελίδες

                                                                        Προτεινόμενο από τον πάροχο Pocket

                                                                        Δημοφιλή θέματα:

                                                                          Κορυφαίες στιγμές

                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js index aca1dce99918..2dfc5bce643b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Προτεινόμενο από τον πάροχο {provider}", "header_bookmarks_placeholder": "Δεν έχετε κανένα σελιδοδείκτη ακόμα.", "header_stories_from": "από", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Από ιστορικό", "type_label_bookmarked": "Από σελιδοδείκτες", "type_label_synced": "Συγχρονισμένα από άλλη συσκευή", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Επεξεργασία ιστοσελίδας", "edit_topsites_dismiss_button": "Απόρριψη ιστοσελίδας", "edit_topsites_add_button": "Προσθήκη", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Νέα κορυφαία ιστοσελίδα", "topsites_form_edit_header": "Επεξεργασία κορυφαίας ιστοσελίδας", "topsites_form_title_placeholder": "Εισάγετε έναν τίτλο", diff --git a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html index c9072d750d3f..ccb0c8605e94 100644 --- a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                          Top Sites

                                                                          Recommended by Pocket

                                                                          Popular Topics:

                                                                            Highlights

                                                                            +

                                                                            Top Sites

                                                                            Recommended by Pocket

                                                                            Popular Topics:

                                                                              Highlights

                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js index 0cbcf6ee0815..f8fd16c0af44 100644 --- a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visited", "type_label_bookmarked": "Bookmarked", "type_label_synced": "Synchronised from another device", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Top Sites", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html index 11a5172ae21c..d663a948d4c0 100644 --- a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                              Top Sites

                                                                              Recommended by Pocket

                                                                              Popular Topics:

                                                                                Highlights

                                                                                +

                                                                                Top Sites

                                                                                Recommended by Pocket

                                                                                Popular Topics:

                                                                                  Highlights

                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js index da555658f375..bd378325eb67 100644 --- a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visited", "type_label_bookmarked": "Bookmarked", "type_label_synced": "Synced from another device", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html index b9bb098870ac..b321762cfa94 100644 --- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                  Plej vizititaj

                                                                                  Rekomendita de Pocket

                                                                                  Ĉefaj temoj:

                                                                                    Elstaraĵoj

                                                                                    +

                                                                                    Plej vizititaj

                                                                                    Rekomendita de Pocket

                                                                                    Ĉefaj temoj:

                                                                                      Elstaraĵoj

                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js index 95541b727e20..f951c32c6a30 100644 --- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Rekomendita de {provider}", "header_bookmarks_placeholder": "Vi ankoraŭ ne havas legosignojn.", "header_stories_from": "el", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Vizitita", "type_label_bookmarked": "Kun legosigno", "type_label_synced": "Spegulitaj el alia aparato", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Redakti ĉi tiun retejon", "edit_topsites_dismiss_button": "Ignori ĉi tiun retejon", "edit_topsites_add_button": "Aldoni", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nova ofta retejo", "topsites_form_edit_header": "Redakti ofta retejo", "topsites_form_title_placeholder": "Tajpu titolon", diff --git a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html index 40af998d6a6b..6ef7c01c2e0c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                      Más visitados

                                                                                      Recomendado por Pocket

                                                                                      Tópicos populares:

                                                                                        Destacados

                                                                                        +

                                                                                        Más visitados

                                                                                        Recomendado por Pocket

                                                                                        Tópicos populares:

                                                                                          Destacados

                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js index d842f4e0d6c2..7073abdf9f07 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Todavía no hay ningún marcador.", "header_stories_from": "de", + "context_menu_button_sr": "Abrir el menú para {title}", "type_label_visited": "Visitados", "type_label_bookmarked": "Marcados", "type_label_synced": "Sincronizados de otro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este sitio", "edit_topsites_dismiss_button": "Descartar este sitio", "edit_topsites_add_button": "Agregar", + "edit_topsites_add_button_tooltip": "Agregar Sitio más visitado", "topsites_form_add_header": "Nuevo sitio más visitado", "topsites_form_edit_header": "Editar sitio más visitado", "topsites_form_title_placeholder": "Ingresar un título", diff --git a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html index 94b9066c64a1..f9a60e8df6f6 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                          Sitios frecuentes

                                                                                          Recomendado por Pocket

                                                                                          Temas populares:

                                                                                            Destacados

                                                                                            +

                                                                                            Sitios frecuentes

                                                                                            Recomendado por Pocket

                                                                                            Temas populares:

                                                                                              Destacados

                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js index ef20dda61967..3aeb49d3c8d1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Todavía no tienes marcadores.", "header_stories_from": "de", + "context_menu_button_sr": "Abrir menú contextual para {title}", "type_label_visited": "Visitado", "type_label_bookmarked": "Marcado", "type_label_synced": "Sacado de otro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este sitio", "edit_topsites_dismiss_button": "Sacar este sitio", "edit_topsites_add_button": "Añadir", + "edit_topsites_add_button_tooltip": "Añadir sitio frecuente", "topsites_form_add_header": "Nuevo sitio frecuente", "topsites_form_edit_header": "Editar sitio frecuente", "topsites_form_title_placeholder": "Ingresar un título", diff --git a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html index 8622a72da789..d66e9654f338 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                              Sitios favoritos

                                                                                              Recomendado por Pocket

                                                                                              Temas populares:

                                                                                                Destacados

                                                                                                +

                                                                                                Sitios favoritos

                                                                                                Recomendado por Pocket

                                                                                                Temas populares:

                                                                                                  Destacados

                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js index 0faa2f580389..68a3b3382847 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Todavía no tienes ningún marcador.", "header_stories_from": "desde", + "context_menu_button_sr": "Abrir menú de contexto para {title}", "type_label_visited": "Visitados", "type_label_bookmarked": "En marcadores", "type_label_synced": "Sincronizado desde otro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este sitio", "edit_topsites_dismiss_button": "Olvidar este sitio", "edit_topsites_add_button": "Agregar", + "edit_topsites_add_button_tooltip": "Añadir sitio popular", "topsites_form_add_header": "Nuevo sitio popular", "topsites_form_edit_header": "Editar sitio popular", "topsites_form_title_placeholder": "Introducir título", diff --git a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html index 87426d070b4e..667ca6c5b24e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                  Sitios favoritos

                                                                                                  Recomendado por Pocket

                                                                                                  Temas populares:

                                                                                                    Destacados

                                                                                                    +

                                                                                                    Sitios favoritos

                                                                                                    Recomendado por Pocket

                                                                                                    Temas populares:

                                                                                                      Destacados

                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js index 864f7526d69d..91ef0926e8e9 100644 --- a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Aún no tienes ningún marcador.", "header_stories_from": "de", + "context_menu_button_sr": "Abrir menú de contexto para {title}", "type_label_visited": "Visitados", "type_label_bookmarked": "Marcados", "type_label_synced": "Sincronizado desde otro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este sitio", "edit_topsites_dismiss_button": "Descartar este sitio", "edit_topsites_add_button": "Agregar", + "edit_topsites_add_button_tooltip": "Añadir sitio popular", "topsites_form_add_header": "Nuevo sitio popular", "topsites_form_edit_header": "Editar sitio popular", "topsites_form_title_placeholder": "Introducir un título", diff --git a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html index a46f4fc7ccf3..721b027d2f14 100644 --- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                      Top saidid

                                                                                                      Pocket soovitab

                                                                                                      Populaarsed teemad:

                                                                                                        Esiletõstetud

                                                                                                        +

                                                                                                        Top saidid

                                                                                                        Pocket soovitab

                                                                                                        Populaarsed teemad:

                                                                                                          Esiletõstetud

                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js index a75afe0984ea..d289eff4f8a1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} soovitab", "header_bookmarks_placeholder": "Sul pole veel järjehoidjaid.", "header_stories_from": "allikast", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Külastatud", "type_label_bookmarked": "Järjehoidjatest", "type_label_synced": "Sünkroniseeritud teisest seadmest", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Muuda seda saiti", "edit_topsites_dismiss_button": "Peida see sait", "edit_topsites_add_button": "Lisa", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Uue top saidi lisamine", "topsites_form_edit_header": "Top saidi muutmine", "topsites_form_title_placeholder": "Sisesta pealkiri", diff --git a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html index 26d6c5239588..db9ab1b44c5b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                          Gune erabilienak

                                                                                                          Pocket hornitzaileak gomendatuta

                                                                                                          Gai ezagunak:

                                                                                                            Nabarmendutakoak

                                                                                                            +

                                                                                                            Gune erabilienak

                                                                                                            Pocket hornitzaileak gomendatuta

                                                                                                            Gai ezagunak:

                                                                                                              Nabarmendutakoak

                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js index 5143fd8b2596..ce2e727750e2 100644 --- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} hornitzaileak gomendatuta", "header_bookmarks_placeholder": "Ez daukazu laster-markarik oraindik.", "header_stories_from": "hornitzailea:", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Bisitatuta", "type_label_bookmarked": "Laster-marka eginda", "type_label_synced": "Beste gailu batetik sinkronizatuta", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editatu gune hau", "edit_topsites_dismiss_button": "Baztertu gune hau", "edit_topsites_add_button": "Gehitu", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Maiz erabilitako gune berria", "topsites_form_edit_header": "Editatu maiz erabilitako gunea", "topsites_form_title_placeholder": "Idatzi izenburua", diff --git a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html index 5013650b21ad..c7d133611c8a 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                              سایت‌های برتر

                                                                                                              پیشنهاد شده توسط Pocket

                                                                                                              موضوع‌های محبوب:

                                                                                                                برجسته‌ها

                                                                                                                +

                                                                                                                سایت‌های برتر

                                                                                                                پیشنهاد شده توسط Pocket

                                                                                                                موضوع‌های محبوب:

                                                                                                                  برجسته‌ها

                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js index 3f46bf487870..d13acfa108dd 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "پیشنهاد شده توسط {provider}", "header_bookmarks_placeholder": "هنوز هیچ نشانکی ندارید.", "header_stories_from": "از", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "مشاهده شده", "type_label_bookmarked": "نشانک شده", "type_label_synced": "هم‌گام شده از دستگاهی دیگر", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ویرایش این سایت", "edit_topsites_dismiss_button": "نادیده گرفتن این سایت", "edit_topsites_add_button": "افزودن", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "سایت برتر جدید", "topsites_form_edit_header": "ویرایش سایت برتر", "topsites_form_title_placeholder": "عنوان را وارد کنید", diff --git a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html index 79bce1d1d90c..a9b727edccd7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                  Lowe dowrowe

                                                                                                                  Recommended by Pocket

                                                                                                                  Loowdiiji lolluɗi:

                                                                                                                    Jalbine

                                                                                                                    +

                                                                                                                    Lowe dowrowe

                                                                                                                    Recommended by Pocket

                                                                                                                    Loowdiiji lolluɗi:

                                                                                                                      Jalbine

                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js index 0b374f952def..199305252291 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "A alaa hay maanto ɗerewol gootol jooni.", "header_stories_from": "ummoraade e", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Yilliima", "type_label_bookmarked": "Bookmarked", "type_label_synced": "Synced from another device", @@ -42,7 +43,7 @@ window.gActivityStreamStrings = { "section_disclaimer_topstories_linktext": "Humpito hol no ɗum gollortoo.", "section_disclaimer_topstories_buttontext": "Eey, mi faamii", "welcome_title": "Welcome to new tab", - "welcome_body": "Firefox will use this space to show your most relevant bookmarks, articles, videos, and pages you’ve recently visited, so you can get back to them easily.", + "welcome_body": "Firefox maa huutoroyo ngal boowal ngam hollirde maantore ɓurɗe hawrude, binndanɗe, widewooji kam e kelle ɗe njilliɗaa ko ɓooyaani, mbele mbaawaa artude e newuya.", "welcome_label": "Heɓtinde Jalbine maa", "time_label_less_than_minute": "<1m", "time_label_minute": "{number} m", @@ -67,9 +68,9 @@ window.gActivityStreamStrings = { "settings_pane_snippets_header": "Taƴitine", "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.", "settings_pane_done_button": "Done", - "settings_pane_topstories_options_sponsored": "Show Sponsored Stories", + "settings_pane_topstories_options_sponsored": "Hollu Daarti Tammbitaaɗi", "edit_topsites_button_text": "Edit", - "edit_topsites_button_label": "Customize your Top Sites section", + "edit_topsites_button_label": "Heertin taƴre Lowe maa Dowrowe", "edit_topsites_showmore_button": "Show More", "edit_topsites_showless_button": "Show Fewer", "edit_topsites_done_button": "Done", @@ -78,8 +79,9 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Ɓeydu", - "topsites_form_add_header": "New Top Site", - "topsites_form_edit_header": "Edit Top Site", + "edit_topsites_add_button_tooltip": "Add Top Site", + "topsites_form_add_header": "Lowre Dowrowre Hesere", + "topsites_form_edit_header": "Taƴto Lowre Dowrowre", "topsites_form_title_placeholder": "Naatnu tiitoonde", "topsites_form_url_placeholder": "Tappu walla ɗakku URL", "topsites_form_add_button": "Ɓeydu", @@ -87,12 +89,12 @@ window.gActivityStreamStrings = { "topsites_form_cancel_button": "Haaytu", "topsites_form_url_validation": "URL Moƴƴo ina naamnaa", "pocket_read_more": "Loowdiiji lolluɗi:", - "pocket_read_even_more": "View More Stories", - "pocket_feedback_header": "The best of the web, curated by over 25 million people.", - "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.", - "highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.", + "pocket_read_even_more": "Yiy Daarti Goɗɗi", + "pocket_feedback_header": "Ɓurɗo geese fof, mo ko ɓuri 25 miliyoŋ neɗɗo yuɓɓini.", + "pocket_description": "Yiytu loowdi waɗndi faayiida ndi ina gasa luppuɗaa, wonndude e ballal ummoraade e Pocket, jeyaaɗo jooni e Mozilla.", + "highlights_empty_state": "Fuɗɗo wanngaade, min kolloymaa huunde e binndanɗe mawɗe ɗee, widewooji kañum e kelle goɗɗe ɗe njilliɗaa ko ɓooyaani walla maantoraaɗe ɗoo.", "topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.", - "manual_migration_explanation2": "Try Firefox with the bookmarks, history and passwords from another browser.", + "manual_migration_explanation2": "Ƴeewndo Firefox wonndude e maantore ɗee, aslol kam e finndeeji iwde e wanngorde woɗnde.", "manual_migration_cancel_button": "Alaa, moƴƴii", "manual_migration_import_button": "Jiggo Jooni" }; diff --git a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html index a8d1f0a2e18d..f1700ce65a14 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                      Ykkössivustot

                                                                                                                      Suositukset lähteestä Pocket

                                                                                                                      Suositut aiheet:

                                                                                                                        Nostot

                                                                                                                        +

                                                                                                                        Ykkössivustot

                                                                                                                        Suositukset lähteestä Pocket

                                                                                                                        Suositut aiheet:

                                                                                                                          Nostot

                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js index b4466959ba41..bd9247361e67 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Suositukset lähteestä {provider}", "header_bookmarks_placeholder": "Sinulla ei ole vielä kirjanmerkkejä.", "header_stories_from": "Lähde", + "context_menu_button_sr": "Avaa pikavalikko sivustolle {title}", "type_label_visited": "Vierailtu", "type_label_bookmarked": "Kirjanmerkki", "type_label_synced": "Synkronoitu toiselta laitteelta", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Muokkaa tätä sivustoa", "edit_topsites_dismiss_button": "Hylkää tämä sivusto", "edit_topsites_add_button": "Lisää", + "edit_topsites_add_button_tooltip": "Lisää ykkössivusto", "topsites_form_add_header": "Uusi ykkössivusto", "topsites_form_edit_header": "Muokkaa ykkössivustoa", "topsites_form_title_placeholder": "Kirjoita otsikko", diff --git a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html index 599d5b2b03ed..e66f4caec385 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                          Sites les plus visités

                                                                                                                          Recommandations par Pocket

                                                                                                                          Sujets populaires :

                                                                                                                            Éléments-clés

                                                                                                                            +

                                                                                                                            Sites les plus visités

                                                                                                                            Recommandations par Pocket

                                                                                                                            Sujets populaires :

                                                                                                                              Éléments-clés

                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js index ed92f762edda..cd98a6e2ee48 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommandations par {provider}", "header_bookmarks_placeholder": "Vous ne possédez aucun marque-page pour l’instant.", "header_stories_from": "par", + "context_menu_button_sr": "Ouvrir le menu contextuel pour {title}", "type_label_visited": "Visité", "type_label_bookmarked": "Ajouté aux marque-pages", "type_label_synced": "Synchronisé depuis un autre appareil", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Modifier ce site", "edit_topsites_dismiss_button": "Retirer ce site", "edit_topsites_add_button": "Ajouter", + "edit_topsites_add_button_tooltip": "Ajouter un site populaire", "topsites_form_add_header": "Nouveau site populaire", "topsites_form_edit_header": "Modifier le site populaire", "topsites_form_title_placeholder": "Saisir un titre", diff --git a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html index 386bde465a1a..7ee7c81d6a72 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                              Topwebsites

                                                                                                                              Oanrekommandearre troch Pocket

                                                                                                                              Populêre ûnderwerpen:

                                                                                                                                Hichtepunten

                                                                                                                                +

                                                                                                                                Topwebsites

                                                                                                                                Oanrekommandearre troch Pocket

                                                                                                                                Populêre ûnderwerpen:

                                                                                                                                  Hichtepunten

                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js index bfc0ac959d4f..81103d06054b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Oanrekommandearre troch {provider}", "header_bookmarks_placeholder": "Jo hawwe noch gjin inkelde blêdwizer.", "header_stories_from": "fan", + "context_menu_button_sr": "Kontekstmenu foar {title} iepenje", "type_label_visited": "Besocht", "type_label_bookmarked": "Blêdwizer makke", "type_label_synced": "Syngronisearre fan oar apparaat ôf", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Dizze side bewurkje", "edit_topsites_dismiss_button": "Dizze side fuortsmite", "edit_topsites_add_button": "Tafoegje", + "edit_topsites_add_button_tooltip": "Topwebsite tafoegje", "topsites_form_add_header": "Nije topwebsite", "topsites_form_edit_header": "Topwebsite tafoegje", "topsites_form_title_placeholder": "Titel ynfiere", diff --git a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html index 7cec42a35781..151af55169cd 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                  Barrshuímh

                                                                                                                                  Recommended by Pocket

                                                                                                                                  Topaicí i mbéal an phobail:

                                                                                                                                    Highlights

                                                                                                                                    +

                                                                                                                                    Barrshuímh

                                                                                                                                    Recommended by Pocket

                                                                                                                                    Topaicí i mbéal an phobail:

                                                                                                                                      Highlights

                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js index 194338a8336a..e6441650d4be 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "Níl aon leabharmharcanna agat.", "header_stories_from": "ó", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Feicthe", "type_label_bookmarked": "Leabharmharcáilte", "type_label_synced": "Sioncronaithe ó ghléas eile", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Cuir an suíomh seo in eagar", "edit_topsites_dismiss_button": "Ruaig an suíomh seo", "edit_topsites_add_button": "Cuir leis", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Barrshuíomh Nua", "topsites_form_edit_header": "Cuir an Barrshuíomh in Eagar", "topsites_form_title_placeholder": "Cuir teideal isteach", diff --git a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html index ec415b9417ad..bd88a8c1c730 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                      Brod nan làrach

                                                                                                                                      ’Ga mholadh le Pocket

                                                                                                                                      Cuspairean fèillmhor:

                                                                                                                                        Sàr-roghainn

                                                                                                                                        +

                                                                                                                                        Brod nan làrach

                                                                                                                                        ’Ga mholadh le Pocket

                                                                                                                                        Cuspairean fèillmhor:

                                                                                                                                          Sàr-roghainn

                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js index 3c5b08ff3699..6c06ffc87ea5 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "’Ga mholadh le {provider}", "header_bookmarks_placeholder": "Chan eil comharra-lìn sam bith agad fhathast.", "header_stories_from": "o", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Na thadhail thu air", "type_label_bookmarked": "’Nan comharran-lìn", "type_label_synced": "Sioncronaichte o uidheam eile", @@ -38,9 +39,9 @@ window.gActivityStreamStrings = { "section_info_option": "Fiosrachadh", "section_info_send_feedback": "Cuir thugainn do bheachdan", "section_info_privacy_notice": "Sanas prìobhaideachd", - "section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.", - "section_disclaimer_topstories_linktext": "Learn how it works.", - "section_disclaimer_topstories_buttontext": "Okay, got it", + "section_disclaimer_topstories": "Na sgeulachdan as inntinniche air an lìon, air a thaghadh a-rèir na bhios tu a’ leughadh. O Phocket, a tha ’na phàirt de Mhozilla a-nis.", + "section_disclaimer_topstories_linktext": "Seo mar a dh’obraicheas e.", + "section_disclaimer_topstories_buttontext": "Ceart, tha mi agaibh", "welcome_title": "Fàilte gun taba ùr", "welcome_body": "Seallaidh Firefox na comharran-lìn, artaigealan, videothan is duilleagan as iomchaidhe dhut, an fheadhainn air an do thadhail thu o chionn goirid, ach an ruig thu iad gu luath.", "welcome_label": "Ag aithneachadh nan highlights agad", @@ -67,7 +68,7 @@ window.gActivityStreamStrings = { "settings_pane_snippets_header": "Snippets", "settings_pane_snippets_body": "Leugh naidheachdan goirid tlachdmhor o Mozilla mu Firefox, cultar an lìn ’s mìm no dhà.", "settings_pane_done_button": "Deiseil", - "settings_pane_topstories_options_sponsored": "Show Sponsored Stories", + "settings_pane_topstories_options_sponsored": "Seall sgeulachdan sponsairichte", "edit_topsites_button_text": "Deasaich", "edit_topsites_button_label": "Gnàthaich earrann brod nan làrach agad", "edit_topsites_showmore_button": "Seall barrachd", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Deasaich an làrach seo", "edit_topsites_dismiss_button": "Leig seachad an làrach seo", "edit_topsites_add_button": "Cuir ris", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Brod làraich ùr", "topsites_form_edit_header": "Deasaich am brod làraich", "topsites_form_title_placeholder": "Cuir ainm a-steach", diff --git a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html index 3eb48dd5082d..af90cc553025 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                          Sitios favoritos

                                                                                                                                          Recomendado por Pocket

                                                                                                                                          Temas populares:

                                                                                                                                            Destacados

                                                                                                                                            +

                                                                                                                                            Sitios favoritos

                                                                                                                                            Recomendado por Pocket

                                                                                                                                            Temas populares:

                                                                                                                                              Destacados

                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js index bd162287e8c1..ead635e9a81d 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Aínda non ten marcadores.", "header_stories_from": "de", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visitados", "type_label_bookmarked": "Nos marcadores", "type_label_synced": "Sincronizado dende outro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este sitio", "edit_topsites_dismiss_button": "Rexeitar este sitio", "edit_topsites_add_button": "Engadir", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Novo sitio favorito", "topsites_form_edit_header": "Editar sitio favorito", "topsites_form_title_placeholder": "Escribir un título", diff --git a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html index 8adcefb93d1b..a76a1e142188 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                              Tenda Ojehechavéva

                                                                                                                                              Pocket he'i ndéve reike hag̃ua

                                                                                                                                              Ñe'ẽmbyrã Ojehayhuvéva:

                                                                                                                                                Mba'eporãitéva

                                                                                                                                                +

                                                                                                                                                Tenda Ojehechavéva

                                                                                                                                                Pocket he'i ndéve reike hag̃ua

                                                                                                                                                Ñe'ẽmbyrã Ojehayhuvéva:

                                                                                                                                                  Mba'eporãitéva

                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js index a107864c46cb..5a8a87ec6d9e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} he'i ndéve reike hag̃ua", "header_bookmarks_placeholder": "Ndererekói gueteri techaukaha ñongatupyre.", "header_stories_from": "omombe'úva", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Jeikepyre", "type_label_bookmarked": "Oñeñongatuva'ekue techaukaháramo", "type_label_synced": "Oñembojuehepyre ambue mba'e'oka ndive", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Embosako'i ko tenda", "edit_topsites_dismiss_button": "Emboguete ko tenda", "edit_topsites_add_button": "Embojoapy", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Tenda Pyahu Ojeikevéva", "topsites_form_edit_header": "Tenda Ojeikevéva Mbosako'i", "topsites_form_title_placeholder": "Ehai herarã", diff --git a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html index 74fb82276cab..954013e2606a 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                  ટોપ સાઇટ્સ

                                                                                                                                                  દ્વારા ભલામણ

                                                                                                                                                  લોકપ્રિય વિષયો:

                                                                                                                                                    વીતી ગયેલું

                                                                                                                                                    +

                                                                                                                                                    ટોપ સાઇટ્સ

                                                                                                                                                    દ્વારા ભલામણ

                                                                                                                                                    લોકપ્રિય વિષયો:

                                                                                                                                                      વીતી ગયેલું

                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js index 0ddc6db992d1..66708ef76d51 100644 --- a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "દ્વારા ભલામણ", "header_bookmarks_placeholder": "તમારી પાસે હજી સુધી કોઈ બુકમાર્ક્સ નથી.", "header_stories_from": "થી", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "જોવામા આવેલ:", "type_label_bookmarked": "બુકમાર્ક્સ", "type_label_synced": "બીજા ઉપકરણ થી સમન્વયિત કરેલ છે", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "આ સાઇટને સંપાદિત કરો", "edit_topsites_dismiss_button": "આ સાઇટને કાઢી નાખો", "edit_topsites_add_button": "ઉમેરો", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "નવી ટોચની સાઇટ", "topsites_form_edit_header": "ટોચની સાઇટ સંપાદિત કરો", "topsites_form_title_placeholder": "શીર્ષક દાખલ કરો", diff --git a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html index d175b04678f5..fd0092a3869b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                      אתרים מובילים

                                                                                                                                                      מומלץ על ידי Pocket

                                                                                                                                                      נושאים פופולריים:

                                                                                                                                                        מומלצים

                                                                                                                                                        +

                                                                                                                                                        אתרים מובילים

                                                                                                                                                        מומלץ על ידי Pocket

                                                                                                                                                        נושאים פופולריים:

                                                                                                                                                          מומלצים

                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js index a80e09c9132a..b361b4a468c4 100644 --- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "מומלץ על ידי {provider}", "header_bookmarks_placeholder": "אין לך סימניות עדיין.", "header_stories_from": "מאת", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "ביקורים קודמים", "type_label_bookmarked": "שמור כסימניה", "type_label_synced": "סונכרן מהתקן אחר", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "עריכת אתר זה", "edit_topsites_dismiss_button": "הסרת אתר זה", "edit_topsites_add_button": "הוספה", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "אתר מוביל חדש", "topsites_form_edit_header": "עריכת אתר מוביל", "topsites_form_title_placeholder": "נא להזין כותרת", diff --git a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html index 7d2eb77bb1a9..233b317d104c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                          सर्वोच्च साइटें

                                                                                                                                                          Pocket द्वारा अनुशंसित

                                                                                                                                                          लोकप्रिय विषय:

                                                                                                                                                            झलकियाँ

                                                                                                                                                            +

                                                                                                                                                            सर्वोच्च साइटें

                                                                                                                                                            Pocket द्वारा अनुशंसित

                                                                                                                                                            लोकप्रिय विषय:

                                                                                                                                                              झलकियाँ

                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js index 65eb251e0ea8..fb5c94f9a6d4 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} द्वारा अनुशंसित", "header_bookmarks_placeholder": "आपके पास अभी तक कोई भी पुस्तचिन्ह नहीं है.", "header_stories_from": "के द्वारा", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "देखी गई", "type_label_bookmarked": "पुस्तचिह्न लगाया हुआ", "type_label_synced": "किसी अन्य उपकरण से समकालीन किया गया", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "इस साइट को संपादित करें", "edit_topsites_dismiss_button": "इस साइट को ख़ारिज करें", "edit_topsites_add_button": "जोड़ें", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "नई शीर्ष साइट", "topsites_form_edit_header": "शीर्ष साइट संपादित करें", "topsites_form_title_placeholder": "एक शीर्षक दर्ज करें", diff --git a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html index 4d9a05db6814..a54be4f10c02 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                              Najbolje stranice

                                                                                                                                                              Preporučeno od Pocket

                                                                                                                                                              Popularne teme:

                                                                                                                                                                Istaknuto

                                                                                                                                                                +

                                                                                                                                                                Najbolje stranice

                                                                                                                                                                Preporučeno od Pocket

                                                                                                                                                                Popularne teme:

                                                                                                                                                                  Istaknuto

                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js index 336975a8c1e9..2d1cdf973acf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Preporučeno od {provider}", "header_bookmarks_placeholder": "Još nemate niti jednu zabilješku.", "header_stories_from": "od", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Posjećeno", "type_label_bookmarked": "Zabilježeno", "type_label_synced": "Sinkronizirano s drugog uređaja", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Uredi ovu stranicu", "edit_topsites_dismiss_button": "Odbaci stranicu", "edit_topsites_add_button": "Dodaj", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nova najbolja stranica", "topsites_form_edit_header": "Uredi najbolju stranicu", "topsites_form_title_placeholder": "Unesi naslov", diff --git a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html index c40622b028d8..ee9c871082db 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                  Najhusćišo wopytane sydła

                                                                                                                                                                  Wot Pocket doporučeny

                                                                                                                                                                  Woblubowane temy:

                                                                                                                                                                    Wjerški

                                                                                                                                                                    +

                                                                                                                                                                    Najhusćišo wopytane sydła

                                                                                                                                                                    Wot Pocket doporučeny

                                                                                                                                                                    Woblubowane temy:

                                                                                                                                                                      Wjerški

                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js index ca5b45a0ec3b..67885712e17c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Wot {provider} doporučeny", "header_bookmarks_placeholder": "Hišće zapołožki nimaće.", "header_stories_from": "wot", + "context_menu_button_sr": "Kontekstowy meni za {title} wočinić", "type_label_visited": "Wopytany", "type_label_bookmarked": "Jako zapołožka składowany", "type_label_synced": "Z druheho grata synchronizowany", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Tute sydło wobdźěłać", "edit_topsites_dismiss_button": "Sydło zaćisnyć", "edit_topsites_add_button": "Přidać", + "edit_topsites_add_button_tooltip": "Woblubowane sydło přidać", "topsites_form_add_header": "Nowe najhusćišo wopytane sydło", "topsites_form_edit_header": "Najhusćišo wopytane sydło wobdźěłać", "topsites_form_title_placeholder": "Titul zapodać", diff --git a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html index 5ee496bd95e6..0e7e5d0bf7a8 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                      Népszerű oldalak

                                                                                                                                                                      A(z) Pocket ajánlásával

                                                                                                                                                                      Népszerű témák:

                                                                                                                                                                        Kiemelések

                                                                                                                                                                        +

                                                                                                                                                                        Népszerű oldalak

                                                                                                                                                                        A(z) Pocket ajánlásával

                                                                                                                                                                        Népszerű témák:

                                                                                                                                                                          Kiemelések

                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js index 076abc5fc05f..8aaa000e8e9f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "A(z) {provider} ajánlásával", "header_bookmarks_placeholder": "Még nincs könyvjelzője.", "header_stories_from": "innen:", + "context_menu_button_sr": "Környezeti menü megnyitása ehhez: {title}", "type_label_visited": "Látogatott", "type_label_bookmarked": "Könyvjelzőzött", "type_label_synced": "Másik eszközről szinkronizálva", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Webhely szerkesztése", "edit_topsites_dismiss_button": "Webhely eltávolítása", "edit_topsites_add_button": "Hozzáadás", + "edit_topsites_add_button_tooltip": "Népszerű oldal hozzáadása", "topsites_form_add_header": "Új népszerű oldal", "topsites_form_edit_header": "Népszerű oldal szerkesztése", "topsites_form_title_placeholder": "Cím megadása", diff --git a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html index 5b09f0f288cf..9cf920c40e91 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                          Լավագույն կայքեր

                                                                                                                                                                          Recommended by Pocket

                                                                                                                                                                          Popular Topics:

                                                                                                                                                                            Գունանշում

                                                                                                                                                                            +

                                                                                                                                                                            Լավագույն կայքեր

                                                                                                                                                                            Recommended by Pocket

                                                                                                                                                                            Popular Topics:

                                                                                                                                                                              Գունանշում

                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js index 078aca9920e9..587d1efd3922 100644 --- a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Այցելած", "type_label_bookmarked": "Էջանշված", "type_label_synced": "Համաժամեցված այլ սարքից", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html index 4f89bd22243c..3fe0bf061ba7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                              Sitos popular

                                                                                                                                                                              Recommendate per Pocket

                                                                                                                                                                              Subjectos popular:

                                                                                                                                                                                In evidentia

                                                                                                                                                                                +

                                                                                                                                                                                Sitos popular

                                                                                                                                                                                Recommendate per Pocket

                                                                                                                                                                                Subjectos popular:

                                                                                                                                                                                  In evidentia

                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js index 7b8e77a6fdd2..188da3c37914 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommendate per {provider}", "header_bookmarks_placeholder": "Tu ha ancora nulle marcapaginas.", "header_stories_from": "de", + "context_menu_button_sr": "Aperir le menu contextual pro {title}", "type_label_visited": "Visitate", "type_label_bookmarked": "Marcapaginas addite", "type_label_synced": "Synchronisate de altere apparato", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar iste sito", "edit_topsites_dismiss_button": "Dimitter iste sito", "edit_topsites_add_button": "Adder", + "edit_topsites_add_button_tooltip": "Adder un sito popular", "topsites_form_add_header": "Nove sito popular", "topsites_form_edit_header": "Editar le sito popular", "topsites_form_title_placeholder": "Scriber un titulo", diff --git a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html index f0f92530cd0b..b8ad0409b734 100644 --- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                  Situs Teratas

                                                                                                                                                                                  Disarankan oleh Pocket

                                                                                                                                                                                  Topik Populer:

                                                                                                                                                                                    Sorotan

                                                                                                                                                                                    +

                                                                                                                                                                                    Situs Teratas

                                                                                                                                                                                    Disarankan oleh Pocket

                                                                                                                                                                                    Topik Populer:

                                                                                                                                                                                      Sorotan

                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js index aaacecfde5da..a29af241a619 100644 --- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Disarankan oleh {provider}", "header_bookmarks_placeholder": "Anda belum memiliki markah.", "header_stories_from": "dari", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Dikunjungi", "type_label_bookmarked": "Dimarkahi", "type_label_synced": "Disinkronkan dari perangkat lain", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Sunting situs ini", "edit_topsites_dismiss_button": "Abaikan situs ini", "edit_topsites_add_button": "Tambah", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Situs Pilihan Baru", "topsites_form_edit_header": "Ubah Situs Pilihan", "topsites_form_title_placeholder": "Masukkan judul", diff --git a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html index 979467012bb1..f73093fa0752 100644 --- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                      Siti principali

                                                                                                                                                                                      Consigliati da Pocket

                                                                                                                                                                                      Argomenti popolari:

                                                                                                                                                                                        In evidenza

                                                                                                                                                                                        +

                                                                                                                                                                                        Siti principali

                                                                                                                                                                                        Consigliati da Pocket

                                                                                                                                                                                        Argomenti popolari:

                                                                                                                                                                                          In evidenza

                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js index 4a76c3d7ce30..0b2188acf5bf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Consigliati da {provider}", "header_bookmarks_placeholder": "Non è ancora disponibile alcun segnalibro.", "header_stories_from": "da", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visitato", "type_label_bookmarked": "Nei segnalibri", "type_label_synced": "Sincronizzato da un altro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Modifica questo sito", "edit_topsites_dismiss_button": "Ignora questo sito", "edit_topsites_add_button": "Aggiungi", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nuovi sito principale", "topsites_form_edit_header": "Modifica sito principale", "topsites_form_title_placeholder": "Inserire un titolo", diff --git a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html index 5a8bdb3e074c..53c599d4500d 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                          トップサイト

                                                                                                                                                                                          Pocket のおすすめ

                                                                                                                                                                                          人気のトピック:

                                                                                                                                                                                            ハイライト

                                                                                                                                                                                            +

                                                                                                                                                                                            トップサイト

                                                                                                                                                                                            Pocket のおすすめ

                                                                                                                                                                                            人気のトピック:

                                                                                                                                                                                              ハイライト

                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js index 5c2ab1eda236..da73834a77ef 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} のおすすめ", "header_bookmarks_placeholder": "まだブックマークがありません。", "header_stories_from": "配信元", + "context_menu_button_sr": "{title} のコンテキストメニューを開く", "type_label_visited": "訪問済み", "type_label_bookmarked": "ブックマーク済み", "type_label_synced": "他の端末から同期", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "このサイトを編集", "edit_topsites_dismiss_button": "このサイトを削除", "edit_topsites_add_button": "追加", + "edit_topsites_add_button_tooltip": "トップサイトを追加", "topsites_form_add_header": "新着トップサイト", "topsites_form_edit_header": "トップサイトを編集", "topsites_form_title_placeholder": "タイトルを入力", diff --git a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html index 2df293e28064..e159b004ff22 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                              რჩეული საიტები

                                                                                                                                                                                              რეკომენდებულია Pocket-ის მიერ

                                                                                                                                                                                              პოპულარული თემები:

                                                                                                                                                                                                მნიშვნელოვანი საიტები

                                                                                                                                                                                                +

                                                                                                                                                                                                რჩეული საიტები

                                                                                                                                                                                                რეკომენდებულია Pocket-ის მიერ

                                                                                                                                                                                                პოპულარული თემები:

                                                                                                                                                                                                  მნიშვნელოვანი საიტები

                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js index a629557276ff..ad2bdff05faf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "რეკომენდებულია {provider}-ის მიერ", "header_bookmarks_placeholder": "სანიშნები ჯერ არაა დამატებული.", "header_stories_from": "მომწოდებელი:", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "მონახულებული", "type_label_bookmarked": "ჩანიშნული", "type_label_synced": "სხვა მოწყობილობიდან დასინქრონებული", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "საიტის ჩასწორება", "edit_topsites_dismiss_button": "საიტის დამალვა", "edit_topsites_add_button": "დამატება", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "ახალი საიტი რჩეულებში", "topsites_form_edit_header": "რჩეული საიტების ჩასწორება", "topsites_form_title_placeholder": "სათაურის შეყვანა", diff --git a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html index 2af105dd0f14..d74c51076033 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                  Ismal ifazen

                                                                                                                                                                                                  Iwelleh-it-id Pocket

                                                                                                                                                                                                  Isental ittwasnen aṭas:

                                                                                                                                                                                                    Asebrureq

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Ismal ifazen

                                                                                                                                                                                                    Iwelleh-it-id Pocket

                                                                                                                                                                                                    Isental ittwasnen aṭas:

                                                                                                                                                                                                      Asebrureq

                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js index b58a303df7b1..f4d759f1df41 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Iwelleh-it-id {provider}", "header_bookmarks_placeholder": "Ur ɣur-k ara ticraḍ yakan.", "header_stories_from": "seg", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Yettwarza", "type_label_bookmarked": "Yettwacreḍ", "type_label_synced": "Yemtawi seg ibenk-nniḍen", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Ẓreg asmel-agi", "edit_topsites_dismiss_button": "Anef i usmel-agi", "edit_topsites_add_button": "Rnu", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Asmel ifazen amaynut", "topsites_form_edit_header": "Ẓreg asmel ifazen", "topsites_form_title_placeholder": "Sekcem azwel", diff --git a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html index 3c1697f8471f..2363f94f25b4 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                      Үздік сайттар

                                                                                                                                                                                                      Ұсынушы Pocket

                                                                                                                                                                                                      Әйгілі тақырыптар:

                                                                                                                                                                                                        Ерекше жаңалықтар

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Үздік сайттар

                                                                                                                                                                                                        Ұсынушы Pocket

                                                                                                                                                                                                        Әйгілі тақырыптар:

                                                                                                                                                                                                          Ерекше жаңалықтар

                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js index 8ecb7832dbe2..e4f77dadd450 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Ұсынушы {provider}", "header_bookmarks_placeholder": "Сізде әлі бетбелгілер жоқ.", "header_stories_from": "ұсынған", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Қаралған", "type_label_bookmarked": "Бетбелгілерде", "type_label_synced": "Басқа құрылғыдан синхрондалған", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Бұл сайтты түзету", "edit_topsites_dismiss_button": "Бұл сайтты тайдыру", "edit_topsites_add_button": "Қосу", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Жаңа топ сайты", "topsites_form_edit_header": "Топ сайтын түзету", "topsites_form_title_placeholder": "Атауын енгізіңіз", diff --git a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html index f3c2adc5c3c4..eaaba600f3b7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                          វិបសាយ​លើ​គេ

                                                                                                                                                                                                          បានណែនាំដោយ Pocket

                                                                                                                                                                                                          ប្រធានបទកំពុងពេញនិយម៖

                                                                                                                                                                                                            រឿងសំខាន់ៗ

                                                                                                                                                                                                            +

                                                                                                                                                                                                            វិបសាយ​លើ​គេ

                                                                                                                                                                                                            បានណែនាំដោយ Pocket

                                                                                                                                                                                                            ប្រធានបទកំពុងពេញនិយម៖

                                                                                                                                                                                                              រឿងសំខាន់ៗ

                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js index ad65750c7bc6..26c2acdad370 100644 --- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "បានណែនាំដោយ {provider}", "header_bookmarks_placeholder": "អ្នកមិនមានចំណាំណាមួយនៅឡើយទេ ។", "header_stories_from": "មកពី", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "បាន​ចូល​មើល", "type_label_bookmarked": "បាន​ចំណាំ", "type_label_synced": "បាន​ធ្វើ​សមកាលកម្ម​ពី​ឧបករណ៍​ផ្សេង​ទៀត", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "កែសម្រួលសាយនេះ", "edit_topsites_dismiss_button": "ច្រានចោលសាយនេះ", "edit_topsites_add_button": "បន្ថែម", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "សាយកំពូលថ្មី", "topsites_form_edit_header": "កែសម្រួលសាយកំពូល", "topsites_form_title_placeholder": "បញ្ចូលចំណងជើង", diff --git a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html index af44df9a94e0..10bb46de6e6e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                              ಪ್ರಮುಖ ತಾಣಗಳು

                                                                                                                                                                                                              Pocket ರಿಂದ ಶಿಫಾರಸುಮಾಡುಲಾಗಿದೆ

                                                                                                                                                                                                              ಜನಪ್ರಿಯವಾದ ವಿಷಯಗಳು:

                                                                                                                                                                                                                ಮುಖ್ಯಾಂಶಗಳು

                                                                                                                                                                                                                +

                                                                                                                                                                                                                ಪ್ರಮುಖ ತಾಣಗಳು

                                                                                                                                                                                                                Pocket ರಿಂದ ಶಿಫಾರಸುಮಾಡುಲಾಗಿದೆ

                                                                                                                                                                                                                ಜನಪ್ರಿಯವಾದ ವಿಷಯಗಳು:

                                                                                                                                                                                                                  ಮುಖ್ಯಾಂಶಗಳು

                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js index 4fe23ebd9527..bc7a782435de 100644 --- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} ರಿಂದ ಶಿಫಾರಸುಮಾಡುಲಾಗಿದೆ", "header_bookmarks_placeholder": "ನಿಮ್ಮ ಹತ್ತಿರ ಇನ್ನೂ ಯಾವುದೇ ಪುಟಗುರುತುಗಳಿಲ್ಲ.", "header_stories_from": "ಯಿಂದ", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "ಭೇಟಿ ನೀಡಲಾದ‍", "type_label_bookmarked": "ಪುಟಗುರುತು ಮಾಡಲಾದ", "type_label_synced": "ಮತ್ತೊಂದು ಸಾಧನದಿಂದ ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು", "edit_topsites_dismiss_button": "ಈ ತಾಣವನ್ನು ತೆಗೆದುಹಾಕು", "edit_topsites_add_button": "ಸೇರಿಸು", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "ಹೊಸ ಅಗ್ರ ತಾಣಗಳು", "topsites_form_edit_header": "ಅಗ್ರ ತಾಣಗಳನ್ನು ಸಂಪಾದಿಸಿ", "topsites_form_title_placeholder": "ಶೀರ್ಷಿಕೆಯನ್ನು ನಮೂದಿಸಿ", diff --git a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html index 044bfffad069..465320c4a1cf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                  상위 사이트

                                                                                                                                                                                                                  Pocket 추천

                                                                                                                                                                                                                  인기 주제:

                                                                                                                                                                                                                    하이라이트

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    상위 사이트

                                                                                                                                                                                                                    Pocket 추천

                                                                                                                                                                                                                    인기 주제:

                                                                                                                                                                                                                      하이라이트

                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js index 231eee49d5ff..1eed5d748af3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} 추천", "header_bookmarks_placeholder": "북마크가 없습니다.", "header_stories_from": "출처", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "방문한 사이트", "type_label_bookmarked": "즐겨찾기", "type_label_synced": "다른 기기에서 동기화", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "이 사이트 수정", "edit_topsites_dismiss_button": "이 사이트 제거", "edit_topsites_add_button": "추가", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "새로운 인기 사이트", "topsites_form_edit_header": "인기 사이트 편집", "topsites_form_title_placeholder": "제목 입력", diff --git a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html index 36108f38321a..30dfe466f5d8 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                      I megio sciti

                                                                                                                                                                                                                      Recommended by Pocket

                                                                                                                                                                                                                      Popular Topics:

                                                                                                                                                                                                                        In evidensa

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        I megio sciti

                                                                                                                                                                                                                        Recommended by Pocket

                                                                                                                                                                                                                        Popular Topics:

                                                                                                                                                                                                                          In evidensa

                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js index 9574c11a9b53..1e1e626860dc 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Vixitou", "type_label_bookmarked": "Azonto a-i segnalibbri", "type_label_synced": "Scincronizou da 'n atro dispoxitivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Cangia sto scito", "edit_topsites_dismiss_button": "Ignòra sto scito", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html index 8beed2b91776..1f34df06c9b7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                          ເວັບໄຊຕ໌ຍອດນິຍົມ

                                                                                                                                                                                                                          Recommended by Pocket

                                                                                                                                                                                                                          ຫົວຂໍ້ຍອດນິຍົມ:

                                                                                                                                                                                                                            ລາຍການເດັ່ນ

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            ເວັບໄຊຕ໌ຍອດນິຍົມ

                                                                                                                                                                                                                            Recommended by Pocket

                                                                                                                                                                                                                            ຫົວຂໍ້ຍອດນິຍົມ:

                                                                                                                                                                                                                              ລາຍການເດັ່ນ

                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js index 0015637c6f2b..5b8e9a42141b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "ເຂົ້າໄປເບິງມາແລ້ວ", "type_label_bookmarked": "ບຸກມາກໄວ້ແລ້ວ", "type_label_synced": "ໄດ້ Sync ມາຈາກອຸປະກອນອື່ນ", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ແກ້ໄຂເວັບໄຊທ໌ນີ້", "edit_topsites_dismiss_button": "ຍົກເລີກເວັບໄຊທ໌ນີ້", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "ປ້ອນຊື່ເລື່ອງ", diff --git a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html index 678096e86461..42905f64784d 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                              Lankomiausios svetainės

                                                                                                                                                                                                                              Rekomendavo „Pocket“

                                                                                                                                                                                                                              Populiarios temos:

                                                                                                                                                                                                                                Akcentai

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Lankomiausios svetainės

                                                                                                                                                                                                                                Rekomendavo „Pocket“

                                                                                                                                                                                                                                Populiarios temos:

                                                                                                                                                                                                                                  Akcentai

                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js index bc93a72d6a28..ca823a92efa5 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Rekomendavo „{provider}“", "header_bookmarks_placeholder": "Jūs dar neturite adresyno įrašų.", "header_stories_from": "iš", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Aplankyti", "type_label_bookmarked": "Adresyne", "type_label_synced": "Sinchronizuoti iš kito įrenginio", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Redaguoti šią svetainę", "edit_topsites_dismiss_button": "Paslėpti šią svetainę", "edit_topsites_add_button": "Pridėti", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nauja mėgstama svetainė", "topsites_form_edit_header": "Redaguoti mėgstamą svetainę", "topsites_form_title_placeholder": "Įveskite pavadinimą", diff --git a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html index e34e4114e085..16f507cfbd7a 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                  Popularōkōs lopys

                                                                                                                                                                                                                                  Pocket īsaceitōs

                                                                                                                                                                                                                                  Popularas tēmas:

                                                                                                                                                                                                                                    Izraudzeitī

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Popularōkōs lopys

                                                                                                                                                                                                                                    Pocket īsaceitōs

                                                                                                                                                                                                                                    Popularas tēmas:

                                                                                                                                                                                                                                      Izraudzeitī

                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js index 072041c32843..39d2dc6da221 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} īsaceitōs", "header_bookmarks_placeholder": "Tu vāļ naesi nikū saglobōjs.", "header_stories_from": "nu", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Apsavārtys lopys", "type_label_bookmarked": "Saglobōts grōmotzemēs", "type_label_synced": "Sinhroniziets nu cytas īreices", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Maineit lopu", "edit_topsites_dismiss_button": "Paslēpt lopu", "edit_topsites_add_button": "Pīvīnōt", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Jauna lopa topā", "topsites_form_edit_header": "Maineit lopu topā", "topsites_form_title_placeholder": "Īvodi viersrokstu", diff --git a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html index ee77baf4f7b1..1ff538804d74 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                      Populārākās lapas

                                                                                                                                                                                                                                      Iesaka Pocket

                                                                                                                                                                                                                                      Populārās tēmas:

                                                                                                                                                                                                                                        Aktualitātes

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Populārākās lapas

                                                                                                                                                                                                                                        Iesaka Pocket

                                                                                                                                                                                                                                        Populārās tēmas:

                                                                                                                                                                                                                                          Aktualitātes

                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js index 9941c6f418ce..4620a52b4c79 100644 --- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Iesaka {provider}", "header_bookmarks_placeholder": "Jums vēl nav nevienas grāmatzīmes.", "header_stories_from": "no", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Apmeklēta", "type_label_bookmarked": "Grāmatzīmēs", "type_label_synced": "Atsūtīta no citas ierīces", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Rediģēt šo lapu", "edit_topsites_dismiss_button": "Noraidīt šo lapu", "edit_topsites_add_button": "Pievienot", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Jauna populārā lapa", "topsites_form_edit_header": "Rediģēt populārās lapas", "topsites_form_title_placeholder": "Ievadiet nosaukumu", diff --git a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html index 1c4c38968ac9..a5e0b4a093fc 100644 --- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                          Популарни мрежни места

                                                                                                                                                                                                                                          Препорачано од Pocket

                                                                                                                                                                                                                                          Популарни теми:

                                                                                                                                                                                                                                            Интереси

                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                            Популарни мрежни места

                                                                                                                                                                                                                                            Препорачано од Pocket

                                                                                                                                                                                                                                            Популарни теми:

                                                                                                                                                                                                                                              Интереси

                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js index 6d978af39bb7..b5bd17daddb1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Препорачано од {provider}", "header_bookmarks_placeholder": "Сѐ уште немате обележувачи.", "header_stories_from": "од", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Посетени", "type_label_bookmarked": "Обележани", "type_label_synced": "Синхронизирани од други уреди", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Уреди го ова место", "edit_topsites_dismiss_button": "Отфрли го ова место", "edit_topsites_add_button": "Додај", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Ново врвно мрежно место", "topsites_form_edit_header": "Уреди врвно мрежно место", "topsites_form_title_placeholder": "Внесете наслов", diff --git a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html index 859d7998e2f8..ef637d89a8a3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                              മികച്ച സൈറ്റുകൾ

                                                                                                                                                                                                                                              Pocket ശുപാർശ ചെയ്തത്

                                                                                                                                                                                                                                              ജനപ്രിയ വിഷയങ്ങൾ:

                                                                                                                                                                                                                                                ഹൈലൈറ്റുകൾ

                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                മികച്ച സൈറ്റുകൾ

                                                                                                                                                                                                                                                Pocket ശുപാർശ ചെയ്തത്

                                                                                                                                                                                                                                                ജനപ്രിയ വിഷയങ്ങൾ:

                                                                                                                                                                                                                                                  ഹൈലൈറ്റുകൾ

                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js index 56634ad7f10a..04d0b5a7bb43 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} ശുപാർശ ചെയ്തത്", "header_bookmarks_placeholder": "നിങ്ങൾക്ക് ഇതുവരെ ബുക്ക്മാർക്കുകൾ ഇല്ല.", "header_stories_from": "എവിടെ നിന്നും", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "സന്ദർശിച്ചത്‌", "type_label_bookmarked": "അടയാളപ്പെടുത്തിയത്", "type_label_synced": "മറ്റു ഉപകരണങ്ങളുമായി സാമ്യപ്പെടുക", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ഈ സൈറ്റ് തിരുത്തുക", "edit_topsites_dismiss_button": "ഈ സൈറ്റ് പുറത്താക്കുക", "edit_topsites_add_button": "ചേര്‍ക്കുക", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "പുതിയ മികച്ച സൈറ്റുകൾ", "topsites_form_edit_header": "മികച്ച സൈറ്റ് ലിസ്റ്റ് തിരുത്തൂ", "topsites_form_title_placeholder": "തലക്കെട്ട് നൽകൂ", diff --git a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html index 7140819d180e..1daf76efcb7d 100644 --- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                  खास साईट्स

                                                                                                                                                                                                                                                  Recommended by Pocket

                                                                                                                                                                                                                                                  Popular Topics:

                                                                                                                                                                                                                                                    ठळक

                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                    खास साईट्स

                                                                                                                                                                                                                                                    Recommended by Pocket

                                                                                                                                                                                                                                                    Popular Topics:

                                                                                                                                                                                                                                                      ठळक

                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js index 3a2a769fd868..2fa51c2834a2 100644 --- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "कडून", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "भेट दिलेले", "type_label_bookmarked": "वाचनखुण लावले", "type_label_synced": "इतर साधनावरुन ताळमेळ केले", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html index 80cbf1d80192..70c7185c4d8c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                      Laman Teratas

                                                                                                                                                                                                                                                      Disyorkan oleh Pocket

                                                                                                                                                                                                                                                      Topik Popular:

                                                                                                                                                                                                                                                        Serlahan

                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                        Laman Teratas

                                                                                                                                                                                                                                                        Disyorkan oleh Pocket

                                                                                                                                                                                                                                                        Topik Popular:

                                                                                                                                                                                                                                                          Serlahan

                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js index 8b1fadb860fb..c833b6c7cac1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Disyorkan oleh {provider}", "header_bookmarks_placeholder": "Anda masih belum ada tandabuku lagi.", "header_stories_from": "dari", + "context_menu_button_sr": "Buka menu konteks untuk {title}", "type_label_visited": "Dilawati", "type_label_bookmarked": "Ditandabuku", "type_label_synced": "Sync dari peranti lain", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit laman ini", "edit_topsites_dismiss_button": "Buang laman ini", "edit_topsites_add_button": "Tambah", + "edit_topsites_add_button_tooltip": "Tambah Laman Teratas", "topsites_form_add_header": "Laman Teratas Baru", "topsites_form_edit_header": "Edit Laman Teratas", "topsites_form_title_placeholder": "Masukkan tajuk", diff --git a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html index 3b3e599fc284..75bcf4748482 100644 --- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                          အများဆုံးသုံးဆိုက်များ

                                                                                                                                                                                                                                                          Pocket က အကြံပြုထားသည်

                                                                                                                                                                                                                                                          လူကြိုက်များခေါင်းစဉ်များ

                                                                                                                                                                                                                                                            ဦးစားပေးအကြောင်းအရာများ

                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                            အများဆုံးသုံးဆိုက်များ

                                                                                                                                                                                                                                                            Pocket က အကြံပြုထားသည်

                                                                                                                                                                                                                                                            လူကြိုက်များခေါင်းစဉ်များ

                                                                                                                                                                                                                                                              ဦးစားပေးအကြောင်းအရာများ

                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js index 45a2b3a3cac5..13f5af336f75 100644 --- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} က အကြံပြုထားသည်", "header_bookmarks_placeholder": "မည်သည့်စာမှတ်မျှ မရှိသေးပါ။", "header_stories_from": "မှ", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "သွားလည်ခဲ့သော", "type_label_bookmarked": "စာအမှတ်မှတ်ထားသော", "type_label_synced": "အခြားပစ္စည်းတစ်ခုမှရယူထားသှ်", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ဆိုက်အားပြင်မည်", "edit_topsites_dismiss_button": "ဆိုက်အားဖျက်လိုက်မည်", "edit_topsites_add_button": "ထည့်ရန်", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "ထိပ်တန်းဆိုက် အသစ်", "topsites_form_edit_header": "ထိပ်တန်းဆိုက်ကို တည်းဖြတ်ရန်", "topsites_form_title_placeholder": "ခေါင်းစဉ် ရေးပါ", diff --git a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html index 5bc50df2cf12..ddad57f27bd2 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                              Mest besøkte nettsider

                                                                                                                                                                                                                                                              Anbefalt av Pocket

                                                                                                                                                                                                                                                              Populære emner:

                                                                                                                                                                                                                                                                Høydepunkter

                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                Mest besøkte nettsider

                                                                                                                                                                                                                                                                Anbefalt av Pocket

                                                                                                                                                                                                                                                                Populære emner:

                                                                                                                                                                                                                                                                  Høydepunkter

                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js index 34ac419d43e2..39fbbf6291a0 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Anbefalt av {provider}", "header_bookmarks_placeholder": "Du har ingen bokmerker enda.", "header_stories_from": "fra", + "context_menu_button_sr": "Åpne kontekstmeny for {title}", "type_label_visited": "Besøkt", "type_label_bookmarked": "Bokmerket", "type_label_synced": "Synkronisert fra annen enhet", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Rediger denne nettsiden", "edit_topsites_dismiss_button": "Avvis denne nettsiden", "edit_topsites_add_button": "Legg til", + "edit_topsites_add_button_tooltip": "Legg til toppsted", "topsites_form_add_header": "Nytt toppsted", "topsites_form_edit_header": "Rediger toppsted", "topsites_form_title_placeholder": "Oppgi en tittel", diff --git a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html index c29802038947..7ec3e2282ac6 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                  शीर्ष साइटहरु

                                                                                                                                                                                                                                                                  Pocket द्वारा सिफारिस गरिएको

                                                                                                                                                                                                                                                                  लोकप्रिय शीर्षकहरू:

                                                                                                                                                                                                                                                                    विशेषताहरू

                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                    शीर्ष साइटहरु

                                                                                                                                                                                                                                                                    Pocket द्वारा सिफारिस गरिएको

                                                                                                                                                                                                                                                                    लोकप्रिय शीर्षकहरू:

                                                                                                                                                                                                                                                                      विशेषताहरू

                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js index 266fac18cbf3..e7c9db8eb8b2 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} द्वारा सिफारिस गरिएको", "header_bookmarks_placeholder": "तपाइँसँग अहिले सम्म कुनै पुस्तकचिनोहरु छैन ।", "header_stories_from": "बाट", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "भ्रमण गरिएको", "type_label_bookmarked": "पुस्तकचिनो लागाइएको", "type_label_synced": "अर्को यण्त्रबाट समक्रमण गरिएको", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "यस साइटलाई सम्पादन गर्नुहोस्", "edit_topsites_dismiss_button": "यस साइटलाई खारेज गर्नुहोस्", "edit_topsites_add_button": "थप्नुहोस्", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "नयाँ शीर्ष साइट", "topsites_form_edit_header": "शीर्ष साइट सम्पादन गर्नुहोस्", "topsites_form_title_placeholder": "शीर्षक प्रविष्ट गर्नुहोस्", diff --git a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html index 824342cf661d..6ffa9ce69075 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                      Topwebsites

                                                                                                                                                                                                                                                                      Aanbevolen door Pocket

                                                                                                                                                                                                                                                                      Populaire onderwerpen:

                                                                                                                                                                                                                                                                        Highlights

                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                        Topwebsites

                                                                                                                                                                                                                                                                        Aanbevolen door Pocket

                                                                                                                                                                                                                                                                        Populaire onderwerpen:

                                                                                                                                                                                                                                                                          Highlights

                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js index 165bac40071e..137efd9a9aa1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Aanbevolen door {provider}", "header_bookmarks_placeholder": "U hebt nog geen bladwijzers.", "header_stories_from": "van", + "context_menu_button_sr": "Contextmenu openen voor {title}", "type_label_visited": "Bezocht", "type_label_bookmarked": "Bladwijzer gemaakt", "type_label_synced": "Gesynchroniseerd vanaf ander apparaat", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Deze website bewerken", "edit_topsites_dismiss_button": "Deze website verwijderen", "edit_topsites_add_button": "Toevoegen", + "edit_topsites_add_button_tooltip": "Topwebsite toevoegen", "topsites_form_add_header": "Nieuwe topwebsite", "topsites_form_edit_header": "Topwebsite bewerken", "topsites_form_title_placeholder": "Voer een titel in", diff --git a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html index efad528e913a..e5e587c937d2 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                          Mest besøkte nettsider

                                                                                                                                                                                                                                                                          Tilrådd av Pocket

                                                                                                                                                                                                                                                                          Populære emne:

                                                                                                                                                                                                                                                                            Høgdepunkt

                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                            Mest besøkte nettsider

                                                                                                                                                                                                                                                                            Tilrådd av Pocket

                                                                                                                                                                                                                                                                            Populære emne:

                                                                                                                                                                                                                                                                              Høgdepunkt

                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js index 0a8be1d9d9e6..b1adaa98be41 100644 --- a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Tilrådd av {provider}", "header_bookmarks_placeholder": "Du har ingen bokmerke enno.", "header_stories_from": "frå", + "context_menu_button_sr": "Opne kontekstmeny for {title}", "type_label_visited": "Besøkt", "type_label_bookmarked": "Bokmerkte", "type_label_synced": "Synkronisert frå ei anna eining", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Rediger denne nettsida", "edit_topsites_dismiss_button": "Avvis denne nettsida", "edit_topsites_add_button": "Legg til", + "edit_topsites_add_button_tooltip": "Legg til mest besøkt", "topsites_form_add_header": "Ny Mest besøkt", "topsites_form_edit_header": "Rediger Mest besøkt", "topsites_form_title_placeholder": "Skriv inn ein tittel", diff --git a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html index b7edd6d11b94..911a2d887494 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                              ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ

                                                                                                                                                                                                                                                                              Pocket ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ

                                                                                                                                                                                                                                                                              Popular Topics:

                                                                                                                                                                                                                                                                                ਸੁਰਖੀਆਂ

                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ

                                                                                                                                                                                                                                                                                Pocket ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ

                                                                                                                                                                                                                                                                                Popular Topics:

                                                                                                                                                                                                                                                                                  ਸੁਰਖੀਆਂ

                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js index 0cfab3b2ec1a..1003d242e4ce 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "ਖੋਲ੍ਹੀਆਂ", "type_label_bookmarked": "ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ", "type_label_synced": "ਹੋਰ ਡਿਵਾਈਸ ਤੋਂ ਸਿੰਕ ਕੀਤੀਆਂ", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ", "edit_topsites_dismiss_button": "ਇਸ ਸਾਈਟ ਰੱਦ ਕਰੋ", "edit_topsites_add_button": "ਜੋੜੋ", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html index 694b6afd1727..30519b7fd13a 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                  Popularne

                                                                                                                                                                                                                                                                                  Poleca: Pocket

                                                                                                                                                                                                                                                                                  Popularne tematy:

                                                                                                                                                                                                                                                                                    Wyróżnione

                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                    Popularne

                                                                                                                                                                                                                                                                                    Poleca: Pocket

                                                                                                                                                                                                                                                                                    Popularne tematy:

                                                                                                                                                                                                                                                                                      Wyróżnione

                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js index 8386b08396e6..04dac3f4d334 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Poleca: {provider}", "header_bookmarks_placeholder": "Nie ma jeszcze żadnych zakładek.", "header_stories_from": "od:", + "context_menu_button_sr": "Otwórz menu kontekstowe dla „{title}”", "type_label_visited": "Odwiedzone", "type_label_bookmarked": "Zakładka", "type_label_synced": "Z innego urządzenia", @@ -69,7 +70,7 @@ window.gActivityStreamStrings = { "settings_pane_done_button": "Gotowe", "settings_pane_topstories_options_sponsored": "Sponsorowane artykuły", "edit_topsites_button_text": "Edytuj", - "edit_topsites_button_label": "Dostosuj często odwiedzane strony", + "edit_topsites_button_label": "Dostosuj popularne strony", "edit_topsites_showmore_button": "Więcej", "edit_topsites_showless_button": "Mniej", "edit_topsites_done_button": "Gotowe", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edytuj tę stronę", "edit_topsites_dismiss_button": "Odrzuć tę stronę", "edit_topsites_add_button": "Dodaj", + "edit_topsites_add_button_tooltip": "Dodaj popularną stronę", "topsites_form_add_header": "Nowa popularna strona", "topsites_form_edit_header": "Edytuj popularną stronę", "topsites_form_title_placeholder": "Wpisz tytuł", diff --git a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html index c3067bc84e0e..e7f91dd194fa 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                      Sites preferidos

                                                                                                                                                                                                                                                                                      Recomendado por Pocket

                                                                                                                                                                                                                                                                                      Tópicos populares:

                                                                                                                                                                                                                                                                                        Destaques

                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                        Sites preferidos

                                                                                                                                                                                                                                                                                        Recomendado por Pocket

                                                                                                                                                                                                                                                                                        Tópicos populares:

                                                                                                                                                                                                                                                                                          Destaques

                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js index 542210288da6..315db11d66ef 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Você ainda não tem nenhum favorito.", "header_stories_from": "de", + "context_menu_button_sr": "Abrir menu de contexto para {title}", "type_label_visited": "Visitado", "type_label_bookmarked": "Adicionado aos favoritos", "type_label_synced": "Sincronizado a partir de outro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este site", "edit_topsites_dismiss_button": "Descartar este site", "edit_topsites_add_button": "Adicionar", + "edit_topsites_add_button_tooltip": "Adicionar site preferido", "topsites_form_add_header": "Novo site popular", "topsites_form_edit_header": "Editar site popular", "topsites_form_title_placeholder": "Digite um título", diff --git a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html index b235fbdf6cdb..ce83f92725ff 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                          Sites mais visitados

                                                                                                                                                                                                                                                                                          Recomendado por Pocket

                                                                                                                                                                                                                                                                                          Tópicos populares:

                                                                                                                                                                                                                                                                                            Destaques

                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                            Sites mais visitados

                                                                                                                                                                                                                                                                                            Recomendado por Pocket

                                                                                                                                                                                                                                                                                            Tópicos populares:

                                                                                                                                                                                                                                                                                              Destaques

                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js index 47e925a0f030..f489c56f84bf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomendado por {provider}", "header_bookmarks_placeholder": "Ainda não tem quaisquer marcadores.", "header_stories_from": "de", + "context_menu_button_sr": "Abrir menu de contexto para {title}", "type_label_visited": "Visitados", "type_label_bookmarked": "Guardados nos marcadores", "type_label_synced": "Sincronizado a partir de outro dispositivo", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editar este site", "edit_topsites_dismiss_button": "Descartar este site", "edit_topsites_add_button": "Adicionar", + "edit_topsites_add_button_tooltip": "Adicionar site mais visitado", "topsites_form_add_header": "Novo site mais visitado", "topsites_form_edit_header": "Editar site mais visitado", "topsites_form_title_placeholder": "Digite um título", diff --git a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html index 50bdcfb20c38..1a10d0a29196 100644 --- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                              Paginas preferidas

                                                                                                                                                                                                                                                                                              Recumandà da Pocket

                                                                                                                                                                                                                                                                                              Temas populars:

                                                                                                                                                                                                                                                                                                Accents

                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                Paginas preferidas

                                                                                                                                                                                                                                                                                                Recumandà da Pocket

                                                                                                                                                                                                                                                                                                Temas populars:

                                                                                                                                                                                                                                                                                                  Accents

                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js index 91ee937f0928..0774ea3e3bae 100644 --- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recumandà da {provider}", "header_bookmarks_placeholder": "Ti n'has anc nagins segnapaginas.", "header_stories_from": "da", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visità", "type_label_bookmarked": "Cun segnapagina", "type_label_synced": "Sincronisà dad auters apparats", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Modifitgar questa pagina", "edit_topsites_dismiss_button": "Allontanar questa pagina", "edit_topsites_add_button": "Agiuntar", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nova pagina populara", "topsites_form_edit_header": "Modifitgar la pagina populara", "topsites_form_title_placeholder": "Endatar in titel", diff --git a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html index 9fe3bf9ae258..5f16a4c37299 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                  Site-uri de top

                                                                                                                                                                                                                                                                                                  Recomandat de Pocket

                                                                                                                                                                                                                                                                                                  Subiecte populare:

                                                                                                                                                                                                                                                                                                    Evidențieri

                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                    Site-uri de top

                                                                                                                                                                                                                                                                                                    Recomandat de Pocket

                                                                                                                                                                                                                                                                                                    Subiecte populare:

                                                                                                                                                                                                                                                                                                      Evidențieri

                                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js index 8c8b6e438f14..121bfeb2cb0b 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recomandat de {provider}", "header_bookmarks_placeholder": "Nu ai niciun marcaj încă.", "header_stories_from": "de la", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Vizitate", "type_label_bookmarked": "Însemnat", "type_label_synced": "Sincronizat de pe alt dispozitiv", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Editează acest site", "edit_topsites_dismiss_button": "Înlătură acest site", "edit_topsites_add_button": "Adaugă", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Site de top nou", "topsites_form_edit_header": "Editează site-ul de top", "topsites_form_title_placeholder": "Introdu un titlu", diff --git a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html index b4035b8a5c05..5d57c5851d46 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                      Топ сайтов

                                                                                                                                                                                                                                                                                                      Рекомендовано Pocket

                                                                                                                                                                                                                                                                                                      Популярные темы:

                                                                                                                                                                                                                                                                                                        Избранное

                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                        Топ сайтов

                                                                                                                                                                                                                                                                                                        Рекомендовано Pocket

                                                                                                                                                                                                                                                                                                        Популярные темы:

                                                                                                                                                                                                                                                                                                          Избранное

                                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js index b9df9beee0d4..4cceddb35ccc 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Рекомендовано {provider}", "header_bookmarks_placeholder": "У вас ещё нет каких-либо закладок.", "header_stories_from": "от", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Посещено", "type_label_bookmarked": "В закладках", "type_label_synced": "Синхронизировано с другого устройства", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Изменить этот сайт", "edit_topsites_dismiss_button": "Скрыть этот сайт", "edit_topsites_add_button": "Добавить", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Новый сайт в топе", "topsites_form_edit_header": "Изменить сайт из топа", "topsites_form_title_placeholder": "Введите название", diff --git a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html index 868991d51e7b..a5fdbf4ece7f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                          ප්‍රමුඛ අඩවි

                                                                                                                                                                                                                                                                                                          Pocket විසින් නිර්දේශිතයි

                                                                                                                                                                                                                                                                                                          ජනප්‍රිය මාතෘකා:

                                                                                                                                                                                                                                                                                                            ඉස්මතු කිරීම්

                                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                                            ප්‍රමුඛ අඩවි

                                                                                                                                                                                                                                                                                                            Pocket විසින් නිර්දේශිතයි

                                                                                                                                                                                                                                                                                                            ජනප්‍රිය මාතෘකා:

                                                                                                                                                                                                                                                                                                              ඉස්මතු කිරීම්

                                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js index 65c15f90a9c1..4f045b3470b0 100644 --- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} විසින් නිර්දේශිතයි", "header_bookmarks_placeholder": "ඔබ සතුව තවම පිටුසලකුණු නැත.", "header_stories_from": "සිට​", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "ප්‍රවේශිත", "type_label_bookmarked": "පිටු සලකුණු තැබූ", "type_label_synced": "වෙනත් උපාංගයක් වෙතින් සමකාලීන​ කර ඇත​", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "මෙම අඩවිය සකසන්න", "edit_topsites_dismiss_button": "මෙම අඩවිය ඉවත ලන්න", "edit_topsites_add_button": "එක් කරන්න", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "නව ප්‍රමුඛ අඩවියක්", "topsites_form_edit_header": "ප්‍රමුඛ අඩවිය සකසන්න", "topsites_form_title_placeholder": "සිරස්තල එක් කරන්න", diff --git a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html index 75637e889b6c..9cabb71df99c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                              Top stránky

                                                                                                                                                                                                                                                                                                              Odporúča Pocket

                                                                                                                                                                                                                                                                                                              Populárne témy:

                                                                                                                                                                                                                                                                                                                Vybrané stránky

                                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                                Top stránky

                                                                                                                                                                                                                                                                                                                Odporúča Pocket

                                                                                                                                                                                                                                                                                                                Populárne témy:

                                                                                                                                                                                                                                                                                                                  Vybrané stránky

                                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js index 45fdc89077d4..bdc9e7f89993 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Odporúča {provider}", "header_bookmarks_placeholder": "Zatiaľ nemáte žiadne záložky.", "header_stories_from": "zo služby", + "context_menu_button_sr": "Otvorí kontextovú ponuku pre {title}", "type_label_visited": "Navštívené", "type_label_bookmarked": "V záložkách", "type_label_synced": "Synchronizované z ďalšieho zariadenia", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Upraviť túto stránku", "edit_topsites_dismiss_button": "Odstrániť túto stránku", "edit_topsites_add_button": "Pridať", + "edit_topsites_add_button_tooltip": "Pridať top stránku", "topsites_form_add_header": "Nová top stránka", "topsites_form_edit_header": "Upraviť top stránku", "topsites_form_title_placeholder": "Zadajte názov", diff --git a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html index 9facd2fb4ca0..c6ed937ce1b3 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                  Glavne strani

                                                                                                                                                                                                                                                                                                                  Priporoča Pocket

                                                                                                                                                                                                                                                                                                                  Priljubljene teme:

                                                                                                                                                                                                                                                                                                                    Poudarki

                                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                                    Glavne strani

                                                                                                                                                                                                                                                                                                                    Priporoča Pocket

                                                                                                                                                                                                                                                                                                                    Priljubljene teme:

                                                                                                                                                                                                                                                                                                                      Poudarki

                                                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js index 964e73da3ed4..917aa12de9de 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Priporoča {provider}", "header_bookmarks_placeholder": "Nimate še nobenih zaznamkov.", "header_stories_from": "od", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Obiskano", "type_label_bookmarked": "Med zaznamki", "type_label_synced": "Sinhronizirano z druge naprave", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Uredi to stran", "edit_topsites_dismiss_button": "Odstrani to stran", "edit_topsites_add_button": "Dodaj", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Nova glavna stran", "topsites_form_edit_header": "Uredi glavno stran", "topsites_form_title_placeholder": "Vnesite ime", diff --git a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html index bcc7eec9c4cf..13f17adeb58c 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                      Sajte Kryesues

                                                                                                                                                                                                                                                                                                                      Rekomanduar nga Pocket

                                                                                                                                                                                                                                                                                                                      Tema Popullore:

                                                                                                                                                                                                                                                                                                                        Highlights

                                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                                        Sajte Kryesues

                                                                                                                                                                                                                                                                                                                        Rekomanduar nga Pocket

                                                                                                                                                                                                                                                                                                                        Tema Popullore:

                                                                                                                                                                                                                                                                                                                          Highlights

                                                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js index 49ac5fbf3833..670e13ee9246 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Rekomanduar nga {provider}", "header_bookmarks_placeholder": "Ende s’keni faqerojtës.", "header_stories_from": "nga", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Të vizituara", "type_label_bookmarked": "Të faqeruajtura", "type_label_synced": "Njëkohësuar prej pajisjeje tjetër", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Përpunoni këtë sajt", "edit_topsites_dismiss_button": "Hidhe tej këtë sajt", "edit_topsites_add_button": "Shtoni", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Sajt i Ri Kryesues", "topsites_form_edit_header": "Përpunoni Sajtin Kryesues", "topsites_form_title_placeholder": "Jepni një titull", diff --git a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html index 42bae49d0fc1..2f3051b31997 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                          Омиљени сајтови

                                                                                                                                                                                                                                                                                                                          Предложио Pocket

                                                                                                                                                                                                                                                                                                                          Популарне теме:

                                                                                                                                                                                                                                                                                                                            Истакнуто

                                                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                                                            Омиљени сајтови

                                                                                                                                                                                                                                                                                                                            Предложио Pocket

                                                                                                                                                                                                                                                                                                                            Популарне теме:

                                                                                                                                                                                                                                                                                                                              Истакнуто

                                                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js index b79c7febad04..b9b984ee8ee9 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Предложио {provider}", "header_bookmarks_placeholder": "Још увек немате забелешке.", "header_stories_from": "од", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Посећено", "type_label_bookmarked": "Забележено", "type_label_synced": "Синхронизовано са другог уређаја", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Уреди овај сајт", "edit_topsites_dismiss_button": "Уклони овај сајт", "edit_topsites_add_button": "Додај", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Нови омиљени сајт", "topsites_form_edit_header": "Уреди популарне сајтове", "topsites_form_title_placeholder": "Унесите наслов", diff --git a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html index be5ccbe3580e..3ae0ab799a0a 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                              Mest besökta

                                                                                                                                                                                                                                                                                                                              Rekommenderas av Pocket

                                                                                                                                                                                                                                                                                                                              Populära ämnen:

                                                                                                                                                                                                                                                                                                                                Höjdpunkter

                                                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                                                Mest besökta

                                                                                                                                                                                                                                                                                                                                Rekommenderas av Pocket

                                                                                                                                                                                                                                                                                                                                Populära ämnen:

                                                                                                                                                                                                                                                                                                                                  Höjdpunkter

                                                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js index b78216fbfb51..2bcfee5fe91f 100644 --- a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Rekommenderas av {provider}", "header_bookmarks_placeholder": "Du har inga bokmärken ännu.", "header_stories_from": "från", + "context_menu_button_sr": "Öppna snabbmeny för {title}", "type_label_visited": "Besökta", "type_label_bookmarked": "Bokmärkta", "type_label_synced": "Synkroniserade från en annan enhet", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Redigera denna webbplats", "edit_topsites_dismiss_button": "Avfärda denna webbplats", "edit_topsites_add_button": "Lägg till", + "edit_topsites_add_button_tooltip": "Lägg till mest besökt", "topsites_form_add_header": "Ny mest besökt", "topsites_form_edit_header": "Redigera mest besökta", "topsites_form_title_placeholder": "Ange en titel", diff --git a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html index 4f0a3ea898d1..a4def70a5ac7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                  சிறந்த தளங்கள்

                                                                                                                                                                                                                                                                                                                                  Pocket என்பவரால் பரிந்துரைக்கப்பட்டது

                                                                                                                                                                                                                                                                                                                                  பிரபலமான தலைப்புகள்:

                                                                                                                                                                                                                                                                                                                                    மிளிர்ப்புகள்

                                                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                                                    சிறந்த தளங்கள்

                                                                                                                                                                                                                                                                                                                                    Pocket என்பவரால் பரிந்துரைக்கப்பட்டது

                                                                                                                                                                                                                                                                                                                                    பிரபலமான தலைப்புகள்:

                                                                                                                                                                                                                                                                                                                                      மிளிர்ப்புகள்

                                                                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js index c34e33d12d6a..44d2fb486594 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} என்பவரால் பரிந்துரைக்கப்பட்டது", "header_bookmarks_placeholder": "நீங்கள் புத்தகக்குறிகளைக் கொண்டிருக்கவில்லை .", "header_stories_from": "அனுப்பியவர்", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "பார்த்தவை", "type_label_bookmarked": "புத்தகக்குறியிடப்பட்டது", "type_label_synced": "இன்னொரு சாதனத்திலிருந்து ஒத்திசைக்கப்பட்டது", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "இத்தளத்தை தொகு", "edit_topsites_dismiss_button": "இந்த தளத்தை வெளியேற்று", "edit_topsites_add_button": "சேர்", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "புதிய முக்கிய தளம்", "topsites_form_edit_header": "முக்கிய தளத்தை தொகு", "topsites_form_title_placeholder": "தலைப்பை இடு", diff --git a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html index 2c333bb9843c..40390ae33db0 100644 --- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                      మేటి సైట్లు

                                                                                                                                                                                                                                                                                                                                      Pocketచే సిఫార్సు చేయబడినది

                                                                                                                                                                                                                                                                                                                                      ప్రముఖ అంశాలు:

                                                                                                                                                                                                                                                                                                                                        విశేషాలు

                                                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                                                        మేటి సైట్లు

                                                                                                                                                                                                                                                                                                                                        Pocketచే సిఫార్సు చేయబడినది

                                                                                                                                                                                                                                                                                                                                        ప్రముఖ అంశాలు:

                                                                                                                                                                                                                                                                                                                                          విశేషాలు

                                                                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js index 70d6ae6e15e6..cbda39790d76 100644 --- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider}చే సిఫార్సు చేయబడినది", "header_bookmarks_placeholder": "మీకు ఇంకా ఎటువంటి ఇష్టాంశాలు లేవు.", "header_stories_from": "నుండి", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "సందర్శించారు", "type_label_bookmarked": "ఇష్టాంశంగా గుర్తుపెట్టారు", "type_label_synced": "మరో పరికరం నుంచి సమకాలీకరించి తెచ్చుకున్నవి", @@ -61,7 +62,7 @@ window.gActivityStreamStrings = { "settings_pane_visit_again_header": "మళ్లీ సందర్శించండి", "settings_pane_visit_again_body": "మీరు బ్రౌజింగ్ చరిత్రలో గుర్తుంచుకోవాల్సిన లేదా తిరిగి పొందవలసిన భాగాలను చూపిస్తుంది.", "settings_pane_highlights_header": "విశేషాలు", - "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.", + "settings_pane_highlights_body2": "ఇటీవలే మీరు చూసిన లేదా ఇష్టపడిన ఆసక్తికరమైన విషయాలు మళ్ళీ మీ ముందుకొస్తాయి.", "settings_pane_highlights_options_bookmarks": "ఇష్టాంశాలు", "settings_pane_highlights_options_visited": "చూసిన సైట్లు", "settings_pane_snippets_header": "సంగతులు", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "ఈ సైటును మార్చు", "edit_topsites_dismiss_button": "ఈ సైటుని తీసివేయి", "edit_topsites_add_button": "జోడించు", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "కొత్త మేటి సైటు", "topsites_form_edit_header": "టాప్ సైట్ను సవరించండి", "topsites_form_title_placeholder": "శీర్షికను నమోదు చేయండి", @@ -89,8 +91,8 @@ window.gActivityStreamStrings = { "pocket_read_more": "ప్రముఖ అంశాలు:", "pocket_read_even_more": "మరిన్ని కథలను వీక్షించండి", "pocket_feedback_header": "వెబ్లో అత్యుత్తమమైనది, 25 మిలియన్లకు పైగా ప్రజలు పర్యవేక్షించినవి.", - "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.", - "highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.", + "pocket_description": "తప్పక చూడాల్సిన మిక్కిలి-నాణ్యమైన విషయం పాకెట్ సహాయంతో. పాకెట్ ఇప్పుడు మొజిల్లాలో భాగం.", + "highlights_empty_state": "విహారించడం మొదలుపెట్టండి, మీరు ఈమధ్య చూసిన లేదా ఇష్టపడిన గొప్ప వ్యాసాలను, వీడియోలను, ఇతర పేజీలను ఇక్కడ చూపిస్తాం.", "topstories_empty_state": "మీరు పట్టుబడ్డారు. {provider} నుండి మరింత అగ్ర కథనాల కోసం తరువాత తనిఖీ చేయండి. వేచి ఉండలేరా? జాలములోని అంతటి నుండి మరింత గొప్ప కథనాలను కనుగొనడానికి ప్రసిద్ధ అంశం ఎంచుకోండి.", "manual_migration_explanation2": "మరొక విహారిణి లోని ఇష్టాంశాలు, చరిత్ర, సంకేతపదాలతో Firefoxను ప్రయత్నించండి.", "manual_migration_cancel_button": "అడిగినందుకు ధన్యవాదాలు, వద్దు", diff --git a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html index 94d34beaa89e..315421c30a02 100644 --- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                          ไซต์เด่น

                                                                                                                                                                                                                                                                                                                                          แนะนำโดย Pocket

                                                                                                                                                                                                                                                                                                                                          หัวข้อยอดนิยม:

                                                                                                                                                                                                                                                                                                                                            รายการเด่น

                                                                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                                                                            ไซต์เด่น

                                                                                                                                                                                                                                                                                                                                            แนะนำโดย Pocket

                                                                                                                                                                                                                                                                                                                                            หัวข้อยอดนิยม:

                                                                                                                                                                                                                                                                                                                                              รายการเด่น

                                                                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js index 226530675341..abd5696009ee 100644 --- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "แนะนำโดย {provider}", "header_bookmarks_placeholder": "คุณยังไม่มีที่คั่นหน้าใด ๆ", "header_stories_from": "จาก", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "เยี่ยมชมแล้ว", "type_label_bookmarked": "เพิ่มที่คั่นหน้าแล้ว", "type_label_synced": "ซิงค์จากอุปกรณ์อื่น", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "แก้ไขไซต์นี้", "edit_topsites_dismiss_button": "ไม่สนใจไซต์นี้", "edit_topsites_add_button": "เพิ่ม", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "ไซต์เด่นใหม่", "topsites_form_edit_header": "แก้ไขไซต์เด่น", "topsites_form_title_placeholder": "ป้อนชื่อเรื่อง", diff --git a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html index 6fc3fec7c8ac..8fb94eeef321 100644 --- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                              Tuktok na mga Site

                                                                                                                                                                                                                                                                                                                                              Inirekomenda ni Pocket

                                                                                                                                                                                                                                                                                                                                              Tanyag na mga paksa:

                                                                                                                                                                                                                                                                                                                                                Naka-highlight

                                                                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                                                                Tuktok na mga Site

                                                                                                                                                                                                                                                                                                                                                Inirekomenda ni Pocket

                                                                                                                                                                                                                                                                                                                                                Tanyag na mga paksa:

                                                                                                                                                                                                                                                                                                                                                  Naka-highlight

                                                                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js index b65ea4741d29..39408f39c435 100644 --- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Inirekomenda ni {provider}", "header_bookmarks_placeholder": "Wala kang anumang mga bookmark.", "header_stories_from": "mula sa", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Binisita", "type_label_bookmarked": "Bookmarked", "type_label_synced": "Naka-sync mula sa ibang kagamitan", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "I-edit ang site na ito", "edit_topsites_dismiss_button": "I-dismiss sa site na ito", "edit_topsites_add_button": "Idagdag", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "Bagong nangungunang site", "topsites_form_edit_header": "I-edit ang nangungunang site", "topsites_form_title_placeholder": "Magpasok ng isang pamagat", diff --git a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html index 0efaf98a003e..2616509e9fce 100644 --- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                  Sık Kullanılan Siteler

                                                                                                                                                                                                                                                                                                                                                  Pocket öneriyor

                                                                                                                                                                                                                                                                                                                                                  Popüler konular:

                                                                                                                                                                                                                                                                                                                                                    Öne Çıkanlar

                                                                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                                                                    Sık Kullanılan Siteler

                                                                                                                                                                                                                                                                                                                                                    Pocket öneriyor

                                                                                                                                                                                                                                                                                                                                                    Popüler konular:

                                                                                                                                                                                                                                                                                                                                                      Öne Çıkanlar

                                                                                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js index f2c8443c896c..9ee44ff2d3e7 100644 --- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} öneriyor", "header_bookmarks_placeholder": "Henüz hiç yer iminiz yok.", "header_stories_from": "kaynak:", + "context_menu_button_sr": "{title} sağ tıklama menüsünü aç", "type_label_visited": "Ziyaret etmiştiniz", "type_label_bookmarked": "Yer imlerinizde", "type_label_synced": "Başka bir cihazdan eşitlendi", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Bu siteyi düzenle", "edit_topsites_dismiss_button": "Bu siteyi görmezden gel", "edit_topsites_add_button": "Ekle", + "edit_topsites_add_button_tooltip": "Sık kullanılan site ekle", "topsites_form_add_header": "Yeni sık kullanılan site", "topsites_form_edit_header": "Sık kullanılan siteyi düzenle", "topsites_form_title_placeholder": "Başlık yazın", diff --git a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html index 22359509d9c0..eebf154fba91 100644 --- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                      Популярні сайти

                                                                                                                                                                                                                                                                                                                                                      Рекомендовано Pocket

                                                                                                                                                                                                                                                                                                                                                      Популярні теми:

                                                                                                                                                                                                                                                                                                                                                        Обране

                                                                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                                                                        Популярні сайти

                                                                                                                                                                                                                                                                                                                                                        Рекомендовано Pocket

                                                                                                                                                                                                                                                                                                                                                        Популярні теми:

                                                                                                                                                                                                                                                                                                                                                          Обране

                                                                                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js index 6b6542af3485..ce5fea6781d5 100644 --- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Рекомендовано {provider}", "header_bookmarks_placeholder": "У вас ще немає закладок.", "header_stories_from": "від", + "context_menu_button_sr": "Відкрити контекстне меню для {title}", "type_label_visited": "Відвідано", "type_label_bookmarked": "Закладено", "type_label_synced": "Синхронізовано з іншого пристрою", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Змінити цей сайт", "edit_topsites_dismiss_button": "Сховати цей сайт", "edit_topsites_add_button": "Додати", + "edit_topsites_add_button_tooltip": "Додати до популярних сайтів", "topsites_form_add_header": "Новий популярний сайт", "topsites_form_edit_header": "Редагувати популярний сайт", "topsites_form_title_placeholder": "Введіть назву", diff --git a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html index d36e4df96d80..bf7f33fb6826 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                          بہترین سائٹیں

                                                                                                                                                                                                                                                                                                                                                          Pocket کی جانب سے تجویز کردہ

                                                                                                                                                                                                                                                                                                                                                          مشہور مضامین:

                                                                                                                                                                                                                                                                                                                                                            شہ سرخياں

                                                                                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                                                                                            بہترین سائٹیں

                                                                                                                                                                                                                                                                                                                                                            Pocket کی جانب سے تجویز کردہ

                                                                                                                                                                                                                                                                                                                                                            مشہور مضامین:

                                                                                                                                                                                                                                                                                                                                                              شہ سرخياں

                                                                                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js index 4c5fc59241d4..511ebfa071fc 100644 --- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} کی جانب سے تجویز کردہ", "header_bookmarks_placeholder": "آپ کے پاس اب تک کوئی نشانی نہیں ہے۔", "header_stories_from": "من جانب", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "دورہ شدہ", "type_label_bookmarked": "نشان شدہ", "type_label_synced": "کسی دوسرے آلے سے ہمہ وقت ساز کیا گیا ہے", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "اس سائٹ کی تدوین کریں", "edit_topsites_dismiss_button": "اس سائٹ کو برخاست کریں", "edit_topsites_add_button": "آظافہ کریں", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "نئی بہترین سائٹ", "topsites_form_edit_header": "بہترین سائٹٹ کیی تدوین کریں", "topsites_form_title_placeholder": "ایک عنوان داخل کریں", diff --git a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html index 24f6b6f35a02..51be2a4d10df 100644 --- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                              Ommabop saytlar

                                                                                                                                                                                                                                                                                                                                                              Recommended by Pocket

                                                                                                                                                                                                                                                                                                                                                              Popular Topics:

                                                                                                                                                                                                                                                                                                                                                                Highlights

                                                                                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                                                                                Ommabop saytlar

                                                                                                                                                                                                                                                                                                                                                                Recommended by Pocket

                                                                                                                                                                                                                                                                                                                                                                Popular Topics:

                                                                                                                                                                                                                                                                                                                                                                  Highlights

                                                                                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js index 55a9511986ae..8fb7248f6ce1 100644 --- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Recommended by {provider}", "header_bookmarks_placeholder": "You don’t have any bookmarks yet.", "header_stories_from": "from", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Visited", "type_label_bookmarked": "Bookmarked", "type_label_synced": "Synced from another device", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Edit this site", "edit_topsites_dismiss_button": "Dismiss this site", "edit_topsites_add_button": "Add", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html index 335b80d9ecc6..26292ed74daf 100644 --- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                                  Trang web hàng đầu

                                                                                                                                                                                                                                                                                                                                                                  Được đề nghị bởi Pocket

                                                                                                                                                                                                                                                                                                                                                                  Các chủ đề phổ biến:

                                                                                                                                                                                                                                                                                                                                                                    Nổi bật

                                                                                                                                                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                                                                                                                                                    Trang web hàng đầu

                                                                                                                                                                                                                                                                                                                                                                    Được đề nghị bởi Pocket

                                                                                                                                                                                                                                                                                                                                                                    Các chủ đề phổ biến:

                                                                                                                                                                                                                                                                                                                                                                      Nổi bật

                                                                                                                                                                                                                                                                                                                                                                      diff --git a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js index 940b383e8f36..69fbd83d867e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "Được đề nghị bởi {provider}", "header_bookmarks_placeholder": "Bạn chưa có bookmark nào.", "header_stories_from": "từ", + "context_menu_button_sr": "Open context menu for {title}", "type_label_visited": "Đã truy cập", "type_label_bookmarked": "Đã được đánh dấu", "type_label_synced": "Đồng bộ từ thiết bị khác", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "Chỉnh sửa trang web này", "edit_topsites_dismiss_button": "Bỏ qua trang này", "edit_topsites_add_button": "Thêm", + "edit_topsites_add_button_tooltip": "Add Top Site", "topsites_form_add_header": "New Top Site", "topsites_form_edit_header": "Edit Top Site", "topsites_form_title_placeholder": "Enter a title", diff --git a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html index d0529b49de65..9f556f76de5e 100644 --- a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                                      常用网站

                                                                                                                                                                                                                                                                                                                                                                      Pocket 推荐

                                                                                                                                                                                                                                                                                                                                                                      热门主题:

                                                                                                                                                                                                                                                                                                                                                                        集锦

                                                                                                                                                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                                                                                                                                                        常用网站

                                                                                                                                                                                                                                                                                                                                                                        Pocket 推荐

                                                                                                                                                                                                                                                                                                                                                                        热门主题:

                                                                                                                                                                                                                                                                                                                                                                          集锦

                                                                                                                                                                                                                                                                                                                                                                          diff --git a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js index 3495b50bd397..9d7edb1457ba 100644 --- a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} 推荐", "header_bookmarks_placeholder": "您还没有最近的书签。", "header_stories_from": "出自", + "context_menu_button_sr": "打开 {title} 的上下文菜单", "type_label_visited": "曾经访问", "type_label_bookmarked": "已加书签", "type_label_synced": "从其他设备同步而来", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "编辑此网站", "edit_topsites_dismiss_button": "隐藏此网站", "edit_topsites_add_button": "添加", + "edit_topsites_add_button_tooltip": "添加常用网站", "topsites_form_add_header": "新建常用网站", "topsites_form_edit_header": "编辑常用网站", "topsites_form_title_placeholder": "输入标题", diff --git a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html index c7faae2993f1..fe906dec5158 100644 --- a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html +++ b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                                          熱門網站

                                                                                                                                                                                                                                                                                                                                                                          Pocket 推薦

                                                                                                                                                                                                                                                                                                                                                                          熱門主題:

                                                                                                                                                                                                                                                                                                                                                                            精選網站

                                                                                                                                                                                                                                                                                                                                                                            +

                                                                                                                                                                                                                                                                                                                                                                            熱門網站

                                                                                                                                                                                                                                                                                                                                                                            Pocket 推薦

                                                                                                                                                                                                                                                                                                                                                                            熱門主題:

                                                                                                                                                                                                                                                                                                                                                                              精選網站

                                                                                                                                                                                                                                                                                                                                                                              diff --git a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js index 31715b6055e0..3fa9fc84dc93 100644 --- a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js +++ b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js @@ -10,6 +10,7 @@ window.gActivityStreamStrings = { "header_recommended_by": "{provider} 推薦", "header_bookmarks_placeholder": "您還沒有任何書籤。", "header_stories_from": "來自", + "context_menu_button_sr": "打开 {title} 的上下文菜单", "type_label_visited": "造訪過的網站", "type_label_bookmarked": "已加入書籤", "type_label_synced": "從其他裝置同步過來", @@ -78,6 +79,7 @@ window.gActivityStreamStrings = { "edit_topsites_edit_button": "編輯此網站", "edit_topsites_dismiss_button": "忽略此網站", "edit_topsites_add_button": "新增", + "edit_topsites_add_button_tooltip": "添加常用网站", "topsites_form_add_header": "新增熱門網站", "topsites_form_edit_header": "編輯熱門網站", "topsites_form_title_placeholder": "輸入標題", diff --git a/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html b/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html index 5e1928b1f062..5b9455cf448f 100644 --- a/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html +++ b/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html @@ -9,7 +9,7 @@ -

                                                                                                                                                                                                                                                                                                                                                                              Top Sites

                                                                                                                                                                                                                                                                                                                                                                              Recommended by Pocket

                                                                                                                                                                                                                                                                                                                                                                              Popular Topics:

                                                                                                                                                                                                                                                                                                                                                                                Highlights

                                                                                                                                                                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                                                                                                                                                                Top Sites

                                                                                                                                                                                                                                                                                                                                                                                Recommended by Pocket

                                                                                                                                                                                                                                                                                                                                                                                Popular Topics:

                                                                                                                                                                                                                                                                                                                                                                                  Highlights

                                                                                                                                                                                                                                                                                                                                                                                  diff --git a/browser/extensions/activity-stream/test/.eslintrc.js b/browser/extensions/activity-stream/test/.eslintrc.js index 7c9a726aca07..c96ea62e2999 100644 --- a/browser/extensions/activity-stream/test/.eslintrc.js +++ b/browser/extensions/activity-stream/test/.eslintrc.js @@ -8,7 +8,10 @@ module.exports = { "sinon": true }, "rules": { + "func-name-matching": 0, "import/no-commonjs": 2, - "react/jsx-no-bind": 0 + "lines-between-class-members": 0, + "react/jsx-no-bind": 0, + "require-await": 0 } }; diff --git a/browser/extensions/activity-stream/test/functional/mochitest/browser_topsites_section.js b/browser/extensions/activity-stream/test/functional/mochitest/browser_topsites_section.js index 83a74c3fa7f6..9325f4cd8432 100644 --- a/browser/extensions/activity-stream/test/functional/mochitest/browser_topsites_section.js +++ b/browser/extensions/activity-stream/test/functional/mochitest/browser_topsites_section.js @@ -2,13 +2,13 @@ // Check TopSites edit modal and overlay show up. test_newtab( - // it should be able to click the topsites edit button to reveal the edit topsites modal and overlay. + // it should be able to click the topsites add button to reveal the add top site modal and overlay. function topsites_edit() { - const topsitesEditBtn = content.document.querySelector(".edit-topsites-button button"); - topsitesEditBtn.click(); + const topsitesAddBtn = content.document.querySelector(".add-topsites-button button"); + topsitesAddBtn.click(); - let found = content.document.querySelector(".edit-topsites"); - ok(found && !found.hidden, "Should find a visible topsites edit menu"); + let found = content.document.querySelector(".topsite-form"); + ok(found && !found.hidden, "Should find a visible topsite form"); found = content.document.querySelector(".modal-overlay"); ok(found && !found.hidden, "Should find a visible overlay"); diff --git a/browser/extensions/activity-stream/test/unit/activity-stream-prerender.test.jsx b/browser/extensions/activity-stream/test/unit/activity-stream-prerender.test.jsx index 3ef3007a0da5..b4055f0d01bf 100644 --- a/browser/extensions/activity-stream/test/unit/activity-stream-prerender.test.jsx +++ b/browser/extensions/activity-stream/test/unit/activity-stream-prerender.test.jsx @@ -21,7 +21,7 @@ describe("prerenderStore", () => { const state = store.getState(); // TopStories - const firstSection = state.Sections[0]; + const [firstSection] = state.Sections; assert.equal(firstSection.id, "topstories"); // it should start uninitialized assert.equal(firstSection.initialized, false); diff --git a/browser/extensions/activity-stream/test/unit/common/Reducers.test.js b/browser/extensions/activity-stream/test/unit/common/Reducers.test.js index 5c98bbe250aa..c5fe97d5902b 100644 --- a/browser/extensions/activity-stream/test/unit/common/Reducers.test.js +++ b/browser/extensions/activity-stream/test/unit/common/Reducers.test.js @@ -72,7 +72,7 @@ describe("Reducers", () => { } }; const nextState = TopSites(oldState, action); - const newRow = nextState.rows[1]; + const [, newRow] = nextState.rows; // new row has bookmark data assert.equal(newRow.url, action.data.url); assert.equal(newRow.bookmarkGuid, action.data.bookmarkGuid); @@ -97,7 +97,7 @@ describe("Reducers", () => { }; const action = {type: at.PLACES_BOOKMARK_REMOVED, data: {url: "bar.com"}}; const nextState = TopSites(oldState, action); - const newRow = nextState.rows[1]; + const [, newRow] = nextState.rows; // new row no longer has bookmark data assert.equal(newRow.url, oldState.rows[1].url); assert.isUndefined(newRow.bookmarkGuid); @@ -373,8 +373,7 @@ describe("Reducers", () => { }; const nextState = Sections(oldState, action); // check a section to ensure the correct url was bookmarked - const newRow = nextState[0].rows[0]; - const oldRow = nextState[0].rows[1]; + const [newRow, oldRow] = nextState[0].rows; // new row has bookmark data assert.equal(newRow.url, action.data.url); @@ -407,8 +406,7 @@ describe("Reducers", () => { }); const nextState = Sections(oldState, action); // check a section to ensure the correct bookmark was removed - const newRow = nextState[0].rows[0]; - const oldRow = nextState[0].rows[1]; + const [newRow, oldRow] = nextState[0].rows; // new row isn't a bookmark assert.equal(newRow.url, action.data.url); diff --git a/browser/extensions/activity-stream/test/unit/lib/ActivityStream.test.js b/browser/extensions/activity-stream/test/unit/lib/ActivityStream.test.js index 685e817be9f1..0707a7653725 100644 --- a/browser/extensions/activity-stream/test/unit/lib/ActivityStream.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/ActivityStream.test.js @@ -61,19 +61,19 @@ describe("ActivityStream", () => { as.init(); - const action = as.store.init.firstCall.args[1]; + const [, action] = as.store.init.firstCall.args; assert.propertyVal(action.data, "version", "1.2.3"); }); it("should pass to Store an INIT event for content", () => { as.init(); - const action = as.store.init.firstCall.args[1]; + const [, action] = as.store.init.firstCall.args; assert.equal(action.meta.to, CONTENT_MESSAGE_TYPE); }); it("should pass to Store an UNINIT event", () => { as.init(); - const action = as.store.init.firstCall.args[2]; + const [, , action] = as.store.init.firstCall.args; assert.equal(action.type, "UNINIT"); }); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/ActivityStreamMessageChannel.test.js b/browser/extensions/activity-stream/test/unit/lib/ActivityStreamMessageChannel.test.js index e1252b184c47..4a8f05eeb0bd 100644 --- a/browser/extensions/activity-stream/test/unit/lib/ActivityStreamMessageChannel.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/ActivityStreamMessageChannel.test.js @@ -333,11 +333,11 @@ describe("ActivityStreamMessageChannel", () => { beforeEach(() => mm.onActionFromContent({type: "FOO"}, "foo")); it("should dispatch a SendToMain action", () => { assert.calledOnce(dispatch); - const action = dispatch.firstCall.args[0]; + const [action] = dispatch.firstCall.args; assert.equal(action.type, "FOO", "action.type"); }); it("should have the right fromTarget", () => { - const action = dispatch.firstCall.args[0]; + const [action] = dispatch.firstCall.args; assert.equal(action.meta.fromTarget, "foo", "meta.fromTarget"); }); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/FaviconFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/FaviconFeed.test.js index 41ed009f6f02..7cb264bf4bfa 100644 --- a/browser/extensions/activity-stream/test/unit/lib/FaviconFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/FaviconFeed.test.js @@ -152,7 +152,7 @@ describe("FaviconFeed", () => { feed._sitesByDomain = {}; feed._sitesByDomain._etag = "etag1234567890"; await feed.refresh(); - const headers = feed.loadFromURL.getCall(0).args[1]; + const [, headers] = feed.loadFromURL.getCall(0).args; assert.equal(headers.get("If-None-Match"), feed._sitesByDomain._etag); }); it("should not set _sitesByDomain if the remote manifest is not modified since last fetch", async () => { diff --git a/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js index c5a01ce27811..cd3bac0a73ab 100644 --- a/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js @@ -37,7 +37,8 @@ describe("Highlights Feed", () => { }; fakeScreenshot = { getScreenshotForURL: sandbox.spy(() => Promise.resolve(FAKE_IMAGE)), - maybeCacheScreenshot: Screenshots.maybeCacheScreenshot + maybeCacheScreenshot: Screenshots.maybeCacheScreenshot, + _shouldGetScreenshots: sinon.stub().returns(true) }; filterAdultStub = sinon.stub().returns([]); shortURLStub = sinon.stub().callsFake(site => site.url.match(/\/([^/]+)/)[1]); @@ -179,7 +180,7 @@ describe("Highlights Feed", () => { await feed.fetchHighlights(); assert.calledOnce(feed.fetchImage); - const arg = feed.fetchImage.firstCall.args[0]; + const [arg] = feed.fetchImage.firstCall.args; assert.propertyVal(arg, "url", links[0].url); assert.propertyVal(arg, "preview_image_url", links[0].preview_image_url); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/PlacesFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/PlacesFeed.test.js index 0c717a061b70..f8ac92b61464 100644 --- a/browser/extensions/activity-stream/test/unit/lib/PlacesFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/PlacesFeed.test.js @@ -119,48 +119,67 @@ describe("PlacesFeed", () => { assert.calledWith(global.NewTabUtils.activityStreamLinks.deleteHistoryEntry, "guava.com"); assert.calledWith(global.NewTabUtils.activityStreamLinks.blockURL, {url: "guava.com"}); }); - it("should call openNewWindow with the correct url on OPEN_NEW_WINDOW", () => { - sinon.stub(feed, "openNewWindow"); - const openWindowAction = {type: at.OPEN_NEW_WINDOW, data: {url: "foo.com"}}; - feed.onAction(openWindowAction); - assert.calledWith(feed.openNewWindow, openWindowAction); - }); - it("should call openNewWindow with the correct url and privacy args on OPEN_PRIVATE_WINDOW", () => { - sinon.stub(feed, "openNewWindow"); - const openWindowAction = {type: at.OPEN_PRIVATE_WINDOW, data: {url: "foo.com"}}; - feed.onAction(openWindowAction); - assert.calledWith(feed.openNewWindow, openWindowAction, true); - }); - it("should call openNewWindow with the correct url on OPEN_NEW_WINDOW", () => { + it("should call openLinkIn with the correct url and where on OPEN_NEW_WINDOW", () => { + const openLinkIn = sinon.stub(); const openWindowAction = { type: at.OPEN_NEW_WINDOW, data: {url: "foo.com"}, - _target: {browser: {ownerGlobal: {openLinkIn: () => {}}}} + _target: {browser: {ownerGlobal: {openLinkIn}}} }; - sinon.stub(openWindowAction._target.browser.ownerGlobal, "openLinkIn"); + feed.onAction(openWindowAction); - assert.calledOnce(openWindowAction._target.browser.ownerGlobal.openLinkIn); + + assert.calledOnce(openLinkIn); + const [url, where, params] = openLinkIn.firstCall.args; + assert.equal(url, "foo.com"); + assert.equal(where, "window"); + assert.propertyVal(params, "private", false); + }); + it("should call openLinkIn with the correct url, where and privacy args on OPEN_PRIVATE_WINDOW", () => { + const openLinkIn = sinon.stub(); + const openWindowAction = { + type: at.OPEN_PRIVATE_WINDOW, + data: {url: "foo.com"}, + _target: {browser: {ownerGlobal: {openLinkIn}}} + }; + + feed.onAction(openWindowAction); + + assert.calledOnce(openLinkIn); + const [url, where, params] = openLinkIn.firstCall.args; + assert.equal(url, "foo.com"); + assert.equal(where, "window"); + assert.propertyVal(params, "private", true); }); it("should open link on OPEN_LINK", () => { - sinon.stub(feed, "openNewWindow"); + const openLinkIn = sinon.stub(); const openLinkAction = { type: at.OPEN_LINK, - data: {url: "foo.com", event: {where: "current"}}, - _target: {browser: {ownerGlobal: {openLinkIn: sinon.spy(), whereToOpenLink: e => e.where}}} + data: {url: "foo.com"}, + _target: {browser: {ownerGlobal: {openLinkIn, whereToOpenLink: e => "current"}}} }; + feed.onAction(openLinkAction); - assert.calledWith(openLinkAction._target.browser.ownerGlobal.openLinkIn, openLinkAction.data.url, "current"); + + assert.calledOnce(openLinkIn); + const [url, where, params] = openLinkIn.firstCall.args; + assert.equal(url, "foo.com"); + assert.equal(where, "current"); + assert.propertyVal(params, "private", false); }); it("should open link with referrer on OPEN_LINK", () => { - globals.set("Services", {io: {newURI: url => `URI:${url}`}}); - sinon.stub(feed, "openNewWindow"); + const openLinkIn = sinon.stub(); const openLinkAction = { type: at.OPEN_LINK, - data: {url: "foo.com", referrer: "foo.com/ref", event: {where: "tab"}}, - _target: {browser: {ownerGlobal: {openLinkIn: sinon.spy(), whereToOpenLink: e => e.where}}} + data: {url: "foo.com", referrer: "foo.com/ref"}, + _target: {browser: {ownerGlobal: {openLinkIn, whereToOpenLink: e => "tab"}}} }; + feed.onAction(openLinkAction); - assert.calledWith(openLinkAction._target.browser.ownerGlobal.openLinkIn, openLinkAction.data.url, "tab", {referrerURI: `URI:${openLinkAction.data.referrer}`}); + + const [, , params] = openLinkIn.firstCall.args; + assert.propertyVal(params, "referrerPolicy", 5); + assert.propertyVal(params.referrerURI, "spec", "foo.com/ref"); }); it("should save to Pocket on SAVE_TO_POCKET", () => { feed.onAction({type: at.SAVE_TO_POCKET, data: {site: {url: "raspberry.com", title: "raspberry"}}, _target: {browser: {}}}); @@ -244,11 +263,7 @@ describe("PlacesFeed", () => { // Yes, onItemAdded has at least 8 arguments. See function definition for docs. const args = [null, null, null, TYPE_BOOKMARK, {spec: FAKE_BOOKMARK.url, scheme: "http"}, FAKE_BOOKMARK.bookmarkTitle, - FAKE_BOOKMARK.dateAdded, - FAKE_BOOKMARK.bookmarkGuid, - "", - SOURCES.DEFAULT - ]; + FAKE_BOOKMARK.dateAdded, FAKE_BOOKMARK.bookmarkGuid, "", SOURCES.DEFAULT]; await observer.onItemAdded(...args); assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); @@ -257,11 +272,7 @@ describe("PlacesFeed", () => { // Yes, onItemAdded has at least 8 arguments. See function definition for docs. const args = [null, null, null, TYPE_BOOKMARK, {spec: FAKE_BOOKMARK.url, scheme: "https"}, FAKE_BOOKMARK.bookmarkTitle, - FAKE_BOOKMARK.dateAdded, - FAKE_BOOKMARK.bookmarkGuid, - "", - SOURCES.DEFAULT - ]; + FAKE_BOOKMARK.dateAdded, FAKE_BOOKMARK.bookmarkGuid, "", SOURCES.DEFAULT]; await observer.onItemAdded(...args); assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); @@ -270,11 +281,7 @@ describe("PlacesFeed", () => { // Yes, onItemAdded has at least 8 arguments. See function definition for docs. const args = [null, null, null, TYPE_BOOKMARK, {spec: FAKE_BOOKMARK.url, scheme: "places"}, FAKE_BOOKMARK.bookmarkTitle, - FAKE_BOOKMARK.dateAdded, - FAKE_BOOKMARK.bookmarkGuid, - "", - SOURCES.DEFAULT - ]; + FAKE_BOOKMARK.dateAdded, FAKE_BOOKMARK.bookmarkGuid, "", SOURCES.DEFAULT]; await observer.onItemAdded(...args); assert.notCalled(dispatch); @@ -283,11 +290,7 @@ describe("PlacesFeed", () => { // Yes, onItemAdded has at least 8 arguments. See function definition for docs. const args = [null, null, null, TYPE_BOOKMARK, {spec: FAKE_BOOKMARK.url, scheme: "http"}, FAKE_BOOKMARK.bookmarkTitle, - FAKE_BOOKMARK.dateAdded, - FAKE_BOOKMARK.bookmarkGuid, - "", - SOURCES.IMPORT_REPLACE - ]; + FAKE_BOOKMARK.dateAdded, FAKE_BOOKMARK.bookmarkGuid, "", SOURCES.IMPORT_REPLACE]; await observer.onItemAdded(...args); assert.notCalled(dispatch); diff --git a/browser/extensions/activity-stream/test/unit/lib/Screenshots.test.js b/browser/extensions/activity-stream/test/unit/lib/Screenshots.test.js index facb3ecb3751..38c540ba0a13 100644 --- a/browser/extensions/activity-stream/test/unit/lib/Screenshots.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/Screenshots.test.js @@ -8,15 +8,28 @@ const FAKE_THUMBNAIL_PATH = "fake/path/thumb.jpg"; describe("Screenshots", () => { let globals; let sandbox; + let fakeServices; beforeEach(() => { globals = new GlobalOverrider(); sandbox = globals.sandbox; + fakeServices = { + wm: { + getEnumerator() { + return { + hasMoreElements: () => true, + getNext: () => {} + }; + } + } + }; globals.set("BackgroundPageThumbs", {captureIfMissing: sandbox.spy(() => Promise.resolve())}); globals.set("PageThumbs", {getThumbnailPath: sandbox.spy(() => Promise.resolve(FAKE_THUMBNAIL_PATH))}); + globals.set("PrivateBrowsingUtils", {isWindowPrivate: sandbox.spy(() => false)}); globals.set("OS", {File: {open: sandbox.spy(() => Promise.resolve({read: () => [], close: () => {}}))}}); globals.set("FileUtils", {File: sandbox.spy(() => {})}); globals.set("MIMEService", {getTypeFromFile: sandbox.spy(() => {})}); + globals.set("Services", fakeServices); }); afterEach(() => { globals.restore(); @@ -57,6 +70,7 @@ describe("Screenshots", () => { }); it("should call getScreenshotForURL", () => { sandbox.stub(Screenshots, "getScreenshotForURL"); + sandbox.stub(Screenshots, "_shouldGetScreenshots").returns(true); Screenshots.maybeCacheScreenshot(link, "mozilla.com", "image", sinon.stub()); assert.calledOnce(Screenshots.getScreenshotForURL); @@ -64,6 +78,7 @@ describe("Screenshots", () => { }); it("should not call getScreenshotForURL twice if a fetch is in progress", () => { sandbox.stub(Screenshots, "getScreenshotForURL").returns(new Promise(() => {})); + sandbox.stub(Screenshots, "_shouldGetScreenshots").returns(true); Screenshots.maybeCacheScreenshot(link, "mozilla.com", "image", sinon.stub()); Screenshots.maybeCacheScreenshot(link, "mozilla.org", "image", sinon.stub()); @@ -72,12 +87,26 @@ describe("Screenshots", () => { }); it("should not call getScreenshotsForURL if property !== undefined", async () => { sandbox.stub(Screenshots, "getScreenshotForURL").returns(Promise.resolve(null)); + sandbox.stub(Screenshots, "_shouldGetScreenshots").returns(true); await Screenshots.maybeCacheScreenshot(link, "mozilla.com", "image", sinon.stub()); await Screenshots.maybeCacheScreenshot(link, "mozilla.org", "image", sinon.stub()); assert.calledOnce(Screenshots.getScreenshotForURL); assert.calledWithExactly(Screenshots.getScreenshotForURL, "mozilla.com"); }); + it("should check if we are in private browsing before getting screenshots", async () => { + sandbox.stub(Screenshots, "_shouldGetScreenshots").returns(true); + await Screenshots.maybeCacheScreenshot(link, "mozilla.com", "image", sinon.stub()); + + assert.calledOnce(Screenshots._shouldGetScreenshots); + }); + it("should not get a screenshot if we are in private browsing", async () => { + sandbox.stub(Screenshots, "getScreenshotForURL"); + sandbox.stub(Screenshots, "_shouldGetScreenshots").returns(false); + await Screenshots.maybeCacheScreenshot(link, "mozilla.com", "image", sinon.stub()); + + assert.notCalled(Screenshots.getScreenshotForURL); + }); }); describe("#_bytesToString", () => { @@ -102,4 +131,23 @@ describe("Screenshots", () => { assert.propertyVal(str, 999999, "\u0009"); }); }); + + describe("#_shouldGetScreenshots", () => { + beforeEach(() => { + let more = 2; + sandbox.stub(global.Services.wm, "getEnumerator").returns({getNext: () => {}, hasMoreElements() { return more--; }}); + }); + it("should use private browsing utils to determine if a window is private", () => { + Screenshots._shouldGetScreenshots(); + assert.calledOnce(global.PrivateBrowsingUtils.isWindowPrivate); + }); + it("should return true if there exists at least 1 non-private window", () => { + assert.isTrue(Screenshots._shouldGetScreenshots()); + }); + it("should return false if there exists private windows", () => { + global.PrivateBrowsingUtils = {isWindowPrivate: sandbox.spy(() => true)}; + assert.isFalse(Screenshots._shouldGetScreenshots()); + assert.calledTwice(global.PrivateBrowsingUtils.isWindowPrivate); + }); + }); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/SectionsManager.test.js b/browser/extensions/activity-stream/test/unit/lib/SectionsManager.test.js index 47d5ed54cc59..adda36d64e6d 100644 --- a/browser/extensions/activity-stream/test/unit/lib/SectionsManager.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/SectionsManager.test.js @@ -326,7 +326,7 @@ describe("SectionsFeed", () => { describe("#onAddSection", () => { it("should broadcast a SECTION_REGISTER action with the correct data", () => { feed.onAddSection(null, FAKE_ID, FAKE_OPTIONS); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, "SECTION_REGISTER"); assert.deepEqual(action.data, Object.assign({id: FAKE_ID}, FAKE_OPTIONS)); assert.equal(action.meta.from, MAIN_MESSAGE_TYPE); @@ -336,7 +336,7 @@ describe("SectionsFeed", () => { describe("#onRemoveSection", () => { it("should broadcast a SECTION_DEREGISTER action with the correct data", () => { feed.onRemoveSection(null, FAKE_ID); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, "SECTION_DEREGISTER"); assert.deepEqual(action.data, FAKE_ID); // Should be broadcast @@ -351,7 +351,7 @@ describe("SectionsFeed", () => { }); it("should dispatch a SECTION_UPDATE action with the correct data", () => { feed.onUpdateSection(null, FAKE_ID, {rows: FAKE_ROWS}); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, "SECTION_UPDATE"); assert.deepEqual(action.data, {id: FAKE_ID, rows: FAKE_ROWS}); // Should be not broadcast by default, but should update the preloaded tab, so check meta @@ -360,7 +360,7 @@ describe("SectionsFeed", () => { }); it("should broadcast the action only if shouldBroadcast is true", () => { feed.onUpdateSection(null, FAKE_ID, {rows: FAKE_ROWS}, true); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; // Should be broadcast assert.equal(action.meta.from, MAIN_MESSAGE_TYPE); assert.equal(action.meta.to, CONTENT_MESSAGE_TYPE); @@ -373,7 +373,7 @@ describe("SectionsFeed", () => { }); it("should dispatch a SECTION_UPDATE_CARD action with the correct data", () => { feed.onUpdateSectionCard(null, FAKE_ID, FAKE_URL, FAKE_CARD_OPTIONS); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, "SECTION_UPDATE_CARD"); assert.deepEqual(action.data, {id: FAKE_ID, url: FAKE_URL, options: FAKE_CARD_OPTIONS}); // Should be not broadcast by default, but should update the preloaded tab, so check meta @@ -382,7 +382,7 @@ describe("SectionsFeed", () => { }); it("should broadcast the action only if shouldBroadcast is true", () => { feed.onUpdateSectionCard(null, FAKE_ID, FAKE_URL, FAKE_CARD_OPTIONS, true); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; // Should be broadcast assert.equal(action.meta.from, MAIN_MESSAGE_TYPE); assert.equal(action.meta.to, CONTENT_MESSAGE_TYPE); @@ -410,7 +410,7 @@ describe("SectionsFeed", () => { it("should fire SECTION_OPTIONS_UPDATED on suitable PREF_CHANGED events", () => { feed.onAction({type: "PREF_CHANGED", data: {name: "feeds.section.topstories.options", value: "foo"}}); assert.calledOnce(feed.store.dispatch); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, "SECTION_OPTIONS_CHANGED"); assert.equal(action.data, "topstories"); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/SnippetsFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/SnippetsFeed.test.js index 9264517a8dca..993260dfec81 100644 --- a/browser/extensions/activity-stream/test/unit/lib/SnippetsFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/SnippetsFeed.test.js @@ -50,7 +50,7 @@ describe("SnippetsFeed", () => { assert.calledOnce(feed.store.dispatch); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.propertyVal(action, "type", at.SNIPPETS_DATA); assert.isObject(action.data); assert.propertyVal(action.data, "snippetsURL", "foo.com/5"); @@ -106,7 +106,7 @@ describe("SnippetsFeed", () => { await feed.observe(null, "browser-search-engine-modified"); assert.calledOnce(feed.store.dispatch); - const action = feed.store.dispatch.firstCall.args[0]; + const [action] = feed.store.dispatch.firstCall.args; assert.equal(action.type, at.SNIPPETS_DATA); assert.deepEqual(action.data, {selectedSearchEngine: searchData}); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js index a6dce425c302..bc6b25428920 100644 --- a/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js @@ -60,7 +60,8 @@ describe("Top Sites Feed", () => { }; fakeScreenshot = { getScreenshotForURL: sandbox.spy(() => Promise.resolve(FAKE_SCREENSHOT)), - maybeCacheScreenshot: Screenshots.maybeCacheScreenshot + maybeCacheScreenshot: Screenshots.maybeCacheScreenshot, + _shouldGetScreenshots: sinon.stub().returns(true) }; filterAdultStub = sinon.stub().returns([]); shortURLStub = sinon.stub().callsFake(site => site.url); @@ -684,6 +685,24 @@ describe("Top Sites Feed", () => { assert.calledOnce(fakeNewTabUtils.pinnedLinks.pin); assert.calledWith(fakeNewTabUtils.pinnedLinks.pin, site, 2); }); + it("should properly update LinksCache object properties between migrations", async () => { + fakeNewTabUtils.pinnedLinks.links = [{url: "https://foo.com/"}]; + + let pinnedLinks = await feed.pinnedCache.request(); + assert.equal(pinnedLinks.length, 1); + feed.pinnedCache.expire(); + pinnedLinks[0].__sharedCache.updateLink("screenshot", "foo"); + + pinnedLinks = await feed.pinnedCache.request(); + assert.propertyVal(pinnedLinks[0], "screenshot", "foo"); + + // Force cache expiration in order to trigger a migration of objects + feed.pinnedCache.expire(); + pinnedLinks[0].__sharedCache.updateLink("screenshot", "bar"); + + pinnedLinks = await feed.pinnedCache.request(); + assert.propertyVal(pinnedLinks[0], "screenshot", "bar"); + }); }); describe("#drop", () => { it("should pin site in specified slot that is free", () => { diff --git a/browser/extensions/activity-stream/test/unit/lib/TopStoriesFeed.test.js b/browser/extensions/activity-stream/test/unit/lib/TopStoriesFeed.test.js index 46162c5a8672..bf6d0343ab2e 100644 --- a/browser/extensions/activity-stream/test/unit/lib/TopStoriesFeed.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/TopStoriesFeed.test.js @@ -443,7 +443,7 @@ describe("Top Stories Feed", () => { instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); assert.calledOnce(instance.store.dispatch); - let action = instance.store.dispatch.firstCall.args[0]; + let [action] = instance.store.dispatch.firstCall.args; assert.equal(at.SECTION_UPDATE, action.type); assert.equal(true, action.meta.skipMain); @@ -457,7 +457,7 @@ describe("Top Stories Feed", () => { instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); assert.calledTwice(instance.store.dispatch); - action = instance.store.dispatch.secondCall.args[0]; + [action] = instance.store.dispatch.secondCall.args; assert.equal(at.SECTION_UPDATE, action.type); assert.equal(true, action.meta.skipMain); assert.equal(action.data.rows[0].guid, "rec1"); @@ -490,7 +490,7 @@ describe("Top Stories Feed", () => { await instance.fetchStories(); assert.equal(instance.contentUpdateQueue.length, 0); assert.calledOnce(instance.store.dispatch); - let action = instance.store.dispatch.firstCall.args[0]; + let [action] = instance.store.dispatch.firstCall.args; assert.equal(action.type, at.SECTION_UPDATE); }); it("should not insert spoc if preffed off", async () => { @@ -665,7 +665,7 @@ describe("Top Stories Feed", () => { clock.tick(); instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); - let action = instance.store.dispatch.firstCall.args[0]; + let [action] = instance.store.dispatch.firstCall.args; assert.equal(action.data.rows[0].guid, "rec1"); assert.equal(action.data.rows[1].guid, "rec2"); assert.equal(action.data.rows[2].guid, "spoc1"); @@ -673,7 +673,7 @@ describe("Top Stories Feed", () => { clock.tick(); instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); - action = instance.store.dispatch.secondCall.args[0]; + [action] = instance.store.dispatch.secondCall.args; assert.equal(action.data.rows[0].guid, "rec1"); assert.equal(action.data.rows[1].guid, "rec2"); assert.equal(action.data.rows[2].guid, "spoc1"); @@ -682,7 +682,7 @@ describe("Top Stories Feed", () => { // campaign 1 period frequency cap now reached (spoc 2 should be shown) clock.tick(); instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); - action = instance.store.dispatch.thirdCall.args[0]; + [action] = instance.store.dispatch.thirdCall.args; assert.equal(action.data.rows[0].guid, "rec1"); assert.equal(action.data.rows[1].guid, "rec2"); assert.equal(action.data.rows[2].guid, "spoc2"); @@ -691,7 +691,7 @@ describe("Top Stories Feed", () => { // new campaign 1 period starting (spoc 1 sohuld be shown again) clock.tick(2 * 60 * 60 * 1000); instance.onAction({type: at.NEW_TAB_REHYDRATED, meta: {fromTarget: {}}}); - action = instance.store.dispatch.lastCall.args[0]; + [action] = instance.store.dispatch.lastCall.args; assert.equal(action.data.rows[0].guid, "rec1"); assert.equal(action.data.rows[1].guid, "rec2"); assert.equal(action.data.rows[2].guid, "spoc1"); @@ -784,7 +784,7 @@ describe("Top Stories Feed", () => { instance.observe("", "idle-daily"); assert.calledOnce(instance.store.dispatch); - let action = instance.store.dispatch.firstCall.args[0]; + let [action] = instance.store.dispatch.firstCall.args; assert.equal(action.type, at.TELEMETRY_PERFORMANCE_EVENT); assert.equal(action.data.event, "topstories.domain.affinity.calculation.ms"); }); diff --git a/browser/extensions/activity-stream/test/unit/lib/init-store.test.js b/browser/extensions/activity-stream/test/unit/lib/init-store.test.js index 0766eee5c6a3..051216b37a9e 100644 --- a/browser/extensions/activity-stream/test/unit/lib/init-store.test.js +++ b/browser/extensions/activity-stream/test/unit/lib/init-store.test.js @@ -26,7 +26,7 @@ describe("initStore", () => { }); it("should add a listener that dispatches actions", () => { assert.calledWith(global.addMessageListener, INCOMING_MESSAGE_NAME); - const listener = global.addMessageListener.firstCall.args[1]; + const [, listener] = global.addMessageListener.firstCall.args; globals.sandbox.spy(store, "dispatch"); const message = {name: INCOMING_MESSAGE_NAME, data: {type: "FOO"}}; @@ -46,7 +46,7 @@ describe("initStore", () => { assert.equal(store.getState().number, 42); }); it("should log errors from failed messages", () => { - const callback = global.addMessageListener.firstCall.args[1]; + const [, callback] = global.addMessageListener.firstCall.args; globals.sandbox.stub(global.console, "error"); globals.sandbox.stub(store, "dispatch").throws(Error("failed")); diff --git a/browser/extensions/activity-stream/test/unit/unit-entry.js b/browser/extensions/activity-stream/test/unit/unit-entry.js index d52a8e21df55..d097ae14adb2 100644 --- a/browser/extensions/activity-stream/test/unit/unit-entry.js +++ b/browser/extensions/activity-stream/test/unit/unit-entry.js @@ -30,7 +30,7 @@ overrider.set({ AppConstants: {MOZILLA_OFFICIAL: true}, Components: { classes: {}, - interfaces: {}, + interfaces: {nsIHttpChannel: {REFERRER_POLICY_UNSAFE_URL: 5}}, utils: { import() {}, importGlobalProperties() {}, From c5b4169c96f58d9afc6ac6835ee8b34102231a8c Mon Sep 17 00:00:00 2001 From: Andrew McCreight Date: Thu, 18 Jan 2018 13:04:41 -0800 Subject: [PATCH 03/65] Bug 767640, part 1 - Put Ci, Cr, Cc, and Cu on chrome contexts. r=bz,florian Almost every chrome script uses these abbreviations. We can avoid some boilerplate by automatically defining them on chrome contexts where we define Components. MozReview-Commit-ID: 6FV9ahLeqUb --HG-- extra : rebase_source : b3eab896fb1f90e3a5028b70cbbc436e999fd853 --- js/xpconnect/src/XPCJSRuntime.cpp | 4 ++ js/xpconnect/src/XPCWrappedNativeScope.cpp | 43 +++++++++++++++++++++- js/xpconnect/src/xpcprivate.h | 4 ++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/js/xpconnect/src/XPCJSRuntime.cpp b/js/xpconnect/src/XPCJSRuntime.cpp index f0d76be8e43d..a564e5be04ae 100644 --- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -82,6 +82,10 @@ const char* const XPCJSRuntime::mStrings[] = { "value", // IDX_VALUE "QueryInterface", // IDX_QUERY_INTERFACE "Components", // IDX_COMPONENTS + "Cc", // IDX_CC + "Ci", // IDX_CI + "Cr", // IDX_CR + "Cu", // IDX_CU "wrappedJSObject", // IDX_WRAPPED_JSOBJECT "Object", // IDX_OBJECT "Function", // IDX_FUNCTION diff --git a/js/xpconnect/src/XPCWrappedNativeScope.cpp b/js/xpconnect/src/XPCWrappedNativeScope.cpp index 6bbb9ae889f5..6568cd3135fa 100644 --- a/js/xpconnect/src/XPCWrappedNativeScope.cpp +++ b/js/xpconnect/src/XPCWrappedNativeScope.cpp @@ -224,6 +224,24 @@ XPCWrappedNativeScope::ForcePrivilegedComponents() mComponents = new nsXPCComponents(this); } +static bool +DefineSubcomponentProperty(JSContext* aCx, + HandleObject aGlobal, + nsISupports* aSubcomponent, + const nsID* aIID, + unsigned int aStringIndex) +{ + RootedValue subcompVal(aCx); + xpcObjectHelper helper(aSubcomponent); + if (!XPCConvert::NativeInterface2JSObject(&subcompVal, helper, + aIID, false, nullptr)) + return false; + if (NS_WARN_IF(!subcompVal.isObject())) + return false; + RootedId id(aCx, XPCJSContext::Get()->GetStringID(aStringIndex)); + return JS_DefinePropertyById(aCx, aGlobal, id, subcompVal, 0); +} + bool XPCWrappedNativeScope::AttachComponentsObject(JSContext* aCx) { @@ -243,7 +261,30 @@ XPCWrappedNativeScope::AttachComponentsObject(JSContext* aCx) attrs |= JSPROP_PERMANENT; RootedId id(aCx, XPCJSContext::Get()->GetStringID(XPCJSContext::IDX_COMPONENTS)); - return JS_DefinePropertyById(aCx, global, id, components, attrs); + if (!JS_DefinePropertyById(aCx, global, id, components, attrs)) + return false; + +// _iid can be nullptr if the object implements classinfo. +#define DEFINE_SUBCOMPONENT_PROPERTY(_comp, _type, _iid, _id) \ + nsCOMPtr obj ## _type; \ + if (NS_FAILED(_comp->Get ## _type(getter_AddRefs( obj ## _type )))) \ + return false; \ + if (!DefineSubcomponentProperty(aCx, global, obj ## _type, _iid, \ + XPCJSContext::IDX_ ## _id)) \ + return false; + + DEFINE_SUBCOMPONENT_PROPERTY(mComponents, Interfaces, nullptr, CI) + DEFINE_SUBCOMPONENT_PROPERTY(mComponents, Results, nullptr, CR) + + if (!c) + return true; + + DEFINE_SUBCOMPONENT_PROPERTY(c, Classes, nullptr, CC) + DEFINE_SUBCOMPONENT_PROPERTY(c, Utils, &NS_GET_IID(nsIXPCComponents_Utils), CU) + +#undef DEFINE_SUBCOMPONENT_PROPERTY + + return true; } static bool diff --git a/js/xpconnect/src/xpcprivate.h b/js/xpconnect/src/xpcprivate.h index 9ea3b1731c9f..fd09932d305f 100644 --- a/js/xpconnect/src/xpcprivate.h +++ b/js/xpconnect/src/xpcprivate.h @@ -435,6 +435,10 @@ public: IDX_VALUE , IDX_QUERY_INTERFACE , IDX_COMPONENTS , + IDX_CC , + IDX_CI , + IDX_CR , + IDX_CU , IDX_WRAPPED_JSOBJECT , IDX_OBJECT , IDX_FUNCTION , From aa6a1107abb04469845b6081c875e957e3019529 Mon Sep 17 00:00:00 2001 From: Andrew McCreight Date: Thu, 25 Jan 2018 09:45:45 -0800 Subject: [PATCH 04/65] Bug 767640, part 2 - Update eslint rules to take into account the definitions of Ci, Cr, Cc and Cu. r=florian MozReview-Commit-ID: 4PyMh0WeA4r --HG-- extra : rebase_source : da3db733d6c682ee137c90f8a5a9afaf85713c48 --- .../eslint/eslint-plugin-mozilla/lib/configs/recommended.js | 4 ++++ .../eslint/eslint-plugin-mozilla/lib/environments/jsm.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js index e3688a250e36..c8a6f59bb5ac 100644 --- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js +++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js @@ -12,11 +12,15 @@ module.exports = { "BrowserFeedWriter": false, "CSSPrimitiveValue": false, "CSSValueList": false, + "Cc": false, "CheckerboardReportService": false, // Specific to Firefox (Chrome code only). "ChromeUtils": false, "ChromeWorker": false, + "Ci": false, "Components": false, + "Cr": false, + "Cu": false, "DOMRequest": false, "DedicatedWorkerGlobalScope": false, "IDBFileRequest": false, diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js index 7c8db86353a3..9d6b094fb814 100644 --- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js +++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js @@ -18,6 +18,11 @@ module.exports = { "btoa": false, "debug": false, "dump": false, + // These globals are defined in XPCWrappedNativeScope::AttachComponentsObject. + "Cc": false, + "Ci": false, + "Cr": false, + "Cu": false, // These globals are made available via WebIDL files, see ResolveSystemBinding in: // https://searchfox.org/mozilla-central/source/__GENERATED__/dom/bindings/ResolveSystemBinding.cpp "AbortController": false, From b3c3de5de50f6b8ce8d3891b02be612d03dec810 Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:22 -0500 Subject: [PATCH 05/65] Bug 1428182 - 1. Support unified headers for Android builds; r=nalexander NDK headers are grouped into a "sysroot" directory, which doesn't contain architecture-specific bits, and a "system" directory, which contains only the architecture-specific bits. Previously, both directories are the same, under platforms/android-*/arch-*/. However, with unified headers in NDK r16, the two are different, so we need to support that in the Android build scripts. Unified headers also rely on the build system defining the __ANDROID_API__ macro, so we add support for that as well. MozReview-Commit-ID: 9zBNQC3BRFl --HG-- extra : rebase_source : 9ded282343df64d9cc4abcf7d7c6b03ac3423ff0 --- build/autoconf/android.m4 | 4 +- build/moz.configure/android-ndk.configure | 65 +++++++++++++++++++++-- 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/build/autoconf/android.m4 b/build/autoconf/android.m4 index 5b81ed8d5f7c..e4a8f0912bec 100644 --- a/build/autoconf/android.m4 +++ b/build/autoconf/android.m4 @@ -8,12 +8,12 @@ AC_DEFUN([MOZ_ANDROID_NDK], case "$target" in *-android*|*-linuxandroid*) dnl $android_platform will be set for us by Python configure. - directory_include_args="-isystem $android_platform/usr/include" + directory_include_args="-isystem $android_system -isystem $android_sysroot/usr/include" # clang will do any number of interesting things with host tools unless we tell # it to use the NDK tools. extra_opts="-gcc-toolchain $(dirname $(dirname $TOOLCHAIN_PREFIX))" - CPPFLAGS="$extra_opts $CPPFLAGS" + CPPFLAGS="$extra_opts -D__ANDROID_API__=$android_version $CPPFLAGS" ASFLAGS="$extra_opts $ASFLAGS" LDFLAGS="$extra_opts $LDFLAGS" diff --git a/build/moz.configure/android-ndk.configure b/build/moz.configure/android-ndk.configure index c6c9b118e60d..1067b8619a2c 100644 --- a/build/moz.configure/android-ndk.configure +++ b/build/moz.configure/android-ndk.configure @@ -150,6 +150,56 @@ def android_platform(target, android_version, ndk, _): add_old_configure_assignment('android_platform', android_platform) +@depends(android_platform, ndk, target, '--help') +@checking('for android sysroot directory') +@imports(_from='os.path', _import='isdir') +def android_sysroot(android_platform, ndk, target, _): + if target.os != 'Android': + return + + # NDK r15 has both unified and non-unified headers, but we only support + # non-unified for that NDK, so look for that first. + search_dirs = [ + # (, ) + (os.path.join(android_platform, 'usr', 'include'), android_platform), + (os.path.join(ndk, 'sysroot'), os.path.join(ndk, 'sysroot')), + ] + + for test_dir, sysroot_dir in search_dirs: + if isdir(test_dir): + return sysroot_dir + + die("Android sysroot directory not found in %s." % + str([sysroot_dir for test_dir, sysroot_dir in search_dirs])) + + +add_old_configure_assignment('android_sysroot', android_sysroot) + + +@depends(android_platform, ndk, target, '--help') +@checking('for android system directory') +@imports(_from='os.path', _import='isdir') +def android_system(android_platform, ndk, target, _): + if target.os != 'Android': + return + + # NDK r15 has both unified and non-unified headers, but we only support + # non-unified for that NDK, so look for that first. + search_dirs = [ + os.path.join(android_platform, 'usr', 'include'), + os.path.join(ndk, 'sysroot', 'usr', 'include', target.toolchain), + ] + + for system_dir in search_dirs: + if isdir(system_dir): + return system_dir + + die("Android system directory not found in %s." % str(search_dirs)) + + +add_old_configure_assignment('android_system', android_system) + + @depends(target, host, ndk, '--with-android-toolchain', '--help') @checking('for the Android toolchain directory', lambda x: x or 'not found') @imports(_from='os.path', _import='isdir') @@ -241,14 +291,19 @@ def stlport_cppflags(value, ndk, _): add_old_configure_assignment('stlport_cppflags', stlport_cppflags) -@depends(android_platform, android_toolchain, stlport_cppflags) -def extra_toolchain_flags(platform_dir, toolchain_dir, stlport_cppflags): - if not platform_dir: +@depends(android_system, android_sysroot, android_toolchain, android_version, + stlport_cppflags) +def extra_toolchain_flags(android_system, android_sysroot, toolchain_dir, + android_version, stlport_cppflags): + if not android_sysroot: return [] flags = ['-isystem', - os.path.join(platform_dir, 'usr', 'include'), + android_system, + '-isystem', + os.path.join(android_sysroot, 'usr', 'include'), '-gcc-toolchain', - toolchain_dir] + toolchain_dir, + '-D__ANDROID_API__=%d' % android_version] flags.extend(stlport_cppflags if stlport_cppflags else []) return flags From baa975d4c7d62fdc2123938438712bf46abe2492 Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:22 -0500 Subject: [PATCH 06/65] Bug 1428182 - 2. Check both quota.h and quotactl(); r=glandium Android headers can have a header but with its functions ifdef'ed out. Check for that by checking for the presence of quotactl(). MozReview-Commit-ID: 26ILnbP7flO --HG-- extra : rebase_source : fe78c114189a362cdad3d79ce67868b045328392 --- build/moz.configure/headers.configure | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build/moz.configure/headers.configure b/build/moz.configure/headers.configure index c778d78d9789..b10499418eaf 100644 --- a/build/moz.configure/headers.configure +++ b/build/moz.configure/headers.configure @@ -40,8 +40,13 @@ check_headers( ) # Quota support -check_header('sys/quota.h', - when=non_msvc_compiler) +# Check for both the header and quotactl() because Android headers can have the +# header but not quotactl(). +set_define('HAVE_SYS_QUOTA_H', + try_compile(includes=['sys/quota.h'], + body='quotactl(0, nullptr, 0, (caddr_t)nullptr);', + when=non_msvc_compiler, + check_msg='for sys/quota.h')) check_header('linux/quota.h', includes=['sys/socket.h'], when=building_linux) From 1f4f8416df2f8d88b0a3b887bdde547bde1e5d2e Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:22 -0500 Subject: [PATCH 07/65] Bug 1428182 - 3. Only include for non-unified headers; r=glandium Unified headers have a complete so we should include that instead of . MozReview-Commit-ID: DkQv2vk1Q62 --HG-- extra : rebase_source : 7cd9eb04532c14b1dd0dc8747448b89d16e4f118 --- mozglue/linker/Elfxx.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mozglue/linker/Elfxx.h b/mozglue/linker/Elfxx.h index d60dea20692c..6b21a8b7deb2 100644 --- a/mozglue/linker/Elfxx.h +++ b/mozglue/linker/Elfxx.h @@ -7,9 +7,9 @@ /** * Android system headers have two different elf.h file. The one under linux/ - * is the most complete on older android API versions. + * is the most complete on older Android API versions without unified headers. */ -#if defined(ANDROID) && __ANDROID_API__ < 21 +#if defined(ANDROID) && __ANDROID_API__ < 21 && !defined(__ANDROID_API_L__) #include #else #include From ee3fc0952a3552de3255e50c12254b45b16ddf0d Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:22 -0500 Subject: [PATCH 08/65] Bug 1428182 - 4. Fix a gfx warning; r=jchen MozReview-Commit-ID: L5NclHmqCE2 --HG-- extra : rebase_source : 3573f3138133e52000d192bace5aadf6f2242a72 --- gfx/thebes/gfxFT2FontList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gfx/thebes/gfxFT2FontList.cpp b/gfx/thebes/gfxFT2FontList.cpp index 04bae88995f1..94a8b87eaa54 100644 --- a/gfx/thebes/gfxFT2FontList.cpp +++ b/gfx/thebes/gfxFT2FontList.cpp @@ -961,7 +961,7 @@ gfxFT2FontList::AppendFacesFromFontFile(const nsCString& aFileName, struct stat s; int statRetval = stat(aFileName.get(), &s); if (!cachedFaceList.IsEmpty() && 0 == statRetval && - s.st_mtime == timestamp && s.st_size == filesize) + uint32_t(s.st_mtime) == timestamp && s.st_size == filesize) { LOG(("using cached font info for %s", aFileName.get())); AppendFacesFromCachedFaceList(aFileName, cachedFaceList, aStdFile); From ffe5a4900b764be230fded2765bf10d6944e044f Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 09/65] Bug 1428182 - 5. Update libevent patch for Android builds; r=froydnj Support for accept4 and arc4random_buf depends on which set of NDK headers we're using. accept4 is supported for API >= 21 for unified and non-unified headers. arc4random_buf is supported for API >= 21 if using non-unified headers, and it's always supported if using unified headers (the unified headers provide shims for API < 21). MozReview-Commit-ID: FY8n5jWXB1K --HG-- rename : ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch => ipc/chromium/src/third_party/libevent/patches/android-api-level.patch extra : rebase_source : 45ec28ca03ba877d9e0911bde081df7d9cb2d3d2 --- .../src/third_party/libevent/README.mozilla | 4 ++-- .../libevent/android/event2/event-config.h | 8 ++++++++ ...random-buf.patch => android-api-level.patch} | 17 +++++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) rename ipc/chromium/src/third_party/libevent/patches/{android-arc4random-buf.patch => android-api-level.patch} (66%) diff --git a/ipc/chromium/src/third_party/libevent/README.mozilla b/ipc/chromium/src/third_party/libevent/README.mozilla index 5361a9ab9d1f..2c0ae4a59ade 100644 --- a/ipc/chromium/src/third_party/libevent/README.mozilla +++ b/ipc/chromium/src/third_party/libevent/README.mozilla @@ -34,5 +34,5 @@ ipc/chromium/src/third_party/libevent/patches/: - "linux-no-sysctl.patch". Fixes the build on Linux systems without sysctl.h. See bug 1263429. -- "android-arc4random-buf.patch". Fixes the build for clang/android builds. - See bug 1281596 and bug 1282141. +- "android-api-level.patch". Fixes the build under clang or NDK r16. + See bug 1281596, bug 1282141, and bug 1428182. diff --git a/ipc/chromium/src/third_party/libevent/android/event2/event-config.h b/ipc/chromium/src/third_party/libevent/android/event2/event-config.h index fa8e226aa910..2922acb52e11 100644 --- a/ipc/chromium/src/third_party/libevent/android/event2/event-config.h +++ b/ipc/chromium/src/third_party/libevent/android/event2/event-config.h @@ -24,13 +24,21 @@ /* #undef EVENT__DISABLE_THREAD_SUPPORT */ /* Define to 1 if you have the `accept4' function. */ +#if __ANDROID_API__ >= 21 #define EVENT__HAVE_ACCEPT4 1 +#else +/* #undef EVENT__HAVE_ACCEPT4 */ +#endif /* Define to 1 if you have the `arc4random' function. */ #define EVENT__HAVE_ARC4RANDOM 1 /* Define to 1 if you have the `arc4random_buf' function. */ +#if __ANDROID_API__ >= 21 || defined(__ANDROID_API_L__) +#define EVENT__HAVE_ARC4RANDOM_BUF 1 +#else /* #undef EVENT__HAVE_ARC4RANDOM_BUF */ +#endif /* Define to 1 if you have the header file. */ #define EVENT__HAVE_ARPA_INET_H 1 diff --git a/ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch b/ipc/chromium/src/third_party/libevent/patches/android-api-level.patch similarity index 66% rename from ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch rename to ipc/chromium/src/third_party/libevent/patches/android-api-level.patch index ee3c543408fa..3bb082db80e0 100644 --- a/ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch +++ b/ipc/chromium/src/third_party/libevent/patches/android-api-level.patch @@ -1,17 +1,30 @@ diff --git a/ipc/chromium/src/third_party/libevent/android/event2/event-config.h b/ipc/chromium/src/third_party/libevent/android/event2/event-config.h --- a/ipc/chromium/src/third_party/libevent/android/event2/event-config.h +++ b/ipc/chromium/src/third_party/libevent/android/event2/event-config.h -@@ -25,17 +25,17 @@ +@@ -19,23 +19,31 @@ + + /* Define if libevent should not allow replacing the mm functions */ + /* #undef EVENT__DISABLE_MM_REPLACEMENT */ + + /* Define if libevent should not be compiled with thread support */ + /* #undef EVENT__DISABLE_THREAD_SUPPORT */ /* Define to 1 if you have the `accept4' function. */ ++#if __ANDROID_API__ >= 21 #define EVENT__HAVE_ACCEPT4 1 ++#else ++/* #undef EVENT__HAVE_ACCEPT4 */ ++#endif /* Define to 1 if you have the `arc4random' function. */ #define EVENT__HAVE_ARC4RANDOM 1 /* Define to 1 if you have the `arc4random_buf' function. */ --#define EVENT__HAVE_ARC4RANDOM_BUF 1 ++#if __ANDROID_API__ >= 21 || defined(__ANDROID_API_L__) + #define EVENT__HAVE_ARC4RANDOM_BUF 1 ++#else +/* #undef EVENT__HAVE_ARC4RANDOM_BUF */ ++#endif /* Define to 1 if you have the header file. */ #define EVENT__HAVE_ARPA_INET_H 1 From e0003b10bab7151179b4672dfd6f707b9ed8df07 Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 10/65] Bug 1428182 - 6a. Apply Breakpad upstream commit for building with NDK r16; r=ted Apply commit afa9c52715db1e4bfaa4b01c9aec40cc249b689b from the Breakpad upstream to support building with NDK r16. MozReview-Commit-ID: D6xafYkjhjt --HG-- extra : rebase_source : 41921455b9cb5351695f6d0257f130ec9121c20a --- .../src/common/android/include/link.h | 16 ++++-- .../src/common/android/include/sys/user.h | 50 ++++++------------- 2 files changed, 26 insertions(+), 40 deletions(-) diff --git a/toolkit/crashreporter/google-breakpad/src/common/android/include/link.h b/toolkit/crashreporter/google-breakpad/src/common/android/include/link.h index 0f7d98e7530f..ca059f15878c 100644 --- a/toolkit/crashreporter/google-breakpad/src/common/android/include/link.h +++ b/toolkit/crashreporter/google-breakpad/src/common/android/include/link.h @@ -34,10 +34,16 @@ Provide custom version here. */ #include_next -// TODO(rmcilroy): Remove this file once the ndk is updated for other -// architectures - crbug.com/358831 -#if !defined(__aarch64__) && !defined(__x86_64__) && \ - !(defined(__mips__) && _MIPS_SIM == _ABI64) +#include + +// TODO(rmcilroy): Remove this file once the NDK API level is updated to at +// least 21 for all architectures. https://crbug.com/358831 + +// These structures are only present in traditional headers at API level 21 and +// above. Unified headers define these structures regardless of the chosen API +// level. __ANDROID_API_N__ is a proxy for determining whether unified headers +// are in use. It’s only defined by unified headers. +#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__) #ifdef __cplusplus extern "C" { @@ -68,6 +74,6 @@ struct link_map { } // extern "C" #endif // __cplusplus -#endif // !defined(__aarch64__) && !defined(__x86_64__) +#endif // __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__) #endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */ diff --git a/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/user.h b/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/user.h index 1eb02a57d2cc..5a9ba0537734 100644 --- a/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/user.h +++ b/toolkit/crashreporter/google-breakpad/src/common/android/include/sys/user.h @@ -34,52 +34,32 @@ // glibc) and therefore avoid doing otherwise awkward #ifdefs in the code. // The following quirks are currently handled by this file: // - i386: Use the Android NDK but alias user_fxsr_struct > user_fpxregs_struct. -// - aarch64: -// - NDK r10: Add missing user_regs_struct and user_fpsimd_struct structs. -// - NDK r11+: Add missing include -// - Other platforms: Just use the Android NDK unchanged. // TODO(primiano): remove these changes after Chromium has stably rolled to -// an NDK with the appropriate fixes. - -#if defined(ANDROID_NDK_MAJOR_VERSION) && ANDROID_NDK_MAJOR_VERSION > 10 -#ifdef __aarch64__ -#include -#endif // __aarch64__ -#endif // defined(ANDROID_NDK_MAJOR_VERSION) && ANDROID_NDK_MAJOR_VERSION > 10 +// an NDK with the appropriate fixes. https://crbug.com/358831 #include_next -#ifdef __i386__ -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus -typedef struct user_fxsr_struct user_fpxregs_struct; -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus -#endif // __i386__ +#include -#if !defined(ANDROID_NDK_MAJOR_VERSION) || ANDROID_NDK_MAJOR_VERSION == 10 -#ifdef __aarch64__ #ifdef __cplusplus extern "C" { #endif // __cplusplus -struct user_regs_struct { - __u64 regs[31]; - __u64 sp; - __u64 pc; - __u64 pstate; -}; -struct user_fpsimd_struct { - __uint128_t vregs[32]; - __u32 fpsr; - __u32 fpcr; -}; + +#if defined(__i386__) +#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__) + +// user_fpxregs_struct was called user_fxsr_struct in traditional headers before +// API level 21. Unified headers call it user_fpxregs_struct regardless of the +// chosen API level. __ANDROID_API_N__ is a proxy for determining whether +// unified headers are in use. It’s only defined by unified headers. +typedef struct user_fxsr_struct user_fpxregs_struct; + +#endif // __ANDROID_API__ < 21 && !defined(__ANDROID_API_N__) +#endif // defined(__i386__) + #ifdef __cplusplus } // extern "C" #endif // __cplusplus -#endif // __aarch64__ -#endif // defined(ANDROID_NDK_VERSION) && ANDROID_NDK_MAJOR_VERSION == 10 #endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H From 3daaf655bf2f02d370eaee35d202ae8ecc54af0f Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 11/65] Bug 1428182 - 6b. Support unified headers in Breakpad code; r=ted Fix several problems when building Breakpad with new NDK unified headers. - Unified headers define its own tgkill wrapper, so rename our own wrapper to __tgkill. - Unified headers define user_fpxregs_struct for all API levels, so don't redefine it. - Only the target sources under google-breakpad/src/common/linux should use custom Android headers, so change the includes line in moz.build to use OS_INCLUDES. MozReview-Commit-ID: HGnUMu5vDUM --HG-- extra : rebase_source : f5c29c9949a48a8376f84dcc676e5f8df886f130 --- config/system-headers.mozbuild | 1 + .../breakpad-client/linux/handler/exception_handler.cc | 4 ++-- toolkit/crashreporter/breakpad-client/linux/moz.build | 4 ---- .../crashreporter/google-breakpad/src/common/linux/moz.build | 4 ++-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild index 5cc03c1d89da..0872969ae159 100644 --- a/config/system-headers.mozbuild +++ b/config/system-headers.mozbuild @@ -1050,6 +1050,7 @@ system_headers = [ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': system_headers += [ + 'android/api-level.h', 'android/ashmem.h', 'android_audio/AudioSystem.h', 'android/log.h', diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc index aa329ca5a035..0872eac6bdb0 100644 --- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc +++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc @@ -106,7 +106,7 @@ #endif // A wrapper for the tgkill syscall: send a signal to a specific thread. -static int tgkill(pid_t tgid, pid_t tid, int sig) { +static int _tgkill(pid_t tgid, pid_t tid, int sig) { return syscall(__NR_tgkill, tgid, tid, sig); return 0; } @@ -387,7 +387,7 @@ void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) { // In order to retrigger it, we have to queue a new signal by calling // kill() ourselves. The special case (si_pid == 0 && sig == SIGABRT) is // due to the kernel sending a SIGABRT from a user request via SysRQ. - if (tgkill(getpid(), syscall(__NR_gettid), sig) < 0) { + if (_tgkill(getpid(), syscall(__NR_gettid), sig) < 0) { // If we failed to kill ourselves (e.g. because a sandbox disallows us // to do so), we instead resort to terminating our process. This will // result in an incorrect exit code. diff --git a/toolkit/crashreporter/breakpad-client/linux/moz.build b/toolkit/crashreporter/breakpad-client/linux/moz.build index c29564b65a7d..c7aa654406ad 100644 --- a/toolkit/crashreporter/breakpad-client/linux/moz.build +++ b/toolkit/crashreporter/breakpad-client/linux/moz.build @@ -35,8 +35,4 @@ AllowCompilerWarnings() FINAL_LIBRARY = 'xul' -if CONFIG['OS_TARGET'] == 'Android' and CONFIG['CPU_ARCH'] == 'x86': - # The NDK's user.h defines this struct with a different name. - DEFINES['user_fpxregs_struct'] = 'user_fxsr_struct' - include('/toolkit/crashreporter/crashreporter.mozbuild') diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build b/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build index f705b776164d..e988c0fd54eb 100644 --- a/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build +++ b/toolkit/crashreporter/google-breakpad/src/common/linux/moz.build @@ -40,8 +40,8 @@ HOST_CXXFLAGS += [ if CONFIG['OS_TARGET'] == 'Android': DEFINES['ANDROID_NDK_MAJOR_VERSION'] = CONFIG['ANDROID_NDK_MAJOR_VERSION'] DEFINES['ANDROID_NDK_MINOR_VERSION'] = CONFIG['ANDROID_NDK_MINOR_VERSION'] - LOCAL_INCLUDES += [ - '/toolkit/crashreporter/google-breakpad/src/common/android/include', + COMPILE_FLAGS['OS_INCLUDES'] += [ + '-I%s/toolkit/crashreporter/google-breakpad/src/common/android/include' % TOPSRCDIR, ] Library('breakpad_linux_common_s') From 149e502c7261863a86bee3685a9676436fc169b0 Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 12/65] Bug 1428182 - 7. Include in LUL for Android; r=jseward Modern NDK headers all have , so we should always include it, and still provide shims for anything we need that's not defined in . MozReview-Commit-ID: GNBDIe73RFm --HG-- extra : rebase_source : 1246dce8a7ad201cf4f01de8e4912217636f1fc8 --- tools/profiler/lul/LulElfInt.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tools/profiler/lul/LulElfInt.h b/tools/profiler/lul/LulElfInt.h index c02251068258..3a9f50bdc3bd 100644 --- a/tools/profiler/lul/LulElfInt.h +++ b/tools/profiler/lul/LulElfInt.h @@ -54,6 +54,7 @@ // (derived from) // elfutils.h: Utilities for dealing with ELF files. // +#include #if defined(GP_OS_android) @@ -75,17 +76,12 @@ #define NT_GNU_BUILD_ID 3 #endif +#ifndef ElfW #define ElfW(type) _ElfW (Elf, ELFSIZE, type) #define _ElfW(e,w,t) _ElfW_1 (e, w, _##t) #define _ElfW_1(e,w,t) e##w##t +#endif -//FIXME -extern "C" { - extern char* basename(const char* path); -}; -#else - -# include #endif From 8c9f5ba234c0dd133b07817830e9b0f23a3f0298 Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 13/65] Bug 1428182 - 8. Don't redefine keycodes when using unified headers; r=esawin The unified headers already define the keycodes in GeckoEditableSupport.cpp, so only define them ourselves when not using unified headers (by checking the __ANDROID_API_X__ macros). MozReview-Commit-ID: 3Ptakcm0rW --HG-- extra : rebase_source : c7baf2fc9c02cc891946a197fb17309d3593a610 --- widget/android/GeckoEditableSupport.cpp | 40 +++++++++++++------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/widget/android/GeckoEditableSupport.cpp b/widget/android/GeckoEditableSupport.cpp index a2e29c57b6a2..78be01395f2e 100644 --- a/widget/android/GeckoEditableSupport.cpp +++ b/widget/android/GeckoEditableSupport.cpp @@ -33,8 +33,14 @@ nsWindow::NativePtr::sName[] = "GeckoEditableSupport"; enum { + AKEYCODE_dummy, // Avoid enum without declarations. + // These keycode masks are not defined in android/keycodes.h: -#if __ANDROID_API__ < 13 + // Note that the NDK unified headers always define these constants, so we + // need to ensure we're _not_ using unified headers, by checking for the + // absence of __ANDROID_API_X__ macros (e.g. __ANDROID_API_L__), which are + // only defined by the unified headers. +#if __ANDROID_API__ < 13 && !defined(__ANDROID_API_I__) AKEYCODE_ESCAPE = 111, AKEYCODE_FORWARD_DEL = 112, AKEYCODE_CTRL_LEFT = 113, @@ -129,18 +135,18 @@ enum { AKEYCODE_BUTTON_15 = 202, AKEYCODE_BUTTON_16 = 203, #endif -#if __ANDROID_API__ < 14 +#if __ANDROID_API__ < 14 && !defined(__ANDROID_API_I__) AKEYCODE_LANGUAGE_SWITCH = 204, AKEYCODE_MANNER_MODE = 205, AKEYCODE_3D_MODE = 206, #endif -#if __ANDROID_API__ < 15 +#if __ANDROID_API__ < 15 && !defined(__ANDROID_API_J__) AKEYCODE_CONTACTS = 207, AKEYCODE_CALENDAR = 208, AKEYCODE_MUSIC = 209, AKEYCODE_CALCULATOR = 210, #endif -#if __ANDROID_API__ < 16 +#if __ANDROID_API__ < 16 && !defined(__ANDROID_API_J__) AKEYCODE_ZENKAKU_HANKAKU = 211, AKEYCODE_EISU = 212, AKEYCODE_MUHENKAN = 213, @@ -151,18 +157,18 @@ enum { AKEYCODE_KANA = 218, AKEYCODE_ASSIST = 219, #endif -#if __ANDROID_API__ < 18 +#if __ANDROID_API__ < 18 && !defined(__ANDROID_API_J_MR2__) AKEYCODE_BRIGHTNESS_DOWN = 220, AKEYCODE_BRIGHTNESS_UP = 221, #endif -#if __ANDROID_API__ < 19 +#if __ANDROID_API__ < 19 && !defined(__ANDROID_API_K__) AKEYCODE_MEDIA_AUDIO_TRACK = 222, #endif -#if __ANDROID_API__ < 20 +#if __ANDROID_API__ < 20 && !defined(__ANDROID_API_L__) AKEYCODE_SLEEP = 223, AKEYCODE_WAKEUP = 224, #endif -#if __ANDROID_API__ < 21 +#if __ANDROID_API__ < 21 && !defined(__ANDROID_API_L__) AKEYCODE_PAIRING = 225, AKEYCODE_MEDIA_TOP_MENU = 226, AKEYCODE_11 = 227, @@ -199,13 +205,17 @@ enum { AKEYCODE_TV_TIMER_PROGRAMMING = 258, AKEYCODE_HELP = 259, #endif -#if __ANDROID_API__ < 23 +#if __ANDROID_API__ < 23 && !defined(__ANDROID_API_M__) AKEYCODE_NAVIGATE_PREVIOUS = 260, AKEYCODE_NAVIGATE_NEXT = 261, AKEYCODE_NAVIGATE_IN = 262, AKEYCODE_NAVIGATE_OUT = 263, + AKEYCODE_MEDIA_SKIP_FORWARD = 272, + AKEYCODE_MEDIA_SKIP_BACKWARD = 273, + AKEYCODE_MEDIA_STEP_FORWARD = 274, + AKEYCODE_MEDIA_STEP_BACKWARD = 275, #endif -#if __ANDROID_API__ < 24 +#if __ANDROID_API__ < 24 && !defined(__ANDROID_API_N__) AKEYCODE_STEM_PRIMARY = 264, AKEYCODE_STEM_1 = 265, AKEYCODE_STEM_2 = 266, @@ -214,20 +224,12 @@ enum { AKEYCODE_DPAD_DOWN_LEFT = 269, AKEYCODE_DPAD_UP_RIGHT = 270, AKEYCODE_DPAD_DOWN_RIGHT = 271, -#endif -#if __ANDROID_API__ < 23 - AKEYCODE_MEDIA_SKIP_FORWARD = 272, - AKEYCODE_MEDIA_SKIP_BACKWARD = 273, - AKEYCODE_MEDIA_STEP_FORWARD = 274, - AKEYCODE_MEDIA_STEP_BACKWARD = 275, -#endif -#if __ANDROID_API__ < 24 AKEYCODE_SOFT_SLEEP = 276, AKEYCODE_CUT = 277, AKEYCODE_COPY = 278, AKEYCODE_PASTE = 279, #endif -#if __ANDROID_API__ < 25 +#if __ANDROID_API__ < 25 && !defined(__ANDROID_API_N_MR1__) AKEYCODE_SYSTEM_NAVIGATION_UP = 280, AKEYCODE_SYSTEM_NAVIGATION_DOWN = 281, AKEYCODE_SYSTEM_NAVIGATION_LEFT = 282, From 5aa4623e3f130493a9bcb92c452e82a34d9959fc Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:23 -0500 Subject: [PATCH 14/65] Bug 1428182 - 9. Apply Skia upstream commit to support NDK r16; r=lsalzman Apply Skia upstream commit 592c225b03ca677a1217eabdbc38eede6afcdb14 to support building with NDK r16. MozReview-Commit-ID: B6popOoPTni --HG-- extra : rebase_source : 7d846431f9de12a2ffa270ead93c33cae602c58e --- gfx/skia/skia/src/core/SkCpu.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gfx/skia/skia/src/core/SkCpu.cpp b/gfx/skia/skia/src/core/SkCpu.cpp index d90e482c70c4..1ef7ad3567e1 100644 --- a/gfx/skia/skia/src/core/SkCpu.cpp +++ b/gfx/skia/skia/src/core/SkCpu.cpp @@ -85,8 +85,10 @@ return features; } -#elif defined(SK_CPU_ARM32) && __has_include() && __has_include() - // asm/hwcap.h and sys/auxv.h won't be present on NDK builds before API v21. +#elif defined(SK_CPU_ARM32) && __has_include() && \ + (!defined(__ANDROID_API__) || __ANDROID_API__ >= 18) + // sys/auxv.h will always be present in the Android NDK due to unified + //headers, but getauxval is only defined for API >= 18. #include #include From 7d4fb3fff97eafa998362e35cc22166ca559ecbd Mon Sep 17 00:00:00 2001 From: Jim Chen Date: Tue, 30 Jan 2018 14:08:24 -0500 Subject: [PATCH 15/65] Bug 1428182 - 10. Add include in pixman patch; r=lsalzman pixman-8888-over-565.patch added a call to free(), which is apparently not included by the other headers when using the new NDK headers. MozReview-Commit-ID: 9fAuSano36N --HG-- extra : rebase_source : de9a1f1c4676df9ed724ae7264ca1170b77aac52 --- gfx/cairo/libpixman/src/pixman-inlines.h | 1 + gfx/cairo/pixman-8888-over-565.patch | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gfx/cairo/libpixman/src/pixman-inlines.h b/gfx/cairo/libpixman/src/pixman-inlines.h index 6d78aa7cb089..3b6f49cd02e3 100644 --- a/gfx/cairo/libpixman/src/pixman-inlines.h +++ b/gfx/cairo/libpixman/src/pixman-inlines.h @@ -26,6 +26,7 @@ #ifndef PIXMAN_FAST_PATH_H__ #define PIXMAN_FAST_PATH_H__ +#include #include "pixman-private.h" #define PIXMAN_REPEAT_COVER -1 diff --git a/gfx/cairo/pixman-8888-over-565.patch b/gfx/cairo/pixman-8888-over-565.patch index d6ab4618f8b6..0dd34c04f35c 100644 --- a/gfx/cairo/pixman-8888-over-565.patch +++ b/gfx/cairo/pixman-8888-over-565.patch @@ -248,6 +248,24 @@ diff --git a/gfx/cairo/libpixman/src/pixman-fast-path.c b/gfx/cairo/libpixman/sr diff --git a/gfx/cairo/libpixman/src/pixman-inlines.h b/gfx/cairo/libpixman/src/pixman-inlines.h --- a/gfx/cairo/libpixman/src/pixman-inlines.h +++ b/gfx/cairo/libpixman/src/pixman-inlines.h +@@ -21,16 +21,17 @@ + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ + + #ifndef PIXMAN_FAST_PATH_H__ + #define PIXMAN_FAST_PATH_H__ + ++#include + #include "pixman-private.h" + + #define PIXMAN_REPEAT_COVER -1 + + /* Flags describing input parameters to fast path macro template. + * Turning on some flag values may indicate that + * "some property X is available so template can use this" or + * "some property X should be handled by template". @@ -816,18 +816,48 @@ bilinear_pad_repeat_get_scanline_bounds * * Note: normally the sum of 'weight_top' and 'weight_bottom' is equal to 256, From 1c557b83fe99d77565dc9b490732962e112ead27 Mon Sep 17 00:00:00 2001 From: Gijs Kruitbosch Date: Tue, 30 Jan 2018 15:13:23 +0000 Subject: [PATCH 16/65] Bug 1420714 - fix favicon fetching in reader mode, r=mak MozReview-Commit-ID: KZFoKNqVPPy --HG-- extra : rebase_source : 802b0140f3069013130d042167c7f08d615730b7 --- browser/modules/ReaderParent.jsm | 2 +- .../components/reader/test/browser_readerMode.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/browser/modules/ReaderParent.jsm b/browser/modules/ReaderParent.jsm index ce692700e3c5..6421b07f0b59 100644 --- a/browser/modules/ReaderParent.jsm +++ b/browser/modules/ReaderParent.jsm @@ -28,7 +28,7 @@ var ReaderParent = { faviconUrl.then(function onResolution(favicon) { message.target.messageManager.sendAsyncMessage("Reader:FaviconReturn", { url: message.data.url, - faviconUrl: favicon.path.replace(/^favicon:/, "") + faviconUrl: favicon.pathQueryRef.replace(/^favicon:/, "") }); }, function onRejection(reason) { diff --git a/toolkit/components/reader/test/browser_readerMode.js b/toolkit/components/reader/test/browser_readerMode.js index f4f373f8aaef..4727b0177dd5 100644 --- a/toolkit/components/reader/test/browser_readerMode.js +++ b/toolkit/components/reader/test/browser_readerMode.js @@ -14,6 +14,9 @@ const TEST_PATH = getRootDirectory(gTestPath).replace("chrome://mochitests/conte var readerButton = document.getElementById("reader-mode-button"); +XPCOMUtils.defineLazyModuleGetter(this, "PlacesTestUtils", + "resource://testing-common/PlacesTestUtils.jsm"); + add_task(async function test_reader_button() { registerCleanupFunction(function() { // Reset test prefs. @@ -37,6 +40,15 @@ add_task(async function test_reader_button() { // Point tab to a test page that is reader-able. let url = TEST_PATH + "readerModeArticle.html"; + // Set up favicon for testing. + let favicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAA" + + "AAAA6fptVAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=="; + info("Adding visit so we can add favicon"); + await PlacesTestUtils.addVisits(new URL(url)); + info("Adding favicon"); + await PlacesTestUtils.addFavicons(new Map([[url, favicon]])); + info("Opening tab and waiting for reader mode button to show up"); + await promiseTabLoadEvent(tab, url); await promiseWaitForCondition(() => !readerButton.hidden); @@ -50,6 +62,10 @@ add_task(async function test_reader_button() { let readerUrl = gBrowser.selectedBrowser.currentURI.spec; ok(readerUrl.startsWith("about:reader"), "about:reader loaded after clicking reader mode button"); is_element_visible(readerButton, "Reader mode button is present on about:reader"); + let iconEl = document.getAnonymousElementByAttribute(tab, "anonid", "tab-icon-image"); + await promiseWaitForCondition(() => iconEl.getBoundingClientRect().width != 0); + is_element_visible(iconEl, "Favicon should be visible"); + is(iconEl.src, favicon, "Correct favicon should be loaded"); is(gURLBar.value, readerUrl, "gURLBar value is about:reader URL"); is(gURLBar.textValue, url.substring("http://".length), "gURLBar is displaying original article URL"); From a80a3ff4c2ebcd2b873fabd2b4f0193c1951198c Mon Sep 17 00:00:00 2001 From: Christian Holler Date: Wed, 24 Jan 2018 19:25:23 +0100 Subject: [PATCH 17/65] Bug 1428357 - Change ABI used in app update URL for ASan builds. r=bhearsum,rstrong MozReview-Commit-ID: 4fxosdR5od3 --HG-- extra : rebase_source : 6b82e1efa89ff9587629ed0fdf9b1f311fd9edcc --- toolkit/modules/UpdateUtils.jsm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/toolkit/modules/UpdateUtils.jsm b/toolkit/modules/UpdateUtils.jsm index c39fb31d2003..c03617e48d6e 100644 --- a/toolkit/modules/UpdateUtils.jsm +++ b/toolkit/modules/UpdateUtils.jsm @@ -261,6 +261,12 @@ XPCOMUtils.defineLazyGetter(UpdateUtils, "ABI", function() { // Windows build should report the CPU architecture that it's running on. abi += "-" + gWinCPUArch; } + + if (AppConstants.ASAN) { + // Allow ASan builds to receive their own updates + abi += "-asan"; + } + return abi; }); From b66df5e67e38a38f4cda82bf5a23132418af727c Mon Sep 17 00:00:00 2001 From: Christian Holler Date: Fri, 26 Jan 2018 02:12:53 +0100 Subject: [PATCH 18/65] Bug 1428357 - Fix UpdateUtils test to reflect ASan ABI change. r=rstrong MozReview-Commit-ID: 6XsNNCNLb7 --HG-- extra : rebase_source : d0544154ba5f564defa7fa37974c3824d5bc4fbc --- toolkit/modules/tests/xpcshell/test_UpdateUtils_url.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/toolkit/modules/tests/xpcshell/test_UpdateUtils_url.js b/toolkit/modules/tests/xpcshell/test_UpdateUtils_url.js index 38a63d288f1a..e433d772d1a2 100644 --- a/toolkit/modules/tests/xpcshell/test_UpdateUtils_url.js +++ b/toolkit/modules/tests/xpcshell/test_UpdateUtils_url.js @@ -218,6 +218,11 @@ add_task(async function test_build_target() { abi += "-" + getProcArchitecture(); } + if (AppConstants.ASAN) { + // Allow ASan builds to receive their own updates + abi += "-asan"; + } + Assert.equal(await getResult(url), gAppInfo.OS + "_" + abi, "the url param for %BUILD_TARGET%" + MSG_SHOULD_EQUAL); }); From 0e6d4442ffa4f4862309c65935d39f683a8665cf Mon Sep 17 00:00:00 2001 From: Dorel Luca Date: Tue, 30 Jan 2018 21:53:28 +0200 Subject: [PATCH 19/65] Backed out 2 changesets (bug 767640) for talos failure on scripts/MozillaFileLogger.js on a CLOSED TREE Backed out changeset 073aecb9bee5 (bug 767640) Backed out changeset 6bc5ccfb1bd3 (bug 767640) --- js/xpconnect/src/XPCJSRuntime.cpp | 4 -- js/xpconnect/src/XPCWrappedNativeScope.cpp | 43 +------------------ js/xpconnect/src/xpcprivate.h | 4 -- .../lib/configs/recommended.js | 4 -- .../lib/environments/jsm.js | 5 --- 5 files changed, 1 insertion(+), 59 deletions(-) diff --git a/js/xpconnect/src/XPCJSRuntime.cpp b/js/xpconnect/src/XPCJSRuntime.cpp index a564e5be04ae..f0d76be8e43d 100644 --- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -82,10 +82,6 @@ const char* const XPCJSRuntime::mStrings[] = { "value", // IDX_VALUE "QueryInterface", // IDX_QUERY_INTERFACE "Components", // IDX_COMPONENTS - "Cc", // IDX_CC - "Ci", // IDX_CI - "Cr", // IDX_CR - "Cu", // IDX_CU "wrappedJSObject", // IDX_WRAPPED_JSOBJECT "Object", // IDX_OBJECT "Function", // IDX_FUNCTION diff --git a/js/xpconnect/src/XPCWrappedNativeScope.cpp b/js/xpconnect/src/XPCWrappedNativeScope.cpp index 6568cd3135fa..6bbb9ae889f5 100644 --- a/js/xpconnect/src/XPCWrappedNativeScope.cpp +++ b/js/xpconnect/src/XPCWrappedNativeScope.cpp @@ -224,24 +224,6 @@ XPCWrappedNativeScope::ForcePrivilegedComponents() mComponents = new nsXPCComponents(this); } -static bool -DefineSubcomponentProperty(JSContext* aCx, - HandleObject aGlobal, - nsISupports* aSubcomponent, - const nsID* aIID, - unsigned int aStringIndex) -{ - RootedValue subcompVal(aCx); - xpcObjectHelper helper(aSubcomponent); - if (!XPCConvert::NativeInterface2JSObject(&subcompVal, helper, - aIID, false, nullptr)) - return false; - if (NS_WARN_IF(!subcompVal.isObject())) - return false; - RootedId id(aCx, XPCJSContext::Get()->GetStringID(aStringIndex)); - return JS_DefinePropertyById(aCx, aGlobal, id, subcompVal, 0); -} - bool XPCWrappedNativeScope::AttachComponentsObject(JSContext* aCx) { @@ -261,30 +243,7 @@ XPCWrappedNativeScope::AttachComponentsObject(JSContext* aCx) attrs |= JSPROP_PERMANENT; RootedId id(aCx, XPCJSContext::Get()->GetStringID(XPCJSContext::IDX_COMPONENTS)); - if (!JS_DefinePropertyById(aCx, global, id, components, attrs)) - return false; - -// _iid can be nullptr if the object implements classinfo. -#define DEFINE_SUBCOMPONENT_PROPERTY(_comp, _type, _iid, _id) \ - nsCOMPtr obj ## _type; \ - if (NS_FAILED(_comp->Get ## _type(getter_AddRefs( obj ## _type )))) \ - return false; \ - if (!DefineSubcomponentProperty(aCx, global, obj ## _type, _iid, \ - XPCJSContext::IDX_ ## _id)) \ - return false; - - DEFINE_SUBCOMPONENT_PROPERTY(mComponents, Interfaces, nullptr, CI) - DEFINE_SUBCOMPONENT_PROPERTY(mComponents, Results, nullptr, CR) - - if (!c) - return true; - - DEFINE_SUBCOMPONENT_PROPERTY(c, Classes, nullptr, CC) - DEFINE_SUBCOMPONENT_PROPERTY(c, Utils, &NS_GET_IID(nsIXPCComponents_Utils), CU) - -#undef DEFINE_SUBCOMPONENT_PROPERTY - - return true; + return JS_DefinePropertyById(aCx, global, id, components, attrs); } static bool diff --git a/js/xpconnect/src/xpcprivate.h b/js/xpconnect/src/xpcprivate.h index fd09932d305f..9ea3b1731c9f 100644 --- a/js/xpconnect/src/xpcprivate.h +++ b/js/xpconnect/src/xpcprivate.h @@ -435,10 +435,6 @@ public: IDX_VALUE , IDX_QUERY_INTERFACE , IDX_COMPONENTS , - IDX_CC , - IDX_CI , - IDX_CR , - IDX_CU , IDX_WRAPPED_JSOBJECT , IDX_OBJECT , IDX_FUNCTION , diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js index c8a6f59bb5ac..e3688a250e36 100644 --- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js +++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js @@ -12,15 +12,11 @@ module.exports = { "BrowserFeedWriter": false, "CSSPrimitiveValue": false, "CSSValueList": false, - "Cc": false, "CheckerboardReportService": false, // Specific to Firefox (Chrome code only). "ChromeUtils": false, "ChromeWorker": false, - "Ci": false, "Components": false, - "Cr": false, - "Cu": false, "DOMRequest": false, "DedicatedWorkerGlobalScope": false, "IDBFileRequest": false, diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js index 9d6b094fb814..7c8db86353a3 100644 --- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js +++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js @@ -18,11 +18,6 @@ module.exports = { "btoa": false, "debug": false, "dump": false, - // These globals are defined in XPCWrappedNativeScope::AttachComponentsObject. - "Cc": false, - "Ci": false, - "Cr": false, - "Cu": false, // These globals are made available via WebIDL files, see ResolveSystemBinding in: // https://searchfox.org/mozilla-central/source/__GENERATED__/dom/bindings/ResolveSystemBinding.cpp "AbortController": false, From e94018c79664cf6530f18dcd8826d14c5e5c665c Mon Sep 17 00:00:00 2001 From: Ian Moody Date: Tue, 30 Jan 2018 14:33:02 +0000 Subject: [PATCH 20/65] Bug 1432630 - Move close-icon rounded corners into SVG. r=dao MozReview-Commit-ID: CP3ZDTUKaBM --HG-- extra : rebase_source : 2475c3aea68a3680bfa5e3e5b6eae3063244d39a --- toolkit/themes/shared/close-icon.inc.css | 1 - toolkit/themes/shared/icons/close.svg | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/toolkit/themes/shared/close-icon.inc.css b/toolkit/themes/shared/close-icon.inc.css index 3698a4ea4c73..9e555db90fec 100644 --- a/toolkit/themes/shared/close-icon.inc.css +++ b/toolkit/themes/shared/close-icon.inc.css @@ -24,5 +24,4 @@ .close-icon > .toolbarbutton-icon { width: 20px; height: 20px; - border-radius: 2px; } diff --git a/toolkit/themes/shared/icons/close.svg b/toolkit/themes/shared/icons/close.svg index 4a00fb0f2dd2..e5eaf5159be6 100644 --- a/toolkit/themes/shared/icons/close.svg +++ b/toolkit/themes/shared/icons/close.svg @@ -2,6 +2,6 @@ - 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/. --> - + From 36120a0978a8617d0b0373ac1a9d0308f22342b2 Mon Sep 17 00:00:00 2001 From: Luke Crouch Date: Tue, 30 Jan 2018 10:59:43 -0600 Subject: [PATCH 21/65] Bug 1432915 - don't save download source url when aIsPrivate r=Ehsan MozReview-Commit-ID: 9mQjwcCtrWg --HG-- extra : rebase_source : 12a587cf3947dfbce07dad4a77bd1559874fb616 --- toolkit/components/jsdownloads/src/DownloadPlatform.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp index fd7c8fbd9b18..b519d33fcfab 100644 --- a/toolkit/components/jsdownloads/src/DownloadPlatform.cpp +++ b/toolkit/components/jsdownloads/src/DownloadPlatform.cpp @@ -167,7 +167,7 @@ nsresult DownloadPlatform::DownloadDone(nsIURI* aSource, nsIURI* aReferrer, nsIF (const UniChar*)path.get(), path.Length()); } - if (pathCFStr) { + if (pathCFStr && !aIsPrivate) { bool isFromWeb = IsURLPossiblyFromWeb(aSource); CFURLRef sourceCFURL = CreateCFURLFromNSIURI(aSource); From ece90c9c662ef904bd6ea7d9bf5cfe5e5a2964cb Mon Sep 17 00:00:00 2001 From: Francois Marier Date: Mon, 29 Jan 2018 15:51:14 -0800 Subject: [PATCH 22/65] Bug 1410522 - Enable download protection on non-official builds too. r=gcp,johannh This reverts the change introduced in bug 1394053. Google has made the download protection lists available to everyone and so we no longer need to restrict the download protection feature to official builds. MozReview-Commit-ID: CQcG5Ip1mDV --HG-- extra : rebase_source : 55ff4f1e5a09e3c83ad9b24b2eb44789834b2357 --- browser/components/preferences/in-content/privacy.xul | 2 -- .../preferences/in-content/tests/browser_security-1.js | 6 +----- .../preferences/in-content/tests/browser_security-2.js | 4 ---- modules/libpref/init/all.js | 4 ---- 4 files changed, 1 insertion(+), 15 deletions(-) diff --git a/browser/components/preferences/in-content/privacy.xul b/browser/components/preferences/in-content/privacy.xul index ece307675564..774f48b88518 100644 --- a/browser/components/preferences/in-content/privacy.xul +++ b/browser/components/preferences/in-content/privacy.xul @@ -620,11 +620,9 @@ class="learnMore text-link">&enableSafeBrowsingLearnMore.label; -#ifdef MOZILLA_OFFICIAL -#endif diff --git a/browser/components/preferences/in-content/tests/browser_security-1.js b/browser/components/preferences/in-content/tests/browser_security-1.js index 518224daddff..a2c4184b7e69 100644 --- a/browser/components/preferences/in-content/tests/browser_security-1.js +++ b/browser/components/preferences/in-content/tests/browser_security-1.js @@ -40,11 +40,7 @@ add_task(async function() { let blockDownloads = doc.getElementById("blockDownloads"); let blockUncommon = doc.getElementById("blockUncommonUnwanted"); let checked = checkbox.checked; - if (!AppConstants.MOZILLA_OFFICIAL) { - is(blockDownloads, undefined, "downloads protection is disabled in un-official builds"); - } else { - is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly"); - } + is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly"); is(checked, val1 && val2, "safebrowsing preference is initialized correctly"); // should be disabled when checked is false (= pref is turned off) diff --git a/browser/components/preferences/in-content/tests/browser_security-2.js b/browser/components/preferences/in-content/tests/browser_security-2.js index 89187d422b4c..fcbe7f86b6ca 100644 --- a/browser/components/preferences/in-content/tests/browser_security-2.js +++ b/browser/components/preferences/in-content/tests/browser_security-2.js @@ -36,10 +36,6 @@ add_task(async function() { let doc = gBrowser.selectedBrowser.contentDocument; let checkbox = doc.getElementById("blockDownloads"); - if (!AppConstants.MOZILLA_OFFICIAL) { - is(checkbox, undefined, "downloads protection is disabled in un-official builds"); - return; - } let blockUncommon = doc.getElementById("blockUncommonUnwanted"); let checked = checkbox.checked; diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 735efa892575..d833cd457d57 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -5450,11 +5450,7 @@ pref("browser.safebrowsing.id", "Firefox"); #endif // Download protection -#ifdef MOZILLA_OFFICIAL pref("browser.safebrowsing.downloads.enabled", true); -#else -pref("browser.safebrowsing.downloads.enabled", false); -#endif pref("browser.safebrowsing.downloads.remote.enabled", true); pref("browser.safebrowsing.downloads.remote.timeout_ms", 10000); pref("browser.safebrowsing.downloads.remote.url", "https://sb-ssl.google.com/safebrowsing/clientreport/download?key=%GOOGLE_API_KEY%"); From 41a1a6c9b066294a42317fc57fd278ae8bb0bb89 Mon Sep 17 00:00:00 2001 From: Tom Ritter Date: Mon, 29 Jan 2018 11:36:19 -0600 Subject: [PATCH 23/65] Bug 1433971 Clean up Assertions.h with respect to Unused Attributes r=froydnj In Bug 1393538 I renamed MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE to MOZ_UNUSED_ATTRIBUTE, moved it out of it's #define depth, and used it in toolkit. I also orphaned a comment. This was wrong. MOZ_UNUSED_ATTRIBUTE was basically identical to MOZ_MAYBE_UNUSED which exists in Attributes.h (because it is an attribute, not an assertion.) Undo that wrong thing: restore MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE to the correct place, have toolkit use the correct macro, and remove MOZ_UNUSED_ATTRIBUTE. MozReview-Commit-ID: 5BWWsXgbm9i --HG-- extra : rebase_source : d07156068c877bf57d400bc6a71e115b7f1aef31 --- mfbt/Assertions.h | 15 +++++++-------- toolkit/xre/nsNativeAppSupportWin.cpp | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/mfbt/Assertions.h b/mfbt/Assertions.h index 2690160e72e5..14d31f4a6298 100644 --- a/mfbt/Assertions.h +++ b/mfbt/Assertions.h @@ -66,12 +66,6 @@ MOZ_END_EXTERN_C # include #endif -#if defined(__GNUC__) -# define MOZ_UNUSED_ATTRIBUTE __attribute__((unused)) -#else -# define MOZ_UNUSED_ATTRIBUTE /* nothing */ -#endif - /* * MOZ_STATIC_ASSERT may be used to assert a condition *at compile time* in C. * In C++11, static_assert is provided by the compiler to the same effect. @@ -96,6 +90,11 @@ MOZ_END_EXTERN_C * triggers compiler warnings with some versions of gcc, so mark the typedefs * as permissibly-unused to disable the warnings. */ +# if defined(__GNUC__) +# define MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) +# else +# define MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE /* nothing */ +# endif # define MOZ_STATIC_ASSERT_GLUE1(x, y) x##y # define MOZ_STATIC_ASSERT_GLUE(x, y) MOZ_STATIC_ASSERT_GLUE1(x, y) # if defined(__SUNPRO_CC) @@ -128,10 +127,10 @@ MOZ_END_EXTERN_C * code. */ # define MOZ_STATIC_ASSERT(cond, reason) \ - typedef int MOZ_STATIC_ASSERT_GLUE(moz_static_assert, __COUNTER__)[(cond) ? 1 : -1] MOZ_UNUSED_ATTRIBUTE + typedef int MOZ_STATIC_ASSERT_GLUE(moz_static_assert, __COUNTER__)[(cond) ? 1 : -1] MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE # else # define MOZ_STATIC_ASSERT(cond, reason) \ - extern void MOZ_STATIC_ASSERT_GLUE(moz_static_assert, __LINE__)(int arg[(cond) ? 1 : -1]) MOZ_UNUSED_ATTRIBUTE + extern void MOZ_STATIC_ASSERT_GLUE(moz_static_assert, __LINE__)(int arg[(cond) ? 1 : -1]) MOZ_STATIC_ASSERT_UNUSED_ATTRIBUTE # endif #define MOZ_STATIC_ASSERT_IF(cond, expr, reason) MOZ_STATIC_ASSERT(!(cond) || (expr), reason) diff --git a/toolkit/xre/nsNativeAppSupportWin.cpp b/toolkit/xre/nsNativeAppSupportWin.cpp index b25df30e1ef2..530c264d81a9 100644 --- a/toolkit/xre/nsNativeAppSupportWin.cpp +++ b/toolkit/xre/nsNativeAppSupportWin.cpp @@ -110,7 +110,7 @@ struct Win32Mutex { // Make sure we release it if we own it. Unlock(); - BOOL rc MOZ_UNUSED_ATTRIBUTE = CloseHandle( mHandle ); + BOOL rc MOZ_MAYBE_UNUSED = CloseHandle( mHandle ); #if MOZ_DEBUG_DDE if ( !rc ) { printf( "CloseHandle error = 0x%08X\n", (int)GetLastError() ); From 299c2a6d5038578a4f76464d4be5b14076fd7002 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 29 Jan 2018 15:31:59 +0100 Subject: [PATCH 24/65] Bug 1433863 - Use client titlebar decorations on GNOME Flashback (former fallback) DE, r=jhorak Also comment existing entries at nsWindow::GetCSDSupportLevel(). MozReview-Commit-ID: 1YzZhv7WrQj --HG-- extra : rebase_source : c1dd1a3452e13e2479afee3c34d396757dae4cfd --- widget/gtk/nsWindow.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp index 58a549a661bf..0e75cc8c5968 100644 --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -6868,12 +6868,17 @@ nsWindow::GetCSDSupportLevel() { const char* currentDesktop = getenv("XDG_CURRENT_DESKTOP"); if (currentDesktop) { - if (strstr(currentDesktop, "GNOME") != nullptr) { + // GNOME Flashback (fallback) + if (strstr(currentDesktop, "GNOME-Flashback:GNOME") != nullptr) { + sCSDSupportLevel = CSD_SUPPORT_FLAT; + // gnome-shell + } else if (strstr(currentDesktop, "GNOME") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FULL; } else if (strstr(currentDesktop, "XFCE") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FLAT; } else if (strstr(currentDesktop, "X-Cinnamon") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FULL; + // KDE Plasma } else if (strstr(currentDesktop, "KDE") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FLAT; } else if (strstr(currentDesktop, "LXDE") != nullptr) { @@ -6884,8 +6889,10 @@ nsWindow::GetCSDSupportLevel() { sCSDSupportLevel = CSD_SUPPORT_NONE; } else if (strstr(currentDesktop, "MATE") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FLAT; + // Ubuntu Unity } else if (strstr(currentDesktop, "Unity") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FLAT; + // Elementary OS } else if (strstr(currentDesktop, "Pantheon") != nullptr) { sCSDSupportLevel = CSD_SUPPORT_FULL; } else if (strstr(currentDesktop, "LXQt") != nullptr) { From 7769fb3aedad479d7b9a76082384bf83bde1f506 Mon Sep 17 00:00:00 2001 From: "Byron Campen [:bwc]" Date: Fri, 19 Jan 2018 09:41:22 -0600 Subject: [PATCH 25/65] Bug 1431755 - Part 1: Add a variant of NS_GetCurrentThread that does not auto-create an nsIThread. r=froydnj MozReview-Commit-ID: 9naTxaANX4u --HG-- extra : rebase_source : 8ab21e09a6c154b90bd233212680fa93a96e0106 --- xpcom/threads/nsThreadManager.cpp | 6 ++++++ xpcom/threads/nsThreadManager.h | 6 +++++- xpcom/threads/nsThreadUtils.cpp | 10 ++++++++++ xpcom/threads/nsThreadUtils.h | 17 ++++++++++++----- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/xpcom/threads/nsThreadManager.cpp b/xpcom/threads/nsThreadManager.cpp index 40271aaa8b99..5816bf86f1d7 100644 --- a/xpcom/threads/nsThreadManager.cpp +++ b/xpcom/threads/nsThreadManager.cpp @@ -425,6 +425,12 @@ nsThreadManager::GetCurrentThread() return thread.get(); // reference held in TLS } +bool +nsThreadManager::IsNSThread() const +{ + return mInitialized && !!PR_GetThreadPrivate(mCurThreadIndex); +} + NS_IMETHODIMP nsThreadManager::NewThread(uint32_t aCreationFlags, uint32_t aStackSize, diff --git a/xpcom/threads/nsThreadManager.h b/xpcom/threads/nsThreadManager.h index 2518616143f9..326bbc6ebfdd 100644 --- a/xpcom/threads/nsThreadManager.h +++ b/xpcom/threads/nsThreadManager.h @@ -39,9 +39,13 @@ public: void UnregisterCurrentThread(nsThread& aThread); // Returns the current thread. Returns null if OOM or if ThreadManager isn't - // initialized. + // initialized. Creates the nsThread if one does not exist yet. nsThread* GetCurrentThread(); + // Returns true iff the currently running thread has an nsThread associated + // with it (ie; whether this is a thread that we can dispatch runnables to). + bool IsNSThread() const; + // CreateCurrentThread sets up an nsThread for the current thread. It uses the // event queue and main thread flags passed in. It should only be called once // for the current thread. After it returns, GetCurrentThread() will return diff --git a/xpcom/threads/nsThreadUtils.cpp b/xpcom/threads/nsThreadUtils.cpp index 3397f718dff2..e5827cc8e276 100644 --- a/xpcom/threads/nsThreadUtils.cpp +++ b/xpcom/threads/nsThreadUtils.cpp @@ -530,6 +530,16 @@ NS_GetCurrentThread() { return nsThreadManager::get().GetCurrentThread(); } + + +nsIThread* +NS_GetCurrentThreadNoCreate() +{ + if (nsThreadManager::get().IsNSThread()) { + return NS_GetCurrentThread(); + } + return nullptr; +} #endif // nsThreadPoolNaming diff --git a/xpcom/threads/nsThreadUtils.h b/xpcom/threads/nsThreadUtils.h index 2a78ac3abe7d..1bda41cb1ba3 100644 --- a/xpcom/threads/nsThreadUtils.h +++ b/xpcom/threads/nsThreadUtils.h @@ -74,7 +74,7 @@ NS_NewNamedThread(const char (&aName)[LEN], } /** - * Get a reference to the current thread. + * Get a reference to the current thread, creating it if it does not exist yet. * * @param aResult * The resulting nsIThread object. @@ -368,12 +368,19 @@ do_GetMainThread() //----------------------------------------------------------------------------- #ifdef MOZILLA_INTERNAL_API -// Fast access to the current thread. Do not release the returned pointer! If -// you want to use this pointer from some other thread, then you will need to -// AddRef it. Otherwise, you should only consider this pointer valid from code -// running on the current thread. +// Fast access to the current thread. Will create an nsIThread if one does not +// exist already! Do not release the returned pointer! If you want to use this +// pointer from some other thread, then you will need to AddRef it. Otherwise, +// you should only consider this pointer valid from code running on the current +// thread. extern nsIThread* NS_GetCurrentThread(); +// Exactly the same as NS_GetCurrentThread, except it will not create an +// nsThread if one does not exist yet. This is useful in cases where you have +// code that runs on threads that may or may not not be driven by an nsThread +// event loop, and wish to avoid inadvertently creating a superfluous nsThread. +extern nsIThread* NS_GetCurrentThreadNoCreate(); + /** * Set the name of the current thread. Prefer this function over * PR_SetCurrentThreadName() if possible. The name will also be included in the From 44f6431bb0ecc2f26b296d934f4ca06412cc484e Mon Sep 17 00:00:00 2001 From: "Byron Campen [:bwc]" Date: Fri, 19 Jan 2018 09:42:47 -0600 Subject: [PATCH 26/65] Bug 1431755 - Part 2: Teach GeckoProfiler to profile responsiveness on nsIThreads. r=mstange MozReview-Commit-ID: AqpNf9pDzrg --HG-- extra : rebase_source : d873d9f05115004417b4c0d98dd8dceaef263172 --- tools/profiler/core/ThreadInfo.cpp | 6 +- tools/profiler/core/ThreadInfo.h | 7 +- tools/profiler/core/platform.cpp | 9 +-- tools/profiler/gecko/ThreadResponsiveness.cpp | 78 +++++++++++++------ tools/profiler/gecko/ThreadResponsiveness.h | 3 +- .../tests/gtest/ThreadProfileTest.cpp | 16 +++- 6 files changed, 78 insertions(+), 41 deletions(-) diff --git a/tools/profiler/core/ThreadInfo.cpp b/tools/profiler/core/ThreadInfo.cpp index a4d462a3dbc4..aabd2c01a36a 100644 --- a/tools/profiler/core/ThreadInfo.cpp +++ b/tools/profiler/core/ThreadInfo.cpp @@ -22,10 +22,12 @@ ThreadInfo::ThreadInfo(const char* aName, int aThreadId, bool aIsMainThread, + nsIEventTarget* aThread, void* aStackTop) : mName(strdup(aName)) , mRegisterTime(TimeStamp::Now()) , mIsMainThread(aIsMainThread) + , mThread(aThread) , mRacyInfo(mozilla::MakeNotNull(aThreadId)) , mPlatformData(AllocPlatformData(aThreadId)) , mStackTop(aStackTop) @@ -60,9 +62,7 @@ ThreadInfo::StartProfiling() { mIsBeingProfiled = true; mRacyInfo->ReinitializeOnResume(); - if (mIsMainThread) { - mResponsiveness.emplace(); - } + mResponsiveness.emplace(mThread, mIsMainThread); } void diff --git a/tools/profiler/core/ThreadInfo.h b/tools/profiler/core/ThreadInfo.h index b16418380c8f..4fef7ad13f55 100644 --- a/tools/profiler/core/ThreadInfo.h +++ b/tools/profiler/core/ThreadInfo.h @@ -175,7 +175,7 @@ class ThreadInfo final { public: ThreadInfo(const char* aName, int aThreadId, bool aIsMainThread, - void* aStackTop); + nsIEventTarget* aThread, void* aStackTop); ~ThreadInfo(); @@ -207,6 +207,7 @@ private: mozilla::TimeStamp mRegisterTime; mozilla::TimeStamp mUnregisterTime; const bool mIsMainThread; + nsCOMPtr mThread; // The thread's RacyThreadInfo. This is an owning pointer. It could be an // inline member, but we don't do that because RacyThreadInfo is quite large @@ -238,7 +239,7 @@ public: ThreadResponsiveness* GetThreadResponsiveness() { ThreadResponsiveness* responsiveness = mResponsiveness.ptrOr(nullptr); - MOZ_ASSERT(!!responsiveness == (mIsMainThread && mIsBeingProfiled)); + MOZ_ASSERT(!responsiveness || mIsBeingProfiled); return responsiveness; } @@ -323,7 +324,7 @@ private: mozilla::UniquePtr mSavedStreamedMarkers; mozilla::Maybe mUniqueStacks; - // This is only used for the main thread. + // This is used only for nsIThreads. mozilla::Maybe mResponsiveness; public: diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp index f1f5713f51b7..22b0a8b298b0 100644 --- a/tools/profiler/core/platform.cpp +++ b/tools/profiler/core/platform.cpp @@ -2003,10 +2003,7 @@ SamplerThread::Run() } } - // We only track responsiveness for the main thread. - if (info->IsMainThread()) { - info->GetThreadResponsiveness()->Update(); - } + info->GetThreadResponsiveness()->Update(); // We only get the memory measurements once for all live threads. int64_t rssMemory = 0; @@ -2189,7 +2186,9 @@ locked_register_thread(PSLockRef aLock, const char* aName, void* aStackTop) } ThreadInfo* info = new ThreadInfo(aName, Thread::GetCurrentId(), - NS_IsMainThread(), aStackTop); + NS_IsMainThread(), + NS_GetCurrentThreadNoCreate(), + aStackTop); TLSInfo::SetInfo(aLock, info); if (ActivePS::Exists(aLock) && ActivePS::ShouldProfileThread(aLock, info)) { diff --git a/tools/profiler/gecko/ThreadResponsiveness.cpp b/tools/profiler/gecko/ThreadResponsiveness.cpp index c7d36655a9ee..2e95e0727aab 100644 --- a/tools/profiler/gecko/ThreadResponsiveness.cpp +++ b/tools/profiler/gecko/ThreadResponsiveness.cpp @@ -16,11 +16,13 @@ using namespace mozilla; class CheckResponsivenessTask : public Runnable, public nsITimerCallback { public: - CheckResponsivenessTask() + explicit CheckResponsivenessTask(nsIEventTarget* aThread, bool aIsMainThread) : Runnable("CheckResponsivenessTask") , mStartToPrevTracer_us(uint64_t(profiler_time() * 1000.0)) , mStop(false) , mHasEverBeenSuccessfullyDispatched(false) + , mThread(aThread) + , mIsMainThread(aIsMainThread) { } @@ -34,36 +36,55 @@ public: // Must be called from the same thread every time. Call that the update // thread, because it's the thread that ThreadResponsiveness::Update() is // called on. In reality it's the profiler's sampler thread. - void DoFirstDispatchIfNeeded() + bool DoFirstDispatchIfNeeded() { if (mHasEverBeenSuccessfullyDispatched) { - return; + return true; } - // We can hit this code very early during startup, at a time where the - // thread manager hasn't been initialized with the main thread yet. - // In that case, calling SystemGroup::Dispatch would assert, so we make - // sure that NS_GetMainThread succeeds before attempting to dispatch this - // runnable. - nsCOMPtr mainThread; - nsresult rv = NS_GetMainThread(getter_AddRefs(mainThread)); - if (NS_SUCCEEDED(rv) && mainThread) { - rv = SystemGroup::Dispatch(TaskCategory::Other, do_AddRef(this)); + // The profiler for the main thread is set up before the thread manager is, + // meaning we can't get the nsIThread when the CheckResponsivenessTask is + // constructed. We _do_ know whether it is the main thread at that time, + // however, so here's the workaround. We can still hit this code before the + // thread manager is initted, in which case we won't try to record + // responsiveness, which is fine because there's no event queue to check + // responsiveness on anyway. + if (mIsMainThread) { + if (!mThread) { + nsCOMPtr temp; + NS_GetMainThread(getter_AddRefs(temp)); + mThread = temp.forget(); + } + + if (mThread) { + nsresult rv = SystemGroup::Dispatch(TaskCategory::Other, do_AddRef(this)); + if (NS_SUCCEEDED(rv)) { + mHasEverBeenSuccessfullyDispatched = true; + } + } + } else if (mThread) { + nsresult rv = mThread->Dispatch(this, nsIThread::NS_DISPATCH_NORMAL); if (NS_SUCCEEDED(rv)) { mHasEverBeenSuccessfullyDispatched = true; } } + + return mHasEverBeenSuccessfullyDispatched; } - // Can only run on the main thread. + // Only runs on the thread being profiled NS_IMETHOD Run() override { mStartToPrevTracer_us = uint64_t(profiler_time() * 1000.0); if (!mStop) { if (!mTimer) { - mTimer = NS_NewTimer( - SystemGroup::EventTargetFor(TaskCategory::Other)); + if (mIsMainThread) { + mTimer = NS_NewTimer( + SystemGroup::EventTargetFor(TaskCategory::Other)); + } else { + mTimer = NS_NewTimer(); + } } mTimer->InitWithCallback(this, 16, nsITimer::TYPE_ONE_SHOT); } @@ -71,11 +92,10 @@ public: return NS_OK; } - // Main thread only + // Should always fire on the thread being profiled NS_IMETHOD Notify(nsITimer* aTimer) final override { - SystemGroup::Dispatch(TaskCategory::Other, - do_AddRef(this)); + mThread->Dispatch(this, nsIThread::NS_DISPATCH_NORMAL); return NS_OK; } @@ -92,31 +112,37 @@ public: NS_DECL_ISUPPORTS_INHERITED private: - // The timer that's responsible for redispatching this event to the main - // thread. This field is only accessed on the main thread. + // The timer that's responsible for redispatching this event to the thread we + // are profiling (ie; mThread). Only touched on mThread. nsCOMPtr mTimer; // The time (in integer microseconds since process startup) at which this // event was last processed (Run() was last called). - // This field is written on the main thread and read on the update thread. + // This field is written on mThread and read on the update thread. // This is stored as integer microseconds instead of double milliseconds // because Atomic is not available. Atomic mStartToPrevTracer_us; // Whether we should stop redispatching this event once the timer fires the // next time. Set to true by any thread when the profiler is stopped; read on - // the main thread. + // mThread. Atomic mStop; // Only accessed on the update thread. bool mHasEverBeenSuccessfullyDispatched; + + // The thread that we're profiling. Use nsIEventTarget to allow for checking + // responsiveness on non-nsIThreads someday. + nsCOMPtr mThread; + bool mIsMainThread; }; NS_IMPL_ISUPPORTS_INHERITED(CheckResponsivenessTask, mozilla::Runnable, nsITimerCallback) -ThreadResponsiveness::ThreadResponsiveness() - : mActiveTracerEvent(new CheckResponsivenessTask()) +ThreadResponsiveness::ThreadResponsiveness(nsIEventTarget* aThread, + bool aIsMainThread) + : mActiveTracerEvent(new CheckResponsivenessTask(aThread, aIsMainThread)) { MOZ_COUNT_CTOR(ThreadResponsiveness); } @@ -130,7 +156,9 @@ ThreadResponsiveness::~ThreadResponsiveness() void ThreadResponsiveness::Update() { - mActiveTracerEvent->DoFirstDispatchIfNeeded(); + if (!mActiveTracerEvent->DoFirstDispatchIfNeeded()) { + return; + } mStartToPrevTracer_ms = Some(mActiveTracerEvent->GetStartToPrevTracer_ms()); } diff --git a/tools/profiler/gecko/ThreadResponsiveness.h b/tools/profiler/gecko/ThreadResponsiveness.h index c0dfcd38335b..c07e7c5f5da2 100644 --- a/tools/profiler/gecko/ThreadResponsiveness.h +++ b/tools/profiler/gecko/ThreadResponsiveness.h @@ -12,11 +12,12 @@ #include "mozilla/TimeStamp.h" class CheckResponsivenessTask; +class nsIEventTarget; // This class should only be used for the main thread. class ThreadResponsiveness { public: - explicit ThreadResponsiveness(); + explicit ThreadResponsiveness(nsIEventTarget* aThread, bool aIsMainThread); ~ThreadResponsiveness(); diff --git a/tools/profiler/tests/gtest/ThreadProfileTest.cpp b/tools/profiler/tests/gtest/ThreadProfileTest.cpp index 598c85e32323..f76b7aca8143 100644 --- a/tools/profiler/tests/gtest/ThreadProfileTest.cpp +++ b/tools/profiler/tests/gtest/ThreadProfileTest.cpp @@ -12,14 +12,18 @@ // Make sure we can initialize our thread profile TEST(ThreadProfile, Initialization) { int tid = 1000; - ThreadInfo info("testThread", tid, true, nullptr); + nsCOMPtr mainThread; + NS_GetMainThread(getter_AddRefs(mainThread)); + ThreadInfo info("testThread", tid, true, mainThread, nullptr); info.StartProfiling(); } // Make sure we can record one entry and read it TEST(ThreadProfile, InsertOneEntry) { int tid = 1000; - ThreadInfo info("testThread", tid, true, nullptr); + nsCOMPtr mainThread; + NS_GetMainThread(getter_AddRefs(mainThread)); + ThreadInfo info("testThread", tid, true, mainThread, nullptr); auto pb = MakeUnique(10); pb->AddEntry(ProfileBufferEntry::Time(123.1)); ASSERT_TRUE(pb->mEntries != nullptr); @@ -30,7 +34,9 @@ TEST(ThreadProfile, InsertOneEntry) { // See if we can insert some entries TEST(ThreadProfile, InsertEntriesNoWrap) { int tid = 1000; - ThreadInfo info("testThread", tid, true, nullptr); + nsCOMPtr mainThread; + NS_GetMainThread(getter_AddRefs(mainThread)); + ThreadInfo info("testThread", tid, true, mainThread, nullptr); auto pb = MakeUnique(100); int test_size = 50; for (int i = 0; i < test_size; i++) { @@ -51,7 +57,9 @@ TEST(ThreadProfile, InsertEntriesWrap) { // we can fit only 24 entries in this buffer because of the empty slot int entries = 24; int buffer_size = entries + 1; - ThreadInfo info("testThread", tid, true, nullptr); + nsCOMPtr mainThread; + NS_GetMainThread(getter_AddRefs(mainThread)); + ThreadInfo info("testThread", tid, true, mainThread, nullptr); auto pb = MakeUnique(buffer_size); int test_size = 43; for (int i = 0; i < test_size; i++) { From da943dc5175f06936293c12a1dcf524aba643f06 Mon Sep 17 00:00:00 2001 From: "Byron Campen [:bwc]" Date: Fri, 19 Jan 2018 10:03:35 -0600 Subject: [PATCH 27/65] Bug 1431755 - Part 3: Remove a redundant dispatch that was causing us to record the duration of _two_ dispatches instead of one. r=mstange MozReview-Commit-ID: E8lSvMbGjt6 --HG-- extra : rebase_source : b303d66dfedcaa272cd851563a1a7585c4779fac --- tools/profiler/gecko/ThreadResponsiveness.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/profiler/gecko/ThreadResponsiveness.cpp b/tools/profiler/gecko/ThreadResponsiveness.cpp index 2e95e0727aab..cb36137ebcdf 100644 --- a/tools/profiler/gecko/ThreadResponsiveness.cpp +++ b/tools/profiler/gecko/ThreadResponsiveness.cpp @@ -72,9 +72,16 @@ public: return mHasEverBeenSuccessfullyDispatched; } - // Only runs on the thread being profiled + // Only runs on the thread being profiled. Always called via a thread + // dispatch, so inherently functions as a responsiveness statistic. NS_IMETHOD Run() override { + // This approach means that the 16ms delay in the timer below, _plus_ any + // additional delays in the TimerThread itself, become part of the + // responsiveness statistic for this thread. What we should probably be + // doing is recording responsiveness only when we have dispatched (but not + // executed) a call to this function, either because of a call to + // DoFirstDispatchIfNeeded, or a call to Notify. mStartToPrevTracer_us = uint64_t(profiler_time() * 1000.0); if (!mStop) { @@ -95,7 +102,7 @@ public: // Should always fire on the thread being profiled NS_IMETHOD Notify(nsITimer* aTimer) final override { - mThread->Dispatch(this, nsIThread::NS_DISPATCH_NORMAL); + Run(); return NS_OK; } From 15e66f33ed36aca43b8d5806323278625bd3928b Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Tue, 30 Jan 2018 16:55:20 +0000 Subject: [PATCH 28/65] Bug 1434332 - Add a checklist for adding new linters to the tree. r=ahal MozReview-Commit-ID: FnYIXS5oZvW --HG-- extra : rebase_source : 2eba61a24a4ca313f3c1d65adef454e34c57bdb5 --- tools/lint/docs/create.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/lint/docs/create.rst b/tools/lint/docs/create.rst index 6de9bebd150f..3dbc5d39fc2b 100644 --- a/tools/lint/docs/create.rst +++ b/tools/lint/docs/create.rst @@ -1,6 +1,20 @@ Adding a New Linter to the Tree =============================== +Linter Requirements +------------------- + +For a linter to be integrated into the mozilla-central tree, it needs to have: + +* Any required dependencies should be installed as part of ``./mach bootstrap`` +* A ``./mach lint`` interface +* Running ``./mach lint`` command must pass (note, linters can be disabled for individual directories) +* Taskcluster/Treeherder integration +* In tree documentation (under ``tools/lint/docs``) to give a basic summary, links and any other useful information + +Linter Basics +------------- + A linter is a yaml file with a ``.yml`` extension. Depending on how the type of linter, there may be python code alongside the definition, pointed to by the 'payload' attribute. From bbf7e5b807fbaac8f1efb86e82b521333af4a394 Mon Sep 17 00:00:00 2001 From: Connor Brewster Date: Tue, 30 Jan 2018 14:14:04 -0600 Subject: [PATCH 29/65] servo: Merge #19031 - Implement initial part of history.state (from cbrewster:push_replace_state_early); r=asajeffrey Implements maintaining the current history state. Tracking history state in the session history will be done as a followup. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). - [X] There are tests for these changes OR - [ ] These changes do not require tests because _____ Source-Repo: https://github.com/servo/servo Source-Revision: 469dc84b6ea20b6d378771b008101b49f34e1ad6 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : ee1b20d80072286a54c216d7153a3d6fcd2239d8 --- servo/components/script/dom/history.rs | 94 ++++++++++++++++++- .../script/dom/webidls/History.webidl | 12 +-- 2 files changed, 99 insertions(+), 7 deletions(-) diff --git a/servo/components/script/dom/history.rs b/servo/components/script/dom/history.rs index 71e8c0c7e4e6..17ee0d29cb6c 100644 --- a/servo/components/script/dom/history.rs +++ b/servo/components/script/dom/history.rs @@ -10,25 +10,38 @@ use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::inheritance::Castable; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::root::{Dom, DomRoot}; +use dom::bindings::str::{DOMString, USVString}; +use dom::bindings::structuredclone::StructuredCloneData; use dom::globalscope::GlobalScope; use dom::window::Window; use dom_struct::dom_struct; use ipc_channel::ipc; +use js::jsapi::{HandleValue, Heap, JSContext}; +use js::jsval::{JSVal, NullValue, UndefinedValue}; use msg::constellation_msg::TraversalDirection; use script_traits::ScriptMsg; +enum PushOrReplace { + Push, + Replace, +} + // https://html.spec.whatwg.org/multipage/#the-history-interface #[dom_struct] pub struct History { reflector_: Reflector, window: Dom, + state: Heap, } impl History { pub fn new_inherited(window: &Window) -> History { + let state = Heap::default(); + state.set(NullValue()); History { reflector_: Reflector::new(), window: Dom::from_ref(&window), + state: state, } } @@ -48,9 +61,68 @@ impl History { let _ = self.window.upcast::().script_to_constellation_chan().send(msg); Ok(()) } + + // https://html.spec.whatwg.org/multipage/#dom-history-pushstate + // https://html.spec.whatwg.org/multipage/#dom-history-replacestate + fn push_or_replace_state(&self, + cx: *mut JSContext, + data: HandleValue, + _title: DOMString, + _url: Option, + _push_or_replace: PushOrReplace) -> ErrorResult { + // Step 1 + let document = self.window.Document(); + + // Step 2 + if !document.is_fully_active() { + return Err(Error::Security); + } + + // TODO: Step 3 Optionally abort these steps + // https://github.com/servo/servo/issues/19159 + + // TODO: Step 4 + + // Step 5 + let serialized_data = StructuredCloneData::write(cx, data)?; + + // TODO: Steps 6-7 Url Handling + // https://github.com/servo/servo/issues/19157 + + // TODO: Step 8 Push/Replace session history entry + // https://github.com/servo/servo/issues/19156 + + // TODO: Step 9 Update current entry to represent a GET request + // https://github.com/servo/servo/issues/19156 + + // TODO: Step 10 Set document's URL to new URL + // https://github.com/servo/servo/issues/19157 + + // Step 11 + let global_scope = self.window.upcast::(); + rooted!(in(cx) let mut state = UndefinedValue()); + serialized_data.read(&global_scope, state.handle_mut()); + + // Step 12 + self.state.set(state.get()); + + // TODO: Step 13 Update Document's latest entry to current entry + // https://github.com/servo/servo/issues/19158 + + Ok(()) + } } impl HistoryMethods for History { + // https://html.spec.whatwg.org/multipage/#dom-history-state + #[allow(unsafe_code)] + unsafe fn GetState(&self, _cx: *mut JSContext) -> Fallible { + if !self.window.Document().is_fully_active() { + return Err(Error::Security); + } + Ok(self.state.get()) + } + // https://html.spec.whatwg.org/multipage/#dom-history-length fn GetLength(&self) -> Fallible { if !self.window.Document().is_fully_active() { @@ -60,7 +132,7 @@ impl HistoryMethods for History { let msg = ScriptMsg::JointSessionHistoryLength(sender); let _ = self.window.upcast::().script_to_constellation_chan().send(msg); Ok(recv.recv().unwrap()) -} + } // https://html.spec.whatwg.org/multipage/#dom-history-go fn Go(&self, delta: i32) -> ErrorResult { @@ -84,4 +156,24 @@ impl HistoryMethods for History { fn Forward(&self) -> ErrorResult { self.traverse_history(TraversalDirection::Forward(1)) } + + // https://html.spec.whatwg.org/multipage/#dom-history-pushstate + #[allow(unsafe_code)] + unsafe fn PushState(&self, + cx: *mut JSContext, + data: HandleValue, + title: DOMString, + url: Option) -> ErrorResult { + self.push_or_replace_state(cx, data, title, url, PushOrReplace::Push) + } + + // https://html.spec.whatwg.org/multipage/#dom-history-replacestate + #[allow(unsafe_code)] + unsafe fn ReplaceState(&self, + cx: *mut JSContext, + data: HandleValue, + title: DOMString, + url: Option) -> ErrorResult { + self.push_or_replace_state(cx, data, title, url, PushOrReplace::Replace) + } } diff --git a/servo/components/script/dom/webidls/History.webidl b/servo/components/script/dom/webidls/History.webidl index d5b729961824..f22b3ab882e3 100644 --- a/servo/components/script/dom/webidls/History.webidl +++ b/servo/components/script/dom/webidls/History.webidl @@ -11,16 +11,16 @@ interface History { readonly attribute unsigned long length; // [Throws] // attribute ScrollRestoration scrollRestoration; - // [Throws] - // readonly attribute any state; + [Throws] + readonly attribute any state; [Throws] void go(optional long delta = 0); [Throws] void back(); [Throws] void forward(); - // [Throws] - // void pushState(any data, DOMString title, optional USVString? url = null); - // [Throws] - // void replaceState(any data, DOMString title, optional USVString? url = null); + [Throws] + void pushState(any data, DOMString title, optional USVString? url = null); + [Throws] + void replaceState(any data, DOMString title, optional USVString? url = null); }; From e6de0d9e04974c9847a6ecb70421a0db1ccd0687 Mon Sep 17 00:00:00 2001 From: Chris Manchester Date: Mon, 29 Jan 2018 15:44:58 -0800 Subject: [PATCH 30/65] Bug 1434125 - Add xpidl + rust command line arguments and output dependencies to the tup backend. r=mshal MozReview-Commit-ID: 9DsymfiOB8N --HG-- extra : rebase_source : 225607b6dc99cc22f50b0db8a1f8b6bbf46d64ea --- python/mozbuild/mozbuild/backend/tup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/python/mozbuild/mozbuild/backend/tup.py b/python/mozbuild/mozbuild/backend/tup.py index caabbd160155..697fb91b7837 100644 --- a/python/mozbuild/mozbuild/backend/tup.py +++ b/python/mozbuild/mozbuild/backend/tup.py @@ -465,6 +465,7 @@ class TupOnly(CommonBackend, PartialBackend): '--cache-dir', '$(IDL_PARSER_CACHE_DIR)', '$(DIST)/idl', '$(DIST)/include', + '$(DIST)/xpcrs', '$(MOZ_OBJ_ROOT)/%s/components' % dest, module, ] @@ -472,6 +473,8 @@ class TupOnly(CommonBackend, PartialBackend): outputs = ['$(MOZ_OBJ_ROOT)/%s/components/%s.xpt' % (dest, module)] outputs.extend(['$(MOZ_OBJ_ROOT)/dist/include/%s.h' % f for f in sorted(idls)]) + outputs.extend(['$(MOZ_OBJ_ROOT)/dist/xpcrs/rt/%s.rs' % f for f in sorted(idls)]) + outputs.extend(['$(MOZ_OBJ_ROOT)/dist/xpcrs/bt/%s.rs' % f for f in sorted(idls)]) backend_file.rule( inputs=[ '$(MOZ_OBJ_ROOT)/xpcom/idl-parser/xpidl/xpidllex.py', From e049cf7de6067d524f61d1f5835e9b85ba093e0c Mon Sep 17 00:00:00 2001 From: Matthew Noorenberghe Date: Mon, 29 Jan 2018 14:50:06 -0800 Subject: [PATCH 31/65] Bug 1427950 - Add re-render button to PaymentRequest debugging panel. r=jaws This is useful to ensure that the UI state is properly represented in the store. If the re-rendering causes visible changes then that means some state is not part of the store or is not being rendered properly. MozReview-Commit-ID: 3J5rKWCTMAj --HG-- extra : rebase_source : d13f35010909a804d496f6da6266cb2fb6e0e56b --- toolkit/components/payments/jar.mn | 1 + toolkit/components/payments/res/debugging.css | 7 +++++++ toolkit/components/payments/res/debugging.html | 4 ++++ toolkit/components/payments/res/debugging.js | 4 ++++ toolkit/components/payments/res/paymentRequest.xhtml | 5 ++++- 5 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 toolkit/components/payments/res/debugging.css diff --git a/toolkit/components/payments/jar.mn b/toolkit/components/payments/jar.mn index c4088a8cab5c..dee145f8d12e 100644 --- a/toolkit/components/payments/jar.mn +++ b/toolkit/components/payments/jar.mn @@ -13,6 +13,7 @@ toolkit.jar: res/payments/components/ (res/components/*.css) res/payments/components/ (res/components/*.js) res/payments/containers/ (res/containers/*.js) + res/payments/debugging.css (res/debugging.css) res/payments/debugging.html (res/debugging.html) res/payments/debugging.js (res/debugging.js) res/payments/mixins/ (res/mixins/*.js) diff --git a/toolkit/components/payments/res/debugging.css b/toolkit/components/payments/res/debugging.css new file mode 100644 index 000000000000..02410a1395c2 --- /dev/null +++ b/toolkit/components/payments/res/debugging.css @@ -0,0 +1,7 @@ +/* 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/. */ + +h1 { + font-size: 1em; +} diff --git a/toolkit/components/payments/res/debugging.html b/toolkit/components/payments/res/debugging.html index 826ec4ce32a2..2b8219cb714d 100644 --- a/toolkit/components/payments/res/debugging.html +++ b/toolkit/components/payments/res/debugging.html @@ -6,14 +6,18 @@ +
                                                                                                                                                                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                                                                                                                                                                  Requests

                                                                                                                                                                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                                                                                                                                                                  Addresses

                                                                                                                                                                                                                                                                                                                                                                                  diff --git a/toolkit/components/payments/res/debugging.js b/toolkit/components/payments/res/debugging.js index 0d7a4f1dd3c8..32ade81ad458 100644 --- a/toolkit/components/payments/res/debugging.js +++ b/toolkit/components/payments/res/debugging.js @@ -152,6 +152,10 @@ let buttonActions = { window.parent.location.reload(true); }, + rerender() { + requestStore.setState({}); + }, + setAddresses1() { requestStore.setState({savedAddresses: ADDRESSES_1}); }, diff --git a/toolkit/components/payments/res/paymentRequest.xhtml b/toolkit/components/payments/res/paymentRequest.xhtml index 8fe13bd267e2..9c82e64142d7 100644 --- a/toolkit/components/payments/res/paymentRequest.xhtml +++ b/toolkit/components/payments/res/paymentRequest.xhtml @@ -61,7 +61,10 @@ - + From 24b32b81e05931b6abc7dc06a51414df203283bd Mon Sep 17 00:00:00 2001 From: Matthew Noorenberghe Date: Mon, 29 Jan 2018 19:50:51 -0800 Subject: [PATCH 32/65] Bug 1427950 - Have setStateFromParent handle removing deleted GUIDs from the "selected" keys. r=jaws MozReview-Commit-ID: 3zD2XLkIj6n --HG-- extra : rebase_source : 7d3385f47c47c668d19e795499f468204446d692 --- .../payments/res/containers/payment-dialog.js | 24 +++++++++++++++++++ toolkit/components/payments/res/debugging.js | 11 ++++++--- .../res/mixins/PaymentStateSubscriberMixin.js | 2 ++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/toolkit/components/payments/res/containers/payment-dialog.js b/toolkit/components/payments/res/containers/payment-dialog.js index 1f640316ef08..564136e04fe2 100644 --- a/toolkit/components/payments/res/containers/payment-dialog.js +++ b/toolkit/components/payments/res/containers/payment-dialog.js @@ -80,6 +80,30 @@ class PaymentDialog extends PaymentStateSubscriberMixin(HTMLElement) { */ setStateFromParent(state) { this.requestStore.setState(state); + + // Check if any foreign-key constraints were invalidated. + let { + savedAddresses, + savedBasicCards, + selectedPaymentCard, + selectedShippingAddress, + } = this.requestStore.getState(); + + // Ensure `selectedShippingAddress` never refers to a deleted address and refers + // to an address if one exists. + if (!savedAddresses[selectedShippingAddress]) { + this.requestStore.setState({ + selectedShippingAddress: Object.keys(savedAddresses)[0] || null, + }); + } + + // Ensure `selectedPaymentCard` never refers to a deleted payment card and refers + // to a payment card if one exists. + if (!savedBasicCards[selectedPaymentCard]) { + this.requestStore.setState({ + selectedPaymentCard: Object.keys(savedBasicCards)[0] || null, + }); + } } render(state) { diff --git a/toolkit/components/payments/res/debugging.js b/toolkit/components/payments/res/debugging.js index 32ade81ad458..dee5603b7a14 100644 --- a/toolkit/components/payments/res/debugging.js +++ b/toolkit/components/payments/res/debugging.js @@ -2,7 +2,10 @@ * 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/. */ -const requestStore = window.parent.document.querySelector("payment-dialog").requestStore; +const paymentDialog = window.parent.document.querySelector("payment-dialog"); +// The requestStore should be manipulated for most changes but autofill storage changes +// happen through setStateFromParent which includes some consistency checks. +const requestStore = paymentDialog.requestStore; let REQUEST_1 = { tabId: 9, @@ -136,7 +139,9 @@ let buttonActions = { delete1Address() { let savedAddresses = Object.assign({}, requestStore.getState().savedAddresses); delete savedAddresses[Object.keys(savedAddresses)[0]]; - requestStore.setState({ + // Use setStateFromParent since it ensures there is no dangling + // `selectedShippingAddress` foreign key (FK) reference. + paymentDialog.setStateFromParent({ savedAddresses, }); }, @@ -157,7 +162,7 @@ let buttonActions = { }, setAddresses1() { - requestStore.setState({savedAddresses: ADDRESSES_1}); + paymentDialog.setStateFromParent({savedAddresses: ADDRESSES_1}); }, setRequest1() { diff --git a/toolkit/components/payments/res/mixins/PaymentStateSubscriberMixin.js b/toolkit/components/payments/res/mixins/PaymentStateSubscriberMixin.js index 7827003afe35..5d8892e8ce85 100644 --- a/toolkit/components/payments/res/mixins/PaymentStateSubscriberMixin.js +++ b/toolkit/components/payments/res/mixins/PaymentStateSubscriberMixin.js @@ -36,6 +36,8 @@ let requestStore = new PaymentsStore({ shippingType: "shipping", }, }, + selectedPaymentCard: null, + selectedShippingAddress: null, savedAddresses: {}, savedBasicCards: {}, }); From 9f020cd35367c88fd330526ede0dcffa8c44d713 Mon Sep 17 00:00:00 2001 From: Matthew Noorenberghe Date: Mon, 29 Jan 2018 20:10:59 -0800 Subject: [PATCH 33/65] Bug 1427950 - Make 's .selectedOption setter the only supported way to change selection. r=jaws It's no longer supported to change the selectedness of options directly since that state causes conflicts with the application's own state. MozReview-Commit-ID: kioot4BXoX --HG-- extra : rebase_source : 45613b70daa2757f83de5c2fdeaacc596d6ce012 --- .../payments/res/components/rich-option.js | 28 ++++------------- .../payments/res/components/rich-select.js | 31 ++++++++++++++++--- .../payments/res/containers/address-picker.js | 23 +++++++++++--- .../payments/res/paymentRequest.xhtml | 3 +- .../test/mochitest/test_rich_select.html | 4 +-- 5 files changed, 54 insertions(+), 35 deletions(-) diff --git a/toolkit/components/payments/res/components/rich-option.js b/toolkit/components/payments/res/components/rich-option.js index 11919c70fb4c..b57fc9797b59 100644 --- a/toolkit/components/payments/res/components/rich-option.js +++ b/toolkit/components/payments/res/components/rich-option.js @@ -12,7 +12,12 @@ /* exported RichOption */ class RichOption extends ObservedPropertiesMixin(HTMLElement) { - static get observedAttributes() { return ["selected", "hidden"]; } + static get observedAttributes() { + return [ + "selected", + "value", + ]; + } connectedCallback() { this.render(); @@ -57,27 +62,6 @@ class RichOption extends ObservedPropertiesMixin(HTMLElement) { } } - get selected() { - return this.hasAttribute("selected"); - } - - set selected(value) { - if (value) { - let oldSelectedOptions = this.parentNode.querySelectorAll("[selected]"); - for (let option of oldSelectedOptions) { - option.removeAttribute("selected"); - } - this.setAttribute("selected", value); - } else { - this.removeAttribute("selected"); - } - let richSelect = this.closest("rich-select"); - if (richSelect && richSelect.render) { - richSelect.render(); - } - return value; - } - static _createElement(fragment, className) { let element = document.createElement("span"); element.classList.add(className); diff --git a/toolkit/components/payments/res/components/rich-select.js b/toolkit/components/payments/res/components/rich-select.js index 13ad202a08fe..3e845150c037 100644 --- a/toolkit/components/payments/res/components/rich-select.js +++ b/toolkit/components/payments/res/components/rich-select.js @@ -2,14 +2,16 @@ * 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/. */ +/* global ObservedPropertiesMixin */ + /** * * * + * + * Note: The only supported way to change the selected option is via the + * `selectedOption` setter. */ - -/* global ObservedPropertiesMixin */ - class RichSelect extends ObservedPropertiesMixin(HTMLElement) { static get observedAttributes() { return [ @@ -48,8 +50,22 @@ class RichSelect extends ObservedPropertiesMixin(HTMLElement) { return this.popupBox.querySelector(":scope > [selected]"); } - namedItem(name) { - return this.popupBox.querySelector(`:scope > [name="${CSS.escape(name)}"]`); + + /** + * This is the only supported method of changing the selected option. Do not + * manipulate the `selected` property or attribute on options directly. + * @param {HTMLOptionElement} option + */ + set selectedOption(option) { + for (let child of this.popupBox.children) { + child.selected = child == option; + } + + this.render(); + } + + getOptionByValue(value) { + return this.popupBox.querySelector(`:scope > [value="${CSS.escape(value)}"]`); } handleEvent(event) { @@ -117,6 +133,9 @@ class RichSelect extends ObservedPropertiesMixin(HTMLElement) { } for (let aAttr of aAttrs) { + if (aAttr == "selected") { + continue; + } if (a.getAttribute(aAttr) != b.getAttribute(aAttr)) { return false; } @@ -145,6 +164,7 @@ class RichSelect extends ObservedPropertiesMixin(HTMLElement) { for (let child of popupBox.children) { if (child.selected) { selectedChild = child; + break; } } if (!selectedChild && popupBox.children.length) { @@ -161,6 +181,7 @@ class RichSelect extends ObservedPropertiesMixin(HTMLElement) { if (selectedChild) { selectedClone = selectedChild.cloneNode(false); selectedClone.removeAttribute("id"); + selectedClone.removeAttribute("selected"); selectedClone.classList.add("rich-select-selected-clone"); selectedClone = this.appendChild(selectedClone); } diff --git a/toolkit/components/payments/res/containers/address-picker.js b/toolkit/components/payments/res/containers/address-picker.js index 70eff2007f7f..68457b2b9872 100644 --- a/toolkit/components/payments/res/containers/address-picker.js +++ b/toolkit/components/payments/res/containers/address-picker.js @@ -27,11 +27,10 @@ class AddressPicker extends PaymentStateSubscriberMixin(HTMLElement) { let {savedAddresses} = state; let desiredOptions = []; for (let [guid, address] of Object.entries(savedAddresses)) { - let optionEl = this.dropdown.namedItem(guid); + let optionEl = this.dropdown.getOptionByValue(guid); if (!optionEl) { optionEl = document.createElement("address-option"); - optionEl.name = guid; - optionEl.guid = guid; + optionEl.value = guid; } for (let [key, val] of Object.entries(address)) { optionEl.setAttribute(key, val); @@ -42,7 +41,23 @@ class AddressPicker extends PaymentStateSubscriberMixin(HTMLElement) { while ((el = this.dropdown.popupBox.querySelector(":scope > address-option"))) { el.remove(); } - this.dropdown.popupBox.append(...desiredOptions); + for (let option of desiredOptions) { + this.dropdown.popupBox.appendChild(option); + } + + // Update selectedness after the options are updated + let selectedAddressGUID = state[this.selectedStateKey]; + let optionWithGUID = this.dropdown.getOptionByValue(selectedAddressGUID); + this.dropdown.selectedOption = optionWithGUID; + + if (selectedAddressGUID && !optionWithGUID) { + throw new Error(`${this.selectedStateKey} option ${selectedAddressGUID}` + + `does not exist in options`); + } + } + + get selectedStateKey() { + return this.getAttribute("selected-state-key"); } } diff --git a/toolkit/components/payments/res/paymentRequest.xhtml b/toolkit/components/payments/res/paymentRequest.xhtml index 9c82e64142d7..71c365427305 100644 --- a/toolkit/components/payments/res/paymentRequest.xhtml +++ b/toolkit/components/payments/res/paymentRequest.xhtml @@ -45,8 +45,7 @@
                                                                                                                                                                                                                                                                                                                                                                                  - - +