Bug 1459296 - Add router snippets, router impression and bug fixes to Activity Stream. r?k88hudson draft
authorEd Lee <edilee@mozilla.com>
Fri, 04 May 2018 13:05:28 -0700
changeset 791669 5ca2339a44a98f557163ca90dd04c6639316523b
parent 791615 a91ca6e5ca820b53fad9bb98b256934353f5217a
push id108863
push userbmo:edilee@mozilla.com
push dateFri, 04 May 2018 20:06:20 +0000
reviewersk88hudson
bugs1459296
milestone61.0a1
Bug 1459296 - Add router snippets, router impression and bug fixes to Activity Stream. r?k88hudson MozReview-Commit-ID: 58N6MbF4f0z
browser/extensions/activity-stream/css/activity-stream-linux.css
browser/extensions/activity-stream/css/activity-stream-linux.css.map
browser/extensions/activity-stream/css/activity-stream-mac.css
browser/extensions/activity-stream/css/activity-stream-mac.css.map
browser/extensions/activity-stream/css/activity-stream-windows.css
browser/extensions/activity-stream/css/activity-stream-windows.css.map
browser/extensions/activity-stream/data/content/activity-stream.bundle.js
browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
browser/extensions/activity-stream/install.rdf.in
browser/extensions/activity-stream/lib/ASRouter.jsm
browser/extensions/activity-stream/lib/TopStoriesFeed.jsm
browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ach/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/an/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/an/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ar/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ast/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/az/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/be/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bg/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/br/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bs/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ca/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cak/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/da/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/de/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/el/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/et/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fa/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ff/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fi/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gd/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gl/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/he/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hr/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/id/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/it/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ja/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kab/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kk/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/km/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kn/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ko/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lij/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lo/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lt/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/mk/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/mr/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/my/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pl/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/rm/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ru/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/si/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sk/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sl/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sq/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ta/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/te/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/th/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/tl/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/uk/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ur/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/uz/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/vi/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream.html
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream.html
browser/extensions/activity-stream/prerendered/static/activity-stream-debug.html
browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
browser/extensions/activity-stream/test/unit/asrouter/ASRouterFeed.test.js
browser/extensions/activity-stream/test/unit/asrouter/MessageLoaderUtils.test.js
browser/extensions/activity-stream/test/unit/asrouter/asrouter-content.test.jsx
browser/extensions/activity-stream/test/unit/asrouter/constants.js
browser/extensions/activity-stream/test/unit/asrouter/template-utils.test.js
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -1360,17 +1360,17 @@ main {
     max-height: 0;
     overflow: hidden; }
 
 .asrouter-admin {
   max-width: 996px;
   margin: 0 auto;
   font-size: 14px;
   display: inherit;
-  padding: 0 0 42px; }
+  padding: 0 0 92px; }
   .asrouter-admin h1 {
     font-weight: 200;
     font-size: 32px; }
   .asrouter-admin table {
     border-collapse: collapse;
     width: 100%; }
   .asrouter-admin .message-item:first-child td {
     border-top: 1px solid var(--newtab-border-secondary-color); }
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -37,16 +37,16 @@
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      grid-template-columns: repeat(auto-fit, $card-width-large);\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
 		".search-wrapper {\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid var(--newtab-card-hairline-color);\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-download-icon {\n    float: inline-end;\n    margin-inline-start: 15px;\n    margin-top: 2px;\n\n    &.icon-download-folder {\n      height: $small-download-folder-icon-size;\n      width: $small-download-folder-icon-size;\n    }\n  }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  // Wide layout styles\n  @media (min-width: $break-point-widest) {\n    $line-height: 23px;\n    height: $card-height-large;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-large;\n    }\n\n    .card-details {\n      padding: 13px 16px 12px;\n    }\n\n    .card-text {\n      max-height: 6 * $line-height + $card-title-margin;\n    }\n\n    .card-host-name {\n      font-size: 12px;\n      padding-bottom: 5px;\n    }\n\n    .card-download-icon {\n      &.icon-download-folder {\n        height: $large-download-folder-icon-size;\n        width: $large-download-folder-icon-size;\n      }\n    }\n\n    .card-title {\n      font-size: 17px;\n      line-height: $line-height;\n      margin-bottom: 0;\n    }\n\n    .card-text:not(.no-description) {\n      .card-title {\n        max-height: 3 * $line-height;\n      }\n    }\n\n    .card-description {\n      font-size: 15px;\n      line-height: $line-height;\n    }\n\n    .card-context {\n      bottom: 4px;\n      font-size: 14px;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
-		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 42px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
+		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n}\n"
 	],
 	"names": [],
 	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css
@@ -1363,17 +1363,17 @@ main {
     max-height: 0;
     overflow: hidden; }
 
 .asrouter-admin {
   max-width: 996px;
   margin: 0 auto;
   font-size: 14px;
   display: inherit;
-  padding: 0 0 42px; }
+  padding: 0 0 92px; }
   .asrouter-admin h1 {
     font-weight: 200;
     font-size: 32px; }
   .asrouter-admin table {
     border-collapse: collapse;
     width: 100%; }
   .asrouter-admin .message-item:first-child td {
     border-top: 1px solid var(--newtab-border-secondary-color); }
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -37,16 +37,16 @@
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      grid-template-columns: repeat(auto-fit, $card-width-large);\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
 		".search-wrapper {\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid var(--newtab-card-hairline-color);\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-download-icon {\n    float: inline-end;\n    margin-inline-start: 15px;\n    margin-top: 2px;\n\n    &.icon-download-folder {\n      height: $small-download-folder-icon-size;\n      width: $small-download-folder-icon-size;\n    }\n  }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  // Wide layout styles\n  @media (min-width: $break-point-widest) {\n    $line-height: 23px;\n    height: $card-height-large;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-large;\n    }\n\n    .card-details {\n      padding: 13px 16px 12px;\n    }\n\n    .card-text {\n      max-height: 6 * $line-height + $card-title-margin;\n    }\n\n    .card-host-name {\n      font-size: 12px;\n      padding-bottom: 5px;\n    }\n\n    .card-download-icon {\n      &.icon-download-folder {\n        height: $large-download-folder-icon-size;\n        width: $large-download-folder-icon-size;\n      }\n    }\n\n    .card-title {\n      font-size: 17px;\n      line-height: $line-height;\n      margin-bottom: 0;\n    }\n\n    .card-text:not(.no-description) {\n      .card-title {\n        max-height: 3 * $line-height;\n      }\n    }\n\n    .card-description {\n      font-size: 15px;\n      line-height: $line-height;\n    }\n\n    .card-context {\n      bottom: 4px;\n      font-size: 14px;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
-		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 42px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
+		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n}\n"
 	],
 	"names": [],
 	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css
@@ -1360,17 +1360,17 @@ main {
     max-height: 0;
     overflow: hidden; }
 
 .asrouter-admin {
   max-width: 996px;
   margin: 0 auto;
   font-size: 14px;
   display: inherit;
-  padding: 0 0 42px; }
+  padding: 0 0 92px; }
   .asrouter-admin h1 {
     font-weight: 200;
     font-size: 32px; }
   .asrouter-admin table {
     border-collapse: collapse;
     width: 100%; }
   .asrouter-admin .message-item:first-child td {
     border-top: 1px solid var(--newtab-border-secondary-color); }
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -37,16 +37,16 @@
 		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      grid-template-columns: repeat(auto-fit, $card-width-large);\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n    }\n  }\n}\n",
 		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n    font-weight: bold;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
 		".search-wrapper {\n  $search-height: 35px;\n  $search-icon-size: 18px;\n  $search-icon-padding: 8px;\n  $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  margin-bottom: $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n    border: solid 1px var(--newtab-search-border-color);\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-icon-width;\n    width: 100%;\n\n    &:dir(rtl) {\n      background-position-x: right $search-icon-padding;\n    }\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    border: $input-border-active;\n    box-shadow: var(--newtab-textbox-focus-boxshadow);\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-dropdown-color);\n    border: 0;\n    box-shadow: $context-menu-shadow;\n    transform: translateY($textbox-shadow-size);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-search-dropdown-header-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSettingsButton {\n      border-color: var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSuggestionsList {\n      border: 0;\n    }\n\n    .contentSearchOneOffsTable {\n      background-color: var(--newtab-search-dropdown-header-color);\n      border-top: solid 1px var(--newtab-border-secondary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n\n    .contentSearchSuggestionsContainer {\n      background-color: var(--newtab-search-dropdown-color);\n    }\n\n    .contentSearchSuggestionRow {\n      &.selected {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        .historyIcon {\n          fill: var(--newtab-icon-secondary-color);\n        }\n      }\n    }\n\n    .contentSearchOneOffsTable {\n      .contentSearchSuggestionsContainer {\n        background-color: var(--newtab-search-dropdown-header-color);\n      }\n    }\n\n    .contentSearchOneOffItem {\n      // Make the border slightly shorter by offsetting from the top and bottom\n      $border-offset: 18%;\n\n      background-image: none;\n      border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n      border-inline-end: 1px solid;\n      position: relative;\n\n      &.selected {\n        background: var(--newtab-element-hover-color);\n      }\n\n      &:active {\n        background: var(--newtab-element-active-color);\n      }\n    }\n\n    .contentSearchSettingsButton {\n      &:hover {\n        background: var(--newtab-element-hover-color);\n        color: var(--newtab-text-primary-color);\n      }\n    }\n  }\n}\n",
 		".context-menu {\n  background: var(--newtab-contextmenu-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-element-hover-color);\n        }\n\n        &:active {\n          background: var(--newtab-element-active-color);\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
 		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
 		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: var(--newtab-card-shadow);\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n\n    .alternate ~ .card-host-name {\n      display: none;\n    }\n\n    .card-host-name.alternate {\n      display: block;\n    }\n  }\n\n  .card-preview-image-outer {\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid var(--newtab-card-hairline-color);\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-host-name.alternate { display: none; }\n\n  .card-download-icon {\n    float: inline-end;\n    margin-inline-start: 15px;\n    margin-top: 2px;\n\n    &.icon-download-folder {\n      height: $small-download-folder-icon-size;\n      width: $small-download-folder-icon-size;\n    }\n  }\n\n  .card-title {\n    font-size: 14px;\n    font-weight: 600;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-tertiary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-tertiary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  // Wide layout styles\n  @media (min-width: $break-point-widest) {\n    $line-height: 23px;\n    height: $card-height-large;\n\n    .card-preview-image-outer {\n      height: $card-preview-image-height-large;\n    }\n\n    .card-details {\n      padding: 13px 16px 12px;\n    }\n\n    .card-text {\n      max-height: 6 * $line-height + $card-title-margin;\n    }\n\n    .card-host-name {\n      font-size: 12px;\n      padding-bottom: 5px;\n    }\n\n    .card-download-icon {\n      &.icon-download-folder {\n        height: $large-download-folder-icon-size;\n        width: $large-download-folder-icon-size;\n      }\n    }\n\n    .card-title {\n      font-size: 17px;\n      line-height: $line-height;\n      margin-bottom: 0;\n    }\n\n    .card-text:not(.no-description) {\n      .card-title {\n        max-height: 3 * $line-height;\n      }\n    }\n\n    .card-description {\n      font-size: 15px;\n      line-height: $line-height;\n    }\n\n    .card-context {\n      bottom: 4px;\n      font-size: 14px;\n    }\n  }\n}\n",
 		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
 		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-hover-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-primary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: var(--newtab-button-secondary-color);\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
-		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 42px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
+		"\n.asrouter-admin {\n  $border-color: var(--newtab-border-secondary-color);\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n  // Reset .outer-wrapper styles\n  display: inherit;\n  padding: 0 0 92px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $border-color;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $border-color;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $border-color;\n      }\n\n      &:last-child {\n        border-right: 1px solid $border-color;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n\n        .dark-theme & {\n          color: $black;\n        }\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        opacity: 0.5;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: var(--newtab-textbox-background-color);\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n",
 		".ASRouterButton {\n  white-space: nowrap;\n  border-radius: 4px;\n  border: 1px solid var(--newtab-border-secondary-color);\n  background-color: var(--newtab-button-secondary-color);\n  font-family: inherit;\n  padding: 8px 15px;\n  margin-left: 12px;\n  color: inherit;\n}\n",
 		".SnippetBaseContainer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  background-color: var(--newtab-snippets-background-color);\n  color: var(--newtab-text-primary-color);\n  font-size: 12px;\n  line-height: 16px;\n  border-top: 1px solid var(--newtab-snippets-hairline-color);\n  box-shadow: $shadow-secondary;\n  display: flex;\n  align-items: center;\n\n  .innerWrapper {\n    margin: 0 auto;\n    display: flex;\n    align-items: center;\n    padding: 12px $section-horizontal-padding;\n\n    // This is to account for the block button on smaller screens\n    padding-inline-end: 36px;\n    @media (min-width: $break-point-large) {\n      padding-inline-end: $section-horizontal-padding;\n    }\n\n    max-width: $wrapper-max-width-large;\n    @media (min-width: $break-point-widest) {\n      max-width: $wrapper-max-width-widest;\n    }\n  }\n\n  .blockButton {\n    display: none;\n    background: none;\n    border: 0;\n    position: absolute;\n    top: 50%;\n    offset-inline-end: 12px;\n    height: 16px;\n    width: 16px;\n    background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n    -moz-context-properties: fill;\n    fill: var(--newtab-icon-primary-color);\n    opacity: 0.5;\n    margin-top: -8px;\n    padding: 0;\n    cursor: pointer;\n\n    @media (min-width: 766px) {\n      offset-inline-end: 24px;\n    }\n  }\n\n  &:hover .blockButton {\n    display: block;\n  }\n}\n",
 		".SimpleSnippet {\n  .title {\n    display: inline;\n    font-size: inherit;\n    margin: 0;\n  }\n\n  .body {\n    display: inline;\n    margin: 0;\n  }\n\n  .icon {\n    height: 42px;\n    width: 42px;\n    margin-inline-end: 12px;\n    flex-shrink: 0;\n  }\n}\n"
 	],
 	"names": [],
 	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
@@ -873,71 +873,93 @@ var reducers = { TopSites, App, Snippets
 /***/ }),
 /* 7 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__["b"] = initASRouter;
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_content_src_lib_init_store__ = __webpack_require__(8);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_dom__ = __webpack_require__(9);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react_dom__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__templates_SimpleSnippet_SimpleSnippet__ = __webpack_require__(22);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_ImpressionsWrapper_ImpressionsWrapper__ = __webpack_require__(22);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom__ = __webpack_require__(9);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_dom__);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__templates_SimpleSnippet_SimpleSnippet__ = __webpack_require__(23);
 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
 
 
+
 const INCOMING_MESSAGE_NAME = "ASRouter:parent-to-child";
 const OUTGOING_MESSAGE_NAME = "ASRouter:child-to-parent";
 
-// Note: Provider is hardcoded right now since we only have one message provider.
-// When we have more than one, it will need to come from the message data.
-const PROVIDER = "snippets";
-
 const ASRouterUtils = {
   addListener(listener) {
     global.addMessageListener(INCOMING_MESSAGE_NAME, listener);
   },
   removeListener(listener) {
     global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);
   },
   sendMessage(action) {
     global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);
   },
   blockById(id) {
     ASRouterUtils.sendMessage({ type: "BLOCK_MESSAGE_BY_ID", data: { id } });
   },
   unblockById(id) {
     ASRouterUtils.sendMessage({ type: "UNBLOCK_MESSAGE_BY_ID", data: { id } });
   },
-  sendUserActionTelemetry(data) {
-    const eventType = `${PROVIDER}_user_event`;
-    const payload = __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].ASRouterUserEvent(Object.assign({}, data, { action: eventType }));
-    global.sendAsyncMessage(__WEBPACK_IMPORTED_MODULE_1_content_src_lib_init_store__["a" /* OUTGOING_MESSAGE_NAME */], payload);
-  },
   getNextMessage() {
     ASRouterUtils.sendMessage({ type: "GET_NEXT_MESSAGE" });
+  },
+  overrideMessage(id) {
+    ASRouterUtils.sendMessage({ type: "OVERRIDE_MESSAGE", data: { id } });
+  },
+  sendTelemetry(ping) {
+    const payload = __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].ASRouterUserEvent(ping);
+    global.sendAsyncMessage(__WEBPACK_IMPORTED_MODULE_1_content_src_lib_init_store__["a" /* OUTGOING_MESSAGE_NAME */], payload);
   }
 };
 /* harmony export (immutable) */ __webpack_exports__["a"] = ASRouterUtils;
 
 
-class ASRouterUISurface extends __WEBPACK_IMPORTED_MODULE_2_react___default.a.PureComponent {
+// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />
+function shouldSendImpressionOnUpdate(nextProps, prevProps) {
+  return nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id);
+}
+
+class ASRouterUISurface extends __WEBPACK_IMPORTED_MODULE_3_react___default.a.PureComponent {
   constructor(props) {
     super(props);
     this.onMessageFromParent = this.onMessageFromParent.bind(this);
+    this.sendImpression = this.sendImpression.bind(this);
+    this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);
     this.state = { message: {} };
   }
 
+  sendUserActionTelemetry(extraProps = {}) {
+    const { message } = this.state;
+    const eventType = `${message.provider}_user_event`;
+
+    ASRouterUtils.sendTelemetry(Object.assign({
+      message_id: message.id,
+      source: this.props.id,
+      action: eventType
+    }, extraProps));
+  }
+
+  sendImpression() {
+    this.sendUserActionTelemetry({ event: "IMPRESSION" });
+  }
+
   onBlockById(id) {
     return () => ASRouterUtils.blockById(id);
   }
 
   onMessageFromParent({ data: action }) {
     switch (action.type) {
       case "SET_MESSAGE":
         this.setState({ message: action.data });
@@ -949,34 +971,47 @@ class ASRouterUISurface extends __WEBPAC
   }
 
   componentWillMount() {
     ASRouterUtils.addListener(this.onMessageFromParent);
     ASRouterUtils.sendMessage({ type: "CONNECT_UI_REQUEST" });
   }
 
   componentWillUnmount() {
-    ASRouterUtils.removeMessageListener(this.onMessageFromParent);
+    ASRouterUtils.removeListener(this.onMessageFromParent);
   }
 
   render() {
     const { message } = this.state;
     if (!message.id) {
       return null;
     }
-    return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__templates_SimpleSnippet_SimpleSnippet__["a" /* SimpleSnippet */], _extends({}, message, {
-      UISurface: this.props.id,
-      getNextMessage: ASRouterUtils.getNextMessage,
-      onBlock: this.onBlockById(message.id),
-      sendUserActionTelemetry: ASRouterUtils.sendUserActionTelemetry }));
+    return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
+      __WEBPACK_IMPORTED_MODULE_2__components_ImpressionsWrapper_ImpressionsWrapper__["a" /* ImpressionsWrapper */],
+      {
+        message: message,
+        sendImpression: this.sendImpression,
+        shouldSendImpressionOnUpdate: shouldSendImpressionOnUpdate
+        // This helps with testing
+        , document: this.props.document },
+      __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__templates_SimpleSnippet_SimpleSnippet__["a" /* SimpleSnippet */], _extends({}, message, {
+        UISurface: this.props.id,
+        getNextMessage: ASRouterUtils.getNextMessage,
+        onBlock: this.onBlockById(message.id),
+        sendUserActionTelemetry: this.sendUserActionTelemetry }))
+    );
   }
 }
+/* unused harmony export ASRouterUISurface */
+
+
+ASRouterUISurface.defaultProps = { document: global.document };
 
 function initASRouter() {
-  __WEBPACK_IMPORTED_MODULE_3_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(ASRouterUISurface, { id: "NEWTAB_FOOTER_BAR" }), document.getElementById("snippets-container"));
+  __WEBPACK_IMPORTED_MODULE_4_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(ASRouterUISurface, { id: "NEWTAB_FOOTER_BAR" }), document.getElementById("snippets-container"));
 }
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
 /* 8 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
@@ -1631,17 +1666,17 @@ class ContextMenuItem extends __WEBPACK_
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_ErrorBoundary_ErrorBoundary__ = __webpack_require__(10);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_content_src_components_SectionMenu_SectionMenu__ = __webpack_require__(32);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_content_src_components_SectionMenu_SectionMenu__ = __webpack_require__(33);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_content_src_lib_section_menu_options__ = __webpack_require__(15);
 
 
 
 
 
 
 
@@ -2734,18 +2769,18 @@ const TopSiteList = Object(__WEBPACK_IMP
 /***/ }),
 /* 19 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_content_src_lib_snippets__ = __webpack_require__(20);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_Base_Base__ = __webpack_require__(23);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_lib_detect_user_session_start__ = __webpack_require__(36);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_Base_Base__ = __webpack_require__(24);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_lib_detect_user_session_start__ = __webpack_require__(37);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_content_src_lib_init_store__ = __webpack_require__(8);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(9);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_common_Reducers_jsm__ = __webpack_require__(6);
@@ -3194,42 +3229,130 @@ function addSnippetsSubscriber(store) {
 
 module.exports = Redux;
 
 /***/ }),
 /* 22 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
+/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
+
+
+const VISIBLE = "visible";
+/* unused harmony export VISIBLE */
+
+const VISIBILITY_CHANGE_EVENT = "visibilitychange";
+/* unused harmony export VISIBILITY_CHANGE_EVENT */
+
+
+/**
+ * Component wrapper used to send telemetry pings on every impression.
+ */
+class ImpressionsWrapper extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.PureComponent {
+  // This sends an event when a user sees a set of new content. If content
+  // changes while the page is hidden (i.e. preloaded or on a hidden tab),
+  // only send the event if the page becomes visible again.
+  sendImpressionOrAddListener() {
+    if (this.props.document.visibilityState === VISIBLE) {
+      this.props.sendImpression();
+    } else {
+      // We should only ever send the latest impression stats ping, so remove any
+      // older listeners.
+      if (this._onVisibilityChange) {
+        this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);
+      }
+
+      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.
+      this._onVisibilityChange = () => {
+        if (this.props.document.visibilityState === VISIBLE) {
+          this.props.sendImpression();
+          this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);
+        }
+      };
+      this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);
+    }
+  }
+
+  componentWillUnmount() {
+    if (this._onVisibilityChange) {
+      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);
+    }
+  }
+
+  componentDidMount() {
+    if (this.props.sendOnMount) {
+      this.sendImpressionOrAddListener();
+    }
+  }
+
+  componentDidUpdate(prevProps) {
+    if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {
+      this.sendImpressionOrAddListener();
+    }
+  }
+
+  render() {
+    return this.props.children;
+  }
+}
+/* harmony export (immutable) */ __webpack_exports__["a"] = ImpressionsWrapper;
+
+
+ImpressionsWrapper.defaultProps = {
+  document: global.document,
+  sendOnMount: true
+};
+/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
+
+/***/ }),
+/* 23 */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
 
 // EXTERNAL MODULE: external "React"
 var external__React_ = __webpack_require__(0);
 var external__React__default = /*#__PURE__*/__webpack_require__.n(external__React_);
 
+// CONCATENATED MODULE: ./system-addon/content-src/asrouter/template-utils.js
+function safeURI(url) {
+  if (!url) {
+    return "";
+  }
+  const { protocol } = new URL(url);
+  const isAllowed = ["http:", "https:", "data:", "resource:", "chrome:"].includes(protocol);
+  if (!isAllowed) {
+    console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console
+  }
+  return isAllowed ? url : "";
+}
 // CONCATENATED MODULE: ./system-addon/content-src/asrouter/components/Button/Button.jsx
 
 
+
 const Button = props => external__React__default.a.createElement(
   "a",
-  { href: props.url,
+  { href: safeURI(props.url),
     onClick: props.onClick,
     className: "ASRouterButton" },
   props.children
 );
 // CONCATENATED MODULE: ./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx
 
 
 class SnippetBase_SnippetBase extends external__React__default.a.PureComponent {
   constructor(props) {
     super(props);
     this.onBlockClicked = this.onBlockClicked.bind(this);
   }
 
   onBlockClicked() {
-    this.props.sendUserActionTelemetry({ event: "BLOCK", source: this.props.UISurface, message_id: this.props.id });
+    this.props.sendUserActionTelemetry({ event: "BLOCK" });
     this.props.onBlock();
   }
 
   render() {
     const { props } = this;
 
     const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : ""}`;
 
@@ -3247,34 +3370,35 @@ class SnippetBase_SnippetBase extends ex
 }
 // CONCATENATED MODULE: ./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx
 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
+
 const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png";
 
 class SimpleSnippet_SimpleSnippet extends external__React__default.a.PureComponent {
   constructor(props) {
     super(props);
     this.onButtonClick = this.onButtonClick.bind(this);
   }
 
   onButtonClick() {
-    this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", source: this.props.UISurface, message_id: this.props.id });
+    this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON" });
   }
 
   render() {
     const { props } = this;
     return external__React__default.a.createElement(
       SnippetBase_SnippetBase,
       _extends({}, props, { className: "SimpleSnippet" }),
-      external__React__default.a.createElement("img", { src: props.content.icon || DEFAULT_ICON_PATH, className: "icon" }),
+      external__React__default.a.createElement("img", { src: safeURI(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }),
       external__React__default.a.createElement(
         "div",
         null,
         props.content.title ? external__React__default.a.createElement(
           "h3",
           { className: "title" },
           props.content.title
         ) : null,
@@ -3296,34 +3420,34 @@ class SimpleSnippet_SimpleSnippet extend
       ) : null
     );
   }
 }
 /* harmony export (immutable) */ __webpack_exports__["a"] = SimpleSnippet_SimpleSnippet;
 
 
 /***/ }),
-/* 23 */
+/* 24 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_intl__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_ASRouterAdmin_ASRouterAdmin__ = __webpack_require__(24);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_components_ConfirmDialog_ConfirmDialog__ = __webpack_require__(25);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_ASRouterAdmin_ASRouterAdmin__ = __webpack_require__(25);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_components_ConfirmDialog_ConfirmDialog__ = __webpack_require__(26);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_content_src_components_ErrorBoundary_ErrorBoundary__ = __webpack_require__(10);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_content_src_components_ManualMigration_ManualMigration__ = __webpack_require__(26);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_common_PrerenderData_jsm__ = __webpack_require__(27);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_content_src_components_ManualMigration_ManualMigration__ = __webpack_require__(27);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_common_PrerenderData_jsm__ = __webpack_require__(28);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_content_src_components_Search_Search__ = __webpack_require__(28);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_content_src_components_Sections_Sections__ = __webpack_require__(30);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_content_src_components_Search_Search__ = __webpack_require__(29);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_content_src_components_Sections_Sections__ = __webpack_require__(31);
 
 
 
 
 
 
 
 
@@ -3471,17 +3595,17 @@ class BaseContent extends __WEBPACK_IMPO
 
 
 const Base = Object(__WEBPACK_IMPORTED_MODULE_4_react_redux__["connect"])(state => ({ App: state.App, Prefs: state.Prefs, Theme: state.Theme }))(_Base);
 /* harmony export (immutable) */ __webpack_exports__["a"] = Base;
 
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
-/* 24 */
+/* 25 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__ = __webpack_require__(7);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
 
 
@@ -3511,16 +3635,20 @@ class ASRouterAdmin extends __WEBPACK_IM
   handleBlock(id) {
     return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].blockById(id);
   }
 
   handleUnblock(id) {
     return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].unblockById(id);
   }
 
+  handleOverride(id) {
+    return () => __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].overrideMessage(id);
+  }
+
   renderMessageItem(msg) {
     const isCurrent = msg.id === this.state.currentId;
     const isBlocked = this.state.blockList.includes(msg.id);
 
     let itemClassName = "message-item";
     if (isCurrent) {
       itemClassName += " current";
     }
@@ -3542,16 +3670,21 @@ class ASRouterAdmin extends __WEBPACK_IM
       ),
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "td",
         null,
         __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
           "button",
           { className: `button ${isBlocked ? "" : " primary"}`, onClick: isBlocked ? this.handleUnblock(msg.id) : this.handleBlock(msg.id) },
           isBlocked ? "Unblock" : "Block"
+        ),
+        isBlocked ? null : __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+          "button",
+          { className: "button", onClick: this.handleOverride(msg.id) },
+          "Show"
         )
       ),
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "td",
         { className: "message-summary" },
         __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
           "pre",
           null,
@@ -3571,16 +3704,45 @@ class ASRouterAdmin extends __WEBPACK_IM
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "tbody",
         null,
         this.state.messages.map(msg => this.renderMessageItem(msg))
       )
     );
   }
 
+  renderProviders() {
+    return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+      "table",
+      null,
+      __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+        "tbody",
+        null,
+        this.state.providers.map((provider, i) => __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+          "tr",
+          { className: "message-item", key: i },
+          __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+            "td",
+            null,
+            provider.id
+          ),
+          __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+            "td",
+            null,
+            provider.type === "remote" ? __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+              "a",
+              { target: "_blank", href: provider.url },
+              provider.url
+            ) : "(local)"
+          )
+        ))
+      )
+    );
+  }
+
   render() {
     return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
       "div",
       { className: "asrouter-admin outer-wrapper" },
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "h1",
         null,
         "AS Router Admin"
@@ -3588,27 +3750,33 @@ class ASRouterAdmin extends __WEBPACK_IM
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "button",
         { className: "button primary", onClick: __WEBPACK_IMPORTED_MODULE_0__asrouter_asrouter_content__["a" /* ASRouterUtils */].getNextMessage },
         "Refresh Current Message"
       ),
       __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
         "h2",
         null,
+        "Message Providers"
+      ),
+      this.state.providers ? this.renderProviders() : null,
+      __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(
+        "h2",
+        null,
         "Messages"
       ),
       this.renderMessages()
     );
   }
 }
 /* harmony export (immutable) */ __webpack_exports__["a"] = ASRouterAdmin;
 
 
 /***/ }),
-/* 25 */
+/* 26 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_intl__);
@@ -3711,17 +3879,17 @@ class _ConfirmDialog extends __WEBPACK_I
 /* unused harmony export _ConfirmDialog */
 
 
 const ConfirmDialog = Object(__WEBPACK_IMPORTED_MODULE_1_react_redux__["connect"])(state => state.Dialog)(_ConfirmDialog);
 /* harmony export (immutable) */ __webpack_exports__["a"] = ConfirmDialog;
 
 
 /***/ }),
-/* 26 */
+/* 27 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_intl__);
@@ -3787,17 +3955,17 @@ class _ManualMigration extends __WEBPACK
 /* unused harmony export _ManualMigration */
 
 
 const ManualMigration = Object(__WEBPACK_IMPORTED_MODULE_1_react_redux__["connect"])()(_ManualMigration);
 /* harmony export (immutable) */ __webpack_exports__["a"] = ManualMigration;
 
 
 /***/ }),
-/* 27 */
+/* 28 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PrerenderData; });
 class _PrerenderData {
   constructor(options) {
     this.initialPrefs = options.initialPrefs;
     this.initialSections = options.initialSections;
@@ -3889,26 +4057,26 @@ var PrerenderData = new _PrerenderData({
     id: "highlights",
     icon: "highlights",
     order: 2,
     title: { id: "header_highlights" }
   }]
 });
 
 /***/ }),
-/* 28 */
+/* 29 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_redux__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_lib_constants__ = __webpack_require__(29);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_lib_constants__ = __webpack_require__(30);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);
 /* globals ContentSearchUIController */
 
 
 
 
 
@@ -4008,42 +4176,42 @@ class _Search extends __WEBPACK_IMPORTED
 /* unused harmony export _Search */
 
 
 const Search = Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__["connect"])()(Object(__WEBPACK_IMPORTED_MODULE_0_react_intl__["injectIntl"])(_Search));
 /* harmony export (immutable) */ __webpack_exports__["a"] = Search;
 
 
 /***/ }),
-/* 29 */
+/* 30 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {const IS_NEWTAB = global.document && global.document.documentURI === "about:newtab";
 /* harmony export (immutable) */ __webpack_exports__["a"] = IS_NEWTAB;
 
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
-/* 30 */
+/* 31 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
-/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_content_src_components_Card_Card__ = __webpack_require__(31);
+/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_content_src_components_Card_Card__ = __webpack_require__(32);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_components_CollapsibleSection_CollapsibleSection__ = __webpack_require__(14);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_content_src_components_ComponentPerfTimer_ComponentPerfTimer__ = __webpack_require__(16);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_content_src_components_Topics_Topics__ = __webpack_require__(33);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_content_src_components_TopSites_TopSites__ = __webpack_require__(34);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_content_src_components_Topics_Topics__ = __webpack_require__(34);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_content_src_components_TopSites_TopSites__ = __webpack_require__(35);
 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
 
 
@@ -4281,17 +4449,17 @@ class _Sections extends __WEBPACK_IMPORT
 
 
 const Sections = Object(__WEBPACK_IMPORTED_MODULE_5_react_redux__["connect"])(state => ({ Sections: state.Sections, Prefs: state.Prefs }))(_Sections);
 /* harmony export (immutable) */ __webpack_exports__["a"] = Sections;
 
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
-/* 31 */
+/* 32 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 
 // EXTERNAL MODULE: ./system-addon/common/Actions.jsm
 var Actions = __webpack_require__(1);
 
 // CONCATENATED MODULE: ./system-addon/content-src/components/Card/types.js
@@ -4578,17 +4746,17 @@ Card__Card.defaultProps = { link: {} };
 const Card = Object(external__ReactRedux_["connect"])(state => ({ platform: state.Prefs.values.platform }))(Card__Card);
 /* harmony export (immutable) */ __webpack_exports__["a"] = Card;
 
 const PlaceholderCard = () => external__React__default.a.createElement(Card, { placeholder: true });
 /* harmony export (immutable) */ __webpack_exports__["b"] = PlaceholderCard;
 
 
 /***/ }),
-/* 32 */
+/* 33 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_content_src_components_ContextMenu_ContextMenu__ = __webpack_require__(13);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react__ = __webpack_require__(0);
@@ -4650,17 +4818,17 @@ class _SectionMenu extends __WEBPACK_IMP
 /* unused harmony export _SectionMenu */
 
 
 const SectionMenu = Object(__WEBPACK_IMPORTED_MODULE_2_react_intl__["injectIntl"])(_SectionMenu);
 /* harmony export (immutable) */ __webpack_exports__["a"] = SectionMenu;
 
 
 /***/ }),
-/* 33 */
+/* 34 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
 
@@ -4706,32 +4874,32 @@ class Topics extends __WEBPACK_IMPORTED_
       )
     );
   }
 }
 /* harmony export (immutable) */ __webpack_exports__["a"] = Topics;
 
 
 /***/ }),
-/* 34 */
+/* 35 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TopSitesConstants__ = __webpack_require__(5);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_components_CollapsibleSection_CollapsibleSection__ = __webpack_require__(14);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_content_src_components_ComponentPerfTimer_ComponentPerfTimer__ = __webpack_require__(16);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux__ = __webpack_require__(4);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react_redux__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl__ = __webpack_require__(2);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_intl__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_common_Reducers_jsm__ = __webpack_require__(6);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__TopSiteForm__ = __webpack_require__(35);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__TopSiteForm__ = __webpack_require__(36);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__TopSite__ = __webpack_require__(18);
 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
 
 
 
 
 
@@ -4883,17 +5051,17 @@ const TopSites = Object(__WEBPACK_IMPORT
   Prefs: state.Prefs,
   TopSitesRows: state.Prefs.values.topSitesRows
 }))(Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__["injectIntl"])(_TopSites));
 /* harmony export (immutable) */ __webpack_exports__["a"] = TopSites;
 
 /* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
 
 /***/ }),
-/* 35 */
+/* 36 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 
 // EXTERNAL MODULE: ./system-addon/common/Actions.jsm
 var Actions = __webpack_require__(1);
 
 // EXTERNAL MODULE: external "ReactIntl"
@@ -5253,17 +5421,17 @@ class TopSiteForm_TopSiteForm extends ex
 
 
 TopSiteForm_TopSiteForm.defaultProps = {
   site: null,
   index: -1
 };
 
 /***/ }),
-/* 36 */
+/* 37 */
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
 "use strict";
 /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
 /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_common_PerfService_jsm__ = __webpack_require__(17);
 
 
 
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
@@ -1,1 +1,1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 14d9551d3e09bca6da1e","webpack:///external \"React\"","webpack:///./system-addon/common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./system-addon/content-src/components/TopSites/TopSitesConstants.js","webpack:///./system-addon/common/Dedupe.jsm","webpack:///./system-addon/common/Reducers.jsm","webpack:///./system-addon/content-src/asrouter/asrouter-content.jsx","webpack:///./system-addon/content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./system-addon/content-src/lib/link-menu-options.js","webpack:///./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./system-addon/content-src/lib/section-menu-options.js","webpack:///./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./system-addon/common/PerfService.jsm","webpack:///./system-addon/content-src/components/TopSites/TopSite.jsx","webpack:///./system-addon/content-src/activity-stream.jsx","webpack:///./system-addon/content-src/lib/snippets.js","webpack:///external \"Redux\"","webpack:///./system-addon/content-src/asrouter/components/Button/Button.jsx","webpack:///./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./system-addon/content-src/components/Base/Base.jsx","webpack:///./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./system-addon/common/PrerenderData.jsm","webpack:///./system-addon/content-src/components/Search/Search.jsx","webpack:///./system-addon/content-src/lib/constants.js","webpack:///./system-addon/content-src/components/Sections/Sections.jsx","webpack:///./system-addon/content-src/components/Card/types.js","webpack:///./system-addon/content-src/components/Card/Card.jsx","webpack:///./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./system-addon/content-src/components/Topics/Topics.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSites.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteForm.jsx","webpack:///./system-addon/content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","_RouteMessage","action","options","meta","Object","assign","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","url","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","includes","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","PROVIDER","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","unblockById","sendUserActionTelemetry","eventType","payload","ac","getNextMessage","ASRouterUISurface","React","PureComponent","props","onMessageFromParent","bind","state","message","onBlockById","setState","componentWillMount","componentWillUnmount","render","initASRouter","ReactDOM","document","getElementById","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","console","error","dump","JSON","stringify","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","defaultProps","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","event","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","i","ContextMenuItem","onKeyDown","shiftKey","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","text","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","nextProps","collapsed","sectionBody","scrollHeight","visibilityState","node","undefined","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","startsWith","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","TopSiteLink","onDragEvent","_allowDrop","e","dataTransfer","types","dragged","effectAllowed","setData","blur","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","componentWillReceiveProps","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","slice","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","delete","clear","get","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","err","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","Date","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","init","keys","dispatchEvent","Event","uninit","snippets","initializing","subscribe","asrouterExperimentEnabled","disableSnippets","Button","onBlockClicked","UISurface","message_id","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","content","button_url","button_label","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","v","join","body","renderNotified","NEW_TAB_REHYDRATED","strings","hash","BaseContent","openPreferences","prefs","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","handleBlock","handleUnblock","renderMessageItem","isCurrent","currentId","isBlocked","itemClassName","renderMessages","messages","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","provider","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW","Section","_dispatchImpressionStats","maxCards","maxRows","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","_onVisibilityChange","prevProps","isCollapsed","wasCollapsed","numberOfPlaceholders","items","remainder","emptyState","contextMenuOptions","shouldShowTopics","topics","realRows","placeholders","shouldShowEmptyState","feed","padding","isWebExtension","_","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","maybeLoadImage","image","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","hasImage","placeholder","description","context","_Card","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","acc","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","matchMedia","matches","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","URL","validProtocols","urlObj","protocol","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 14d9551d3e09bca6da1e","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n *                       Use this in action creators if you need different logic\n *                       for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n//   INIT: \"INIT\",\n//   UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n  \"ARCHIVE_FROM_POCKET\",\n  \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n  \"BLOCK_URL\",\n  \"BOOKMARK_URL\",\n  \"COPY_DOWNLOAD_LINK\",\n  \"DELETE_BOOKMARK_BY_ID\",\n  \"DELETE_FROM_POCKET\",\n  \"DELETE_HISTORY_URL\",\n  \"DIALOG_CANCEL\",\n  \"DIALOG_OPEN\",\n  \"DISABLE_ONBOARDING\",\n  \"DOWNLOAD_CHANGED\",\n  \"INIT\",\n  \"MIGRATION_CANCEL\",\n  \"MIGRATION_COMPLETED\",\n  \"MIGRATION_START\",\n  \"NEW_TAB_INIT\",\n  \"NEW_TAB_INITIAL_STATE\",\n  \"NEW_TAB_LOAD\",\n  \"NEW_TAB_REHYDRATED\",\n  \"NEW_TAB_STATE_REQUEST\",\n  \"NEW_TAB_UNLOAD\",\n  \"OPEN_DOWNLOAD_FILE\",\n  \"OPEN_LINK\",\n  \"OPEN_NEW_WINDOW\",\n  \"OPEN_PRIVATE_WINDOW\",\n  \"PAGE_PRERENDERED\",\n  \"PLACES_BOOKMARK_ADDED\",\n  \"PLACES_BOOKMARK_REMOVED\",\n  \"PLACES_HISTORY_CLEARED\",\n  \"PLACES_LINKS_CHANGED\",\n  \"PLACES_LINK_BLOCKED\",\n  \"PLACES_LINK_DELETED\",\n  \"PLACES_SAVED_TO_POCKET\",\n  \"PREFS_INITIAL_VALUES\",\n  \"PREF_CHANGED\",\n  \"PREVIEW_REQUEST\",\n  \"PREVIEW_REQUEST_CANCEL\",\n  \"PREVIEW_RESPONSE\",\n  \"REMOVE_DOWNLOAD_FILE\",\n  \"RICH_ICON_MISSING\",\n  \"SAVE_SESSION_PERF_DATA\",\n  \"SAVE_TO_POCKET\",\n  \"SCREENSHOT_UPDATED\",\n  \"SECTION_DEREGISTER\",\n  \"SECTION_DISABLE\",\n  \"SECTION_ENABLE\",\n  \"SECTION_MOVE\",\n  \"SECTION_OPTIONS_CHANGED\",\n  \"SECTION_REGISTER\",\n  \"SECTION_UPDATE\",\n  \"SECTION_UPDATE_CARD\",\n  \"SETTINGS_CLOSE\",\n  \"SETTINGS_OPEN\",\n  \"SET_PREF\",\n  \"SHOW_DOWNLOAD_FILE\",\n  \"SHOW_FIREFOX_ACCOUNTS\",\n  \"SNIPPETS_BLOCKLIST_CLEARED\",\n  \"SNIPPETS_BLOCKLIST_UPDATED\",\n  \"SNIPPETS_DATA\",\n  \"SNIPPETS_RESET\",\n  \"SNIPPET_BLOCKED\",\n  \"SYSTEM_TICK\",\n  \"TELEMETRY_IMPRESSION_STATS\",\n  \"TELEMETRY_PERFORMANCE_EVENT\",\n  \"TELEMETRY_UNDESIRED_EVENT\",\n  \"TELEMETRY_USER_EVENT\",\n  \"THEME_UPDATE\",\n  \"TOP_SITES_CANCEL_EDIT\",\n  \"TOP_SITES_EDIT\",\n  \"TOP_SITES_INSERT\",\n  \"TOP_SITES_PIN\",\n  \"TOP_SITES_PREFS_UPDATED\",\n  \"TOP_SITES_UNPIN\",\n  \"TOP_SITES_UPDATED\",\n  \"TOTAL_BOOKMARKS_REQUEST\",\n  \"TOTAL_BOOKMARKS_RESPONSE\",\n  \"UNINIT\",\n  \"UPDATE_SECTION_PREFS\",\n  \"WEBEXT_CLICK\",\n  \"WEBEXT_DISMISS\"\n]) {\n  actionTypes[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n  const meta = action.meta ? Object.assign({}, action.meta) : {};\n  if (!options || !options.from || !options.to) {\n    throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n  }\n  // For each of these fields, if they are passed as an option,\n  // add them to the action. If they are not defined, remove them.\n  [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n    if (typeof options[o] !== \"undefined\") {\n      meta[o] = options[o];\n    } else if (meta[o]) {\n      delete meta[o];\n    }\n  });\n  return Object.assign({}, action, {meta});\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {bool}   skipLocal Used by OnlyToMain to skip the main reducer\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n  return _RouteMessage(action, {\n    from: CONTENT_MESSAGE_TYPE,\n    to: MAIN_MESSAGE_TYPE,\n    fromTarget,\n    skipLocal\n  });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n  return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE\n  });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n *                    and also sent to a particular Content process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @param  {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n  if (!target) {\n    throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n  }\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE,\n    toTarget: target,\n    skipMain\n  });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n *                    and skip the main reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n  return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: PRELOAD_MESSAGE_TYPE\n  });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n *                   be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n *                     be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param  {object} data Fields to include in the ping\n * @param  {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n  const action = {type: actionTypes.SET_PREF, data: {name, value}};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n  if (!data || !data.source) {\n    throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n  }\n  const action = {type, data};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\n\nthis.actionCreators = {\n  BroadcastToContent,\n  UserEvent,\n  ASRouterUserEvent,\n  UndesiredEvent,\n  PerfEvent,\n  ImpressionStats,\n  AlsoToOneContent,\n  OnlyToOneContent,\n  AlsoToMain,\n  OnlyToMain,\n  AlsoToPreloaded,\n  SetPref,\n  WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n  isSendToMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n  },\n  isBroadcastToContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToOneContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToPreloaded(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n      action.meta.from === MAIN_MESSAGE_TYPE;\n  },\n  isFromMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.from === MAIN_MESSAGE_TYPE &&\n      action.meta.to === CONTENT_MESSAGE_TYPE;\n  },\n  getPortIdOfSender(action) {\n    return (action.meta && action.meta.fromTarget) || null;\n  },\n  _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n  \"actionTypes\",\n  \"actionCreators\",\n  \"actionUtils\",\n  \"globalImportContext\",\n  \"UI_CODE\",\n  \"BACKGROUND_PROCESS\",\n  \"MAIN_MESSAGE_TYPE\",\n  \"CONTENT_MESSAGE_TYPE\",\n  \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n  \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n  constructor(createKey) {\n    this.createKey = createKey || this.defaultCreateKey;\n  }\n\n  defaultCreateKey(item) {\n    return item;\n  }\n\n  /**\n   * Dedupe any number of grouped elements favoring those from earlier groups.\n   *\n   * @param {Array} groups Contains an arbitrary number of arrays of elements.\n   * @returns {Array} A matching array of each provided group deduped.\n   */\n  group(...groups) {\n    const globalKeys = new Set();\n    const result = [];\n    for (const values of groups) {\n      const valueMap = new Map();\n      for (const value of values) {\n        const key = this.createKey(value);\n        if (!globalKeys.has(key) && !valueMap.has(key)) {\n          valueMap.set(key, value);\n        }\n      }\n      result.push(valueMap);\n      valueMap.forEach((value, key) => globalKeys.add(key));\n    }\n    return result.map(m => Array.from(m.values()));\n  }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n  App: {\n    // Have we received real data from the app yet?\n    initialized: false,\n    // The version of the system-addon\n    version: null\n  },\n  Snippets: {initialized: false},\n  TopSites: {\n    // Have we received real data from history yet?\n    initialized: false,\n    // The history (and possibly default) links\n    rows: [],\n    // Used in content only to dispatch action to TopSiteForm.\n    editForm: null\n  },\n  Prefs: {\n    initialized: false,\n    values: {}\n  },\n  Theme: {className: \"\"},\n  Dialog: {\n    visible: false,\n    data: {}\n  },\n  Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n  switch (action.type) {\n    case at.INIT:\n      return Object.assign({}, prevState, action.data || {}, {initialized: true});\n    default:\n      return prevState;\n  }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n  // Remove any pinned links\n  const pinnedUrls = pinned.map(link => link && link.url);\n  let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n  newLinks = newLinks.map(link => {\n    if (link && link.isPinned) {\n      delete link.isPinned;\n      delete link.pinIndex;\n    }\n    return link;\n  });\n\n  // Then insert them in their specified location\n  pinned.forEach((val, index) => {\n    if (!val) { return; }\n    let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n    if (index > newLinks.length) {\n      newLinks[index] = link;\n    } else {\n      newLinks.splice(index, 0, link);\n    }\n  });\n\n  return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n  let hasMatch;\n  let newRows;\n  switch (action.type) {\n    case at.TOP_SITES_UPDATED:\n      if (!action.data || !action.data.links) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n    case at.TOP_SITES_PREFS_UPDATED:\n      return Object.assign({}, prevState, {pref: action.data.pref});\n    case at.TOP_SITES_EDIT:\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: action.data.index,\n          previewResponse: null\n        }\n      });\n    case at.TOP_SITES_CANCEL_EDIT:\n      return Object.assign({}, prevState, {editForm: null});\n    case at.PREVIEW_RESPONSE:\n      if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: action.data.preview,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST_CANCEL:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null\n        }\n      });\n    case at.SCREENSHOT_UPDATED:\n      newRows = prevState.rows.map(row => {\n        if (row && row.url === action.data.url) {\n          hasMatch = true;\n          return Object.assign({}, row, {screenshot: action.data.screenshot});\n        }\n        return row;\n      });\n      return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n          return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const newSite = Object.assign({}, site);\n          delete newSite.bookmarkGuid;\n          delete newSite.bookmarkTitle;\n          delete newSite.bookmarkDateCreated;\n          return newSite;\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_LINK_DELETED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.filter(site => action.data.url !== site.url);\n      return Object.assign({}, prevState, {rows: newRows});\n    default:\n      return prevState;\n  }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n  switch (action.type) {\n    case at.DIALOG_OPEN:\n      return Object.assign({}, prevState, {visible: true, data: action.data});\n    case at.DIALOG_CANCEL:\n      return Object.assign({}, prevState, {visible: false});\n    case at.DELETE_HISTORY_URL:\n      return Object.assign({}, INITIAL_STATE.Dialog);\n    default:\n      return prevState;\n  }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n  let newValues;\n  switch (action.type) {\n    case at.PREFS_INITIAL_VALUES:\n      return Object.assign({}, prevState, {initialized: true, values: action.data});\n    case at.PREF_CHANGED:\n      newValues = Object.assign({}, prevState.values);\n      newValues[action.data.name] = action.data.value;\n      return Object.assign({}, prevState, {values: newValues});\n    default:\n      return prevState;\n  }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n  let hasMatch;\n  let newState;\n  switch (action.type) {\n    case at.SECTION_DEREGISTER:\n      return prevState.filter(section => section.id !== action.data);\n    case at.SECTION_REGISTER:\n      // If section exists in prevState, update it\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          hasMatch = true;\n          return Object.assign({}, section, action.data);\n        }\n        return section;\n      });\n      // Otherwise, append it\n      if (!hasMatch) {\n        const initialized = !!(action.data.rows && action.data.rows.length > 0);\n        const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n        newState.push(section);\n      }\n      return newState;\n    case at.SECTION_UPDATE:\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          // If the action is updating rows, we should consider initialized to be true.\n          // This can be overridden if initialized is defined in the action.data\n          const initialized = action.data.rows ? {initialized: true} : {};\n\n          // Make sure pinned cards stay at their current position when rows are updated.\n          // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n          if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n            const rows = Array.from(action.data.rows);\n            section.rows.forEach((card, index) => {\n              if (card.pinned) {\n                rows.splice(index, 0, card);\n              }\n            });\n            return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n          }\n\n          return Object.assign({}, section, initialized, action.data);\n        }\n        return section;\n      });\n\n      if (!action.data.dedupeConfigurations) {\n        return newState;\n      }\n\n      action.data.dedupeConfigurations.forEach(dedupeConf => {\n        newState = newState.map(section => {\n          if (section.id === dedupeConf.id) {\n            const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n              const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n              const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n              return newRows;\n            }, section.rows);\n\n            return Object.assign({}, section, {rows: dedupedRows});\n          }\n\n          return section;\n        });\n      });\n\n      return newState;\n    case at.SECTION_UPDATE_CARD:\n      return prevState.map(section => {\n        if (section && section.id === action.data.id && section.rows) {\n          const newRows = section.rows.map(card => {\n            if (card.url === action.data.url) {\n              return Object.assign({}, card, action.data.options);\n            }\n            return card;\n          });\n          return Object.assign({}, section, {rows: newRows});\n        }\n        return section;\n      });\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the item within the rows that is attempted to be bookmarked\n          if (item.url === action.data.url) {\n            const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n            return Object.assign({}, item, {\n              bookmarkGuid,\n              bookmarkTitle,\n              bookmarkDateCreated: dateAdded,\n              type: \"bookmark\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_SAVED_TO_POCKET:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          if (item.url === action.data.url) {\n            return Object.assign({}, item, {\n              open_url: action.data.open_url,\n              pocket_id: action.data.pocket_id,\n              title: action.data.title,\n              type: \"pocket\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the bookmark within the rows that is attempted to be removed\n          if (item.url === action.data.url) {\n            const newSite = Object.assign({}, item);\n            delete newSite.bookmarkGuid;\n            delete newSite.bookmarkTitle;\n            delete newSite.bookmarkDateCreated;\n            if (!newSite.type || newSite.type === \"bookmark\") {\n              newSite.type = \"history\";\n            }\n            return newSite;\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_LINK_DELETED:\n    case at.PLACES_LINK_BLOCKED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n    case at.DELETE_FROM_POCKET:\n    case at.ARCHIVE_FROM_POCKET:\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n    default:\n      return prevState;\n  }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n  switch (action.type) {\n    case at.SNIPPETS_DATA:\n      return Object.assign({}, prevState, {initialized: true}, action.data);\n    case at.SNIPPET_BLOCKED:\n      return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n    case at.SNIPPETS_BLOCKLIST_CLEARED:\n      return Object.assign({}, prevState, {blockList: []});\n    case at.SNIPPETS_RESET:\n      return INITIAL_STATE.Snippets;\n    default:\n      return prevState;\n  }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n  switch (action.type) {\n    case at.THEME_UPDATE:\n      return Object.assign({}, prevState, action.data);\n    default:\n      return prevState;\n  }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Reducers.jsm","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\n// Note: Provider is hardcoded right now since we only have one message provider.\n// When we have more than one, it will need to come from the message data.\nconst PROVIDER = \"snippets\";\n\nexport const ASRouterUtils = {\n  addListener(listener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  removeListener(listener) {\n    global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  sendMessage(action) {\n    global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  },\n  blockById(id) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  unblockById(id) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  sendUserActionTelemetry(data) {\n    const eventType =  `${PROVIDER}_user_event`;\n    const payload = ac.ASRouterUserEvent(Object.assign({}, data, {action: eventType}));\n    global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n  },\n  getNextMessage() {\n    ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n  }\n};\n\nclass ASRouterUISurface extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessageFromParent = this.onMessageFromParent.bind(this);\n    this.state = {message: {}};\n  }\n\n  onBlockById(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  onMessageFromParent({data: action}) {\n    switch (action.type) {\n      case \"SET_MESSAGE\":\n        this.setState({message: action.data});\n        break;\n      case \"CLEAR_MESSAGE\":\n        this.setState({message: {}});\n        break;\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.addListener(this.onMessageFromParent);\n    ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeMessageListener(this.onMessageFromParent);\n  }\n\n  render() {\n    const {message} = this.state;\n    if (!message.id) { return null; }\n    return (<SimpleSnippet\n      {...message}\n      UISurface={this.props.id}\n      getNextMessage={ASRouterUtils.getNextMessage}\n      onBlock={this.onBlockById(message.id)}\n      sendUserActionTelemetry={ASRouterUtils.sendUserActionTelemetry} />\n    );\n  }\n}\n\nexport function initASRouter() {\n  ReactDOM.render(<ASRouterUISurface id=\"NEWTAB_FOOTER_BAR\" />, document.getElementById(\"snippets-container\"));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/asrouter-content.jsx","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param  {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function}             a reducer that, on MERGE_STORE_ACTION action,\n *                                will return the action.data object merged\n *                                into the previous state, and the result\n *                                of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n  return (prevState, action) => {\n    if (action.type === MERGE_STORE_ACTION) {\n      return Object.assign({}, prevState, action.data);\n    }\n\n    return mainReducer(prevState, action);\n  };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n  const skipLocal = action.meta && action.meta.skipLocal;\n  if (au.isSendToMain(action)) {\n    sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  }\n  if (!skipLocal) {\n    next(action);\n  }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n  if (store._didRehydrate) {\n    return next(action);\n  }\n\n  const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n  const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n  if (isRehydrationRequest) {\n    store._didRequestInitialState = true;\n    return next(action);\n  }\n\n  if (isMergeStoreAction) {\n    store._didRehydrate = true;\n    return next(action);\n  }\n\n  // If init happened after our request was made, we need to re-request\n  if (store._didRequestInitialState && action.type === at.INIT) {\n    return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n  }\n\n  if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n    // Note that actions received before didRehydrate will not be dispatched\n    // because this could negatively affect preloading and the the state\n    // will be replaced by rehydration anyway.\n    return null;\n  }\n\n  return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n  if (store._receivedFromMain) {\n    next(action);\n  } else if (au.isFromMain(action)) {\n    next(action);\n    store._receivedFromMain = true;\n    // Sending out all the early actions as main is ready now\n    if (store._earlyActionQueue) {\n      store._earlyActionQueue.forEach(next);\n      store._earlyActionQueue = [];\n    }\n  } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n    store._earlyActionQueue = store._earlyActionQueue || [];\n    store._earlyActionQueue.push(action);\n  } else {\n    // Let any other type of action go through\n    next(action);\n  }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param  {object} reducers An object containing Redux reducers\n * @param  {object} intialState (optional) The initial state of the store, if desired\n * @return {object}          A redux store\n */\nexport function initStore(reducers, initialState) {\n  const store = createStore(\n    mergeStateReducer(combineReducers(reducers)),\n    initialState,\n    global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n  );\n\n  store._didRehydrate = false;\n  store._didRequestInitialState = false;\n\n  if (global.addMessageListener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n      try {\n        store.dispatch(msg.data);\n      } catch (ex) {\n        console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n        dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n      }\n    });\n  }\n\n  return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 9\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.windowObj = this.props.windowObj || window;\n    this.onClick = this.onClick.bind(this);\n  }\n\n  /**\n   * Since we only get here if part of the page has crashed, do a\n   * forced reload to give us the best chance at recovering.\n   */\n  onClick() {\n    this.windowObj.location.reload(true);\n  }\n\n  render() {\n    const defaultClass = \"as-error-fallback\";\n    let className;\n    if (\"className\" in this.props) {\n      className = `${this.props.className} ${defaultClass}`;\n    } else {\n      className = defaultClass;\n    }\n\n    // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n    return (\n      <div className={className}>\n        <div>\n          <FormattedMessage\n            defaultMessage=\"Oops, something went wrong loading this content.\"\n            id=\"error_fallback_default_info\" />\n        </div>\n        <span>\n          <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n            <FormattedMessage\n              defaultMessage=\"Refresh page to try again.\"\n              id=\"error_fallback_default_refresh_suggestion\" />\n          </a>\n        </span>\n      </div>\n    );\n  }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {hasError: false};\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({hasError: true});\n  }\n\n  render() {\n    if (!this.state.hasError) {\n      return (this.props.children);\n    }\n\n    return <this.props.FallbackComponent className={this.props.className} />;\n  }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n  id: \"menu_action_open_private_window\",\n  icon: \"new-window-private\",\n  action: ac.OnlyToMain({\n    type: at.OPEN_PRIVATE_WINDOW,\n    data: {url: site.url, referrer: site.referrer}\n  }),\n  userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n  switch (platform) {\n    case \"win\":\n      return \"menu_action_show_file_windows\";\n    case \"macosx\":\n      return \"menu_action_show_file_mac_os\";\n    case \"linux\":\n      return \"menu_action_show_file_linux\";\n    default:\n      return \"menu_action_show_file_default\";\n  }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  EmptyItem: () => ({type: \"empty\"}),\n  RemoveBookmark: site => ({\n    id: \"menu_action_remove_bookmark\",\n    icon: \"bookmark-added\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_BOOKMARK_BY_ID,\n      data: site.bookmarkGuid\n    }),\n    userEvent: \"BOOKMARK_DELETE\"\n  }),\n  AddBookmark: site => ({\n    id: \"menu_action_bookmark\",\n    icon: \"bookmark-hollow\",\n    action: ac.AlsoToMain({\n      type: at.BOOKMARK_URL,\n      data: {url: site.url, title: site.title, type: site.type}\n    }),\n    userEvent: \"BOOKMARK_ADD\"\n  }),\n  OpenInNewWindow: site => ({\n    id: \"menu_action_open_new_window\",\n    icon: \"new-window\",\n    action: ac.AlsoToMain({\n      type: at.OPEN_NEW_WINDOW,\n      data: {\n        referrer: site.referrer,\n        typedBonus: site.typedBonus,\n        url: site.url\n      }\n    }),\n    userEvent: \"OPEN_NEW_WINDOW\"\n  }),\n  BlockUrl: (site, index, eventSource) => ({\n    id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.AlsoToMain({\n      type: at.BLOCK_URL,\n      data: {url: site.url, pocket_id: site.pocket_id}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      block: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"BLOCK\"\n  }),\n\n  // This is an option for web extentions which will result in remove items from\n  // memory and notify the web extenion, rather than using the built-in block list.\n  WebExtDismiss: (site, index, eventSource) => ({\n    id: \"menu_action_webext_dismiss\",\n    string_id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n      source: eventSource,\n      url: site.url,\n      action_position: index\n    })\n  }),\n  DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n    id: \"menu_action_delete\",\n    icon: \"delete\",\n    action: {\n      type: at.DIALOG_OPEN,\n      data: {\n        onConfirm: [\n          ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n          ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n        ],\n        eventSource,\n        body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n        confirm_button_string_id: \"menu_action_delete\",\n        cancel_button_string_id: \"topsites_form_cancel_button\",\n        icon: \"modal-delete\"\n      }\n    },\n    userEvent: \"DIALOG_OPEN\"\n  }),\n  ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n    id: GetPlatformString(platform),\n    icon: \"search\",\n    action: ac.OnlyToMain({\n      type: at.SHOW_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  OpenFile: site => ({\n    id: \"menu_action_open_file\",\n    icon: \"open-file\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  CopyDownloadLink: site => ({\n    id: \"menu_action_copy_download_link\",\n    icon: \"copy\",\n    action: ac.OnlyToMain({\n      type: at.COPY_DOWNLOAD_LINK,\n      data: {url: site.url}\n    })\n  }),\n  GoToDownloadPage: site => ({\n    id: \"menu_action_go_to_download_page\",\n    icon: \"download\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: site.referrer}\n    }),\n    disabled: !site.referrer\n  }),\n  RemoveDownload: site => ({\n    id: \"menu_action_remove_download\",\n    icon: \"delete\",\n    action: ac.OnlyToMain({\n      type: at.REMOVE_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  PinTopSite: (site, index) => ({\n    id: \"menu_action_pin\",\n    icon: \"pin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_PIN,\n      data: {site: {url: site.url}, index}\n    }),\n    userEvent: \"PIN\"\n  }),\n  UnpinTopSite: site => ({\n    id: \"menu_action_unpin\",\n    icon: \"unpin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_UNPIN,\n      data: {site: {url: site.url}}\n    }),\n    userEvent: \"UNPIN\"\n  }),\n  SaveToPocket: (site, index, eventSource) => ({\n    id: \"menu_action_save_to_pocket\",\n    icon: \"pocket\",\n    action: ac.AlsoToMain({\n      type: at.SAVE_TO_POCKET,\n      data: {site: {url: site.url, title: site.title}}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      pocket: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"SAVE_TO_POCKET\"\n  }),\n  DeleteFromPocket: site => ({\n    id: \"menu_action_delete_pocket\",\n    icon: \"delete\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"DELETE_FROM_POCKET\"\n  }),\n  ArchiveFromPocket: site => ({\n    id: \"menu_action_archive_pocket\",\n    icon: \"check\",\n    action: ac.AlsoToMain({\n      type: at.ARCHIVE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"ARCHIVE_FROM_POCKET\"\n  }),\n  EditTopSite: (site, index) => ({\n    id: \"edit_topsites_button_text\",\n    icon: \"edit\",\n    action: {\n      type: at.TOP_SITES_EDIT,\n      data: {index}\n    }\n  }),\n  CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n  CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n  CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n  CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n  OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n    const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n    // Handle special case of default site\n    const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n    const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n      const {action, impression, id, string_id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id: string_id || id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            const userEventData = Object.assign({\n              event: userEvent,\n              source,\n              action_position: index\n            }, siteInfo);\n            props.dispatch(ac.UserEvent(userEventData));\n          }\n          if (impression && props.shouldSendImpressionStats) {\n            props.dispatch(impression);\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.hideContext = this.hideContext.bind(this);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  hideContext() {\n    this.props.onUpdate(false);\n  }\n\n  componentDidMount() {\n    setTimeout(() => {\n      global.addEventListener(\"click\", this.hideContext);\n    }, 0);\n  }\n\n  componentWillUnmount() {\n    global.removeEventListener(\"click\", this.hideContext);\n  }\n\n  onClick(event) {\n    // Eat all clicks on the context menu so they don't bubble up to window.\n    // This prevents the context menu from closing when clicking disabled items\n    // or the separators.\n    event.stopPropagation();\n  }\n\n  render() {\n    return (<span className=\"context-menu\" onClick={this.onClick}>\n      <ul role=\"menu\" className=\"context-menu-list\">\n        {this.props.options.map((option, i) => (option.type === \"separator\" ?\n          (<li key={i} className=\"separator\" />) :\n          (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n        ))}\n      </ul>\n    </span>);\n  }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onKeyDown = this.onKeyDown.bind(this);\n  }\n\n  onClick() {\n    this.props.hideContext();\n    this.props.option.onClick();\n  }\n\n  onKeyDown(event) {\n    const {option} = this.props;\n    switch (event.key) {\n      case \"Tab\":\n        // tab goes down in context menu, shift + tab goes up in context menu\n        // if we're on the last item, one more tab will close the context menu\n        // similarly, if we're on the first item, one more shift + tab will close it\n        if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n          this.props.hideContext();\n        }\n        break;\n      case \"Enter\":\n        this.props.hideContext();\n        option.onClick();\n        break;\n    }\n  }\n\n  render() {\n    const {option} = this.props;\n    return (\n      <li role=\"menuitem\" className=\"context-menu-item\">\n        <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n          {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n          {option.label}\n        </a>\n      </li>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onAcknowledge = this.onAcknowledge.bind(this);\n  }\n\n  onAcknowledge() {\n    this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n    this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n  }\n\n  render() {\n    const {disclaimer} = this.props;\n    return (\n      <div className=\"section-disclaimer\">\n          <div className=\"section-disclaimer-text\">\n            {getFormattedMessage(disclaimer.text)}\n            {disclaimer.link &&\n              <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n                {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n              </a>\n            }\n          </div>\n\n          <button onClick={this.onAcknowledge}>\n            {getFormattedMessage(disclaimer.button)}\n          </button>\n      </div>\n    );\n  }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBodyMount = this.onBodyMount.bind(this);\n    this.onHeaderClick = this.onHeaderClick.bind(this);\n    this.onTransitionEnd = this.onTransitionEnd.bind(this);\n    this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n    this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n  }\n\n  componentWillMount() {\n    this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  componentWillUpdate(nextProps) {\n    // Check if we're about to go from expanded to collapsed\n    if (!this.props.collapsed && nextProps.collapsed) {\n      // This next line forces a layout flush of the section body, which has a\n      // max-height style set, so that the upcoming collapse animation can\n      // animate from that height to the collapsed height. Without this, the\n      // update is coalesced and there's no animation from no-max-height to 0.\n      this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n    }\n  }\n\n  componentWillUnmount() {\n    this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  enableOrDisableAnimation() {\n    // Only animate the collapse/expand for visible tabs.\n    const visible = this.props.document.visibilityState === VISIBLE;\n    if (this.state.enableAnimation !== visible) {\n      this.setState({enableAnimation: visible});\n    }\n  }\n\n  onBodyMount(node) {\n    this.sectionBody = node;\n  }\n\n  onHeaderClick() {\n    // If this.sectionBody is unset, it means that we're in some sort of error\n    // state, probably displaying the error fallback, so we won't be able to\n    // compute the height, and we don't want to persist the preference.\n    // If props.collapsed is undefined handler shouldn't do anything.\n    if (!this.sectionBody || this.props.collapsed === undefined) {\n      return;\n    }\n\n    // Get the current height of the body so max-height transitions can work\n    this.setState({\n      isAnimating: true,\n      maxHeight: `${this.sectionBody.scrollHeight}px`\n    });\n    const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n    this.props.dispatch(action);\n    this.props.dispatch(ac.UserEvent({\n      event: userEvent,\n      source: this.props.source\n    }));\n  }\n\n  onTransitionEnd(event) {\n    // Only update the animating state for our own transition (not a child's)\n    if (event.target === event.currentTarget) {\n      this.setState({isAnimating: false});\n    }\n  }\n\n  renderIcon() {\n    const {icon} = this.props;\n    if (icon && icon.startsWith(\"moz-extension://\")) {\n      return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n    }\n    return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuButtonMouseEnter() {\n    this.setState({menuButtonHover: true});\n  }\n\n  onMenuButtonMouseLeave() {\n    this.setState({menuButtonHover: false});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const isCollapsible = this.props.collapsed !== undefined;\n    const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n    const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast} = this.props;\n    const disclaimerPref = `section.${id}.showDisclaimer`;\n    const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n    const active = menuButtonHover || showContextMenu;\n\n    return (\n      <section className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}>\n        <div className=\"section-top-bar\">\n          <h3 className=\"section-title\">\n            <span className=\"click-target\" onClick={this.onHeaderClick}>\n              {this.renderIcon()}\n              {getFormattedMessage(title)}\n              {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n            </span>\n          </h3>\n          <div>\n            <button\n              className=\"context-menu-button icon\"\n              onClick={this.onMenuButtonClick}\n              onMouseEnter={this.onMenuButtonMouseEnter}\n              onMouseLeave={this.onMenuButtonMouseLeave}>\n              <span className=\"sr-only\">\n                <FormattedMessage id=\"section_context_menu_button_sr\" />\n              </span>\n            </button>\n            {showContextMenu &&\n              <SectionMenu\n                id={id}\n                extraOptions={extraMenuOptions}\n                eventSource={eventSource}\n                showPrefName={showPrefName}\n                privacyNoticeURL={privacyNoticeURL}\n                collapsed={collapsed}\n                onUpdate={this.onMenuUpdate}\n                isFirst={isFirst}\n                isLast={isLast}\n                dispatch={dispatch} />\n            }\n          </div>\n        </div>\n        <ErrorBoundary className=\"section-body-fallback\">\n          <div\n            className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n            onTransitionEnd={this.onTransitionEnd}\n            ref={this.onBodyMount}\n            style={isAnimating && !collapsed ? {maxHeight} : null}>\n            {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n            {this.props.children}\n          </div>\n        </ErrorBoundary>\n      </section>\n    );\n  }\n}\n\n_CollapsibleSection.defaultProps = {\n  document: global.document || {\n    addEventListener: () => {},\n    removeEventListener: () => {},\n    visibilityState: \"hidden\"\n  },\n  Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  MoveUp: section => ({\n    id: \"section_menu_action_move_up\",\n    icon: \"arrowhead-up\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: -1}\n    }),\n    userEvent: \"MENU_MOVE_UP\",\n    disabled: !!section.isFirst\n  }),\n  MoveDown: section => ({\n    id: \"section_menu_action_move_down\",\n    icon: \"arrowhead-down\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: +1}\n    }),\n    userEvent: \"MENU_MOVE_DOWN\",\n    disabled: !!section.isLast\n  }),\n  RemoveSection: section => ({\n    id: \"section_menu_action_remove_section\",\n    icon: \"dismiss\",\n    action: ac.SetPref(section.showPrefName, false),\n    userEvent: \"MENU_REMOVE\"\n  }),\n  CollapseSection: section => ({\n    id: \"section_menu_action_collapse_section\",\n    icon: \"minimize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n    userEvent: \"MENU_COLLAPSE\"\n  }),\n  ExpandSection: section => ({\n    id: \"section_menu_action_expand_section\",\n    icon: \"maximize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n    userEvent: \"MENU_EXPAND\"\n  }),\n  ManageSection: section => ({\n    id: \"section_menu_action_manage_section\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n    userEvent: \"MENU_MANAGE\"\n  }),\n  AddTopSite: section => ({\n    id: \"section_menu_action_add_topsite\",\n    icon: \"add\",\n    action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n    userEvent: \"MENU_ADD_TOPSITE\"\n  }),\n  PrivacyNotice: section => ({\n    id: \"section_menu_action_privacy_notice\",\n    icon: \"info\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: section.privacyNoticeURL}\n    }),\n    userEvent: \"MENU_PRIVACY_NOTICE\"\n  }),\n  CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n  constructor(props) {\n    super(props);\n    // Just for test dependency injection:\n    this.perfSvc = this.props.perfSvc || perfSvc;\n\n    this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n    this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n    this._reportMissingData = false;\n    this._timestampHandled = false;\n    this._recordedFirstRender = false;\n  }\n\n  componentDidMount() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  componentDidUpdate() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  /**\n   * Call the given callback after the upcoming frame paints.\n   *\n   * @note Both setTimeout and requestAnimationFrame are throttled when the page\n   * is hidden, so this callback may get called up to a second or so after the\n   * requestAnimationFrame \"paint\" for hidden tabs.\n   *\n   * Newtabs hidden while loading will presumably be fairly rare (other than\n   * preloaded tabs, which we will be filtering out on the server side), so such\n   * cases should get lost in the noise.\n   *\n   * If we decide that it's important to find out when something that's hidden\n   * has \"painted\", however, another option is to post a message to this window.\n   * That should happen even faster than setTimeout, and, at least as of this\n   * writing, it's not throttled in hidden windows in Firefox.\n   *\n   * @param {Function} callback\n   *\n   * @returns void\n   */\n  _afterFramePaint(callback) {\n    requestAnimationFrame(() => setTimeout(callback, 0));\n  }\n\n  _maybeSendBadStateEvent() {\n    // Follow up bugs:\n    // https://github.com/mozilla/activity-stream/issues/3691\n    if (!this.props.initialized) {\n      // Remember to report back when data is available.\n      this._reportMissingData = true;\n    } else if (this._reportMissingData) {\n      this._reportMissingData = false;\n      // Report how long it took for component to become initialized.\n      this._sendBadStateEvent();\n    }\n  }\n\n  _maybeSendPaintedEvent() {\n    // If we've already handled a timestamp, don't do it again.\n    if (this._timestampHandled || !this.props.initialized) {\n      return;\n    }\n\n    // And if we haven't, we're doing so now, so remember that. Even if\n    // something goes wrong in the callback, we can't try again, as we'd be\n    // sending back the wrong data, and we have to do it here, so that other\n    // calls to this method while waiting for the next frame won't also try to\n    // handle it.\n    this._timestampHandled = true;\n    this._afterFramePaint(this._sendPaintedEvent);\n  }\n\n  /**\n   * Triggered by call to render. Only first call goes through due to\n   * `_recordedFirstRender`.\n   */\n  _ensureFirstRenderTsRecorded() {\n    // Used as t0 for recording how long component took to initialize.\n    if (!this._recordedFirstRender) {\n      this._recordedFirstRender = true;\n      // topsites_first_render_ts, highlights_first_render_ts.\n      const key = `${this.props.id}_first_render_ts`;\n      this.perfSvc.mark(key);\n    }\n  }\n\n  /**\n   * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n   * of how much longer the data took to be ready for display than it would\n   * have been the ideal case.\n   * https://github.com/mozilla/ping-centre/issues/98\n   */\n  _sendBadStateEvent() {\n    // highlights_data_ready_ts, topsites_data_ready_ts.\n    const dataReadyKey = `${this.props.id}_data_ready_ts`;\n    this.perfSvc.mark(dataReadyKey);\n\n    try {\n      const firstRenderKey = `${this.props.id}_first_render_ts`;\n      // value has to be Int32.\n      const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n                             this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        // highlights_data_late_by_ms, topsites_data_late_by_ms.\n        data: {[`${this.props.id}_data_late_by_ms`]: value}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.\n    }\n  }\n\n  _sendPaintedEvent() {\n    // Record first_painted event but only send if topsites.\n    if (this.props.id !== \"topsites\") {\n      return;\n    }\n\n    // topsites_first_painted_ts.\n    const key = `${this.props.id}_first_painted_ts`;\n    this.perfSvc.mark(key);\n\n    try {\n      const data = {};\n      data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up, and should continue\n      // to set this._timestampHandled to avoid going through this again.\n    }\n  }\n\n  render() {\n    if (RECORDED_SECTIONS.includes(this.props.id)) {\n      this._ensureFirstRenderTsRecorded();\n      this._maybeSendBadStateEvent();\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n  ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n  // Borrow the high-resolution timer from the hidden window....\n  usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n  // we must be running in content space\n  // eslint-disable-next-line no-undef\n  usablePerfObj = performance;\n} else {\n  // This is a dummy object so this file doesn't crash in the node prerendering\n  // task.\n  usablePerfObj = {\n    now() {},\n    mark() {}\n  };\n}\n\nfunction _PerfService(options) {\n  // For testing, so that we can use a fake Window.performance object with\n  // known state.\n  if (options && options.performanceObj) {\n    this._perf = options.performanceObj;\n  } else {\n    this._perf = usablePerfObj;\n  }\n}\n\n_PerfService.prototype = {\n  /**\n   * Calls the underlying mark() method on the appropriate Window.performance\n   * object to add a mark with the given name to the appropriate performance\n   * timeline.\n   *\n   * @param  {String} name  the name to give the current mark\n   * @return {void}\n   */\n  mark: function mark(str) {\n    this._perf.mark(str);\n  },\n\n  /**\n   * Calls the underlying getEntriesByName on the appropriate Window.performance\n   * object.\n   *\n   * @param  {String} name\n   * @param  {String} type eg \"mark\"\n   * @return {Array}       Performance* objects\n   */\n  getEntriesByName: function getEntriesByName(name, type) {\n    return this._perf.getEntriesByName(name, type);\n  },\n\n  /**\n   * The timeOrigin property from the appropriate performance object.\n   * Used to ensure that timestamps from the add-on code and the content code\n   * are comparable.\n   *\n   * @note If this is called from a context without a window\n   * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n   * window, which appears to be the first created window (and thus\n   * timeOrigin) in the browser.  Note also, however, there is also a private\n   * hidden window, presumably for private browsing, which appears to be\n   * created dynamically later.  Exactly how/when that shows up needs to be\n   * investigated.\n   *\n   * @return {Number} A double of milliseconds with a precision of 0.5us.\n   */\n  get timeOrigin() {\n    return this._perf.timeOrigin;\n  },\n\n  /**\n   * Returns the \"absolute\" version of performance.now(), i.e. one that\n   * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n   * be comparable across both chrome and content.\n   *\n   * @return {Number}\n   */\n  absNow: function absNow() {\n    return this.timeOrigin + this._perf.now();\n  },\n\n  /**\n   * This returns the absolute startTime from the most recent performance.mark()\n   * with the given name.\n   *\n   * @param  {String} name  the name to lookup the start time for\n   *\n   * @return {Number}       the returned start time, as a DOMHighResTimeStamp\n   *\n   * @throws {Error}        \"No Marks with the name ...\" if none are available\n   *\n   * @note Always surround calls to this by try/catch.  Otherwise your code\n   * may fail when the `privacy.resistFingerprinting` pref is true.  When\n   * this pref is set, all attempts to get marks will likely fail, which will\n   * cause this method to throw.\n   *\n   * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n   * for more info.\n   */\n  getMostRecentAbsMarkStartByName(name) {\n    let entries = this.getEntriesByName(name, \"mark\");\n\n    if (!entries.length) {\n      throw new Error(`No marks with the name ${name}`);\n    }\n\n    let mostRecentEntry = entries[entries.length - 1];\n    return this._perf.timeOrigin + mostRecentEntry.startTime;\n  }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n  MIN_CORNER_FAVICON_SIZE,\n  MIN_RICH_FAVICON_SIZE,\n  TOP_SITES_CONTEXT_MENU_OPTIONS,\n  TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onDragEvent = this.onDragEvent.bind(this);\n  }\n\n  /*\n   * Helper to determine whether the drop zone should allow a drop. We only allow\n   * dropping top sites for now.\n   */\n  _allowDrop(e) {\n    return e.dataTransfer.types.includes(\"text/topsite-index\");\n  }\n\n  onDragEvent(event) {\n    switch (event.type) {\n      case \"click\":\n        // Stop any link clicks if we started any dragging\n        if (this.dragged) {\n          event.preventDefault();\n        }\n        break;\n      case \"dragstart\":\n        this.dragged = true;\n        event.dataTransfer.effectAllowed = \"move\";\n        event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n        event.target.blur();\n        this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n        break;\n      case \"dragend\":\n        this.props.onDragEvent(event);\n        break;\n      case \"dragenter\":\n      case \"dragover\":\n      case \"drop\":\n        if (this._allowDrop(event)) {\n          event.preventDefault();\n          this.props.onDragEvent(event, this.props.index);\n        }\n        break;\n      case \"mousedown\":\n        // Reset at the first mouse event of a potential drag\n        this.dragged = false;\n        break;\n    }\n  }\n\n  render() {\n    const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n    const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n    const {tippyTopIcon, faviconSize} = link;\n    const [letterFallback] = title;\n    let imageClassName;\n    let imageStyle;\n    let showSmallFavicon = false;\n    let smallFaviconStyle;\n    let smallFaviconFallback;\n    if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n      smallFaviconFallback = false;\n    } else if (link.customScreenshotURL) {\n      // assume high quality custom screenshot and use rich icon styles and class names\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${link.screenshot})`\n      };\n    } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n      // styles and class names for top sites with rich icons\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${tippyTopIcon || link.favicon})`\n      };\n    } else {\n      // styles and class names for top sites with screenshot + small icon in top left corner\n      imageClassName = `screenshot${link.screenshot ? \" active\" : \"\"}`;\n      imageStyle = {backgroundImage: link.screenshot ? `url(${link.screenshot})` : \"none\"};\n\n      // only show a favicon in top left if it's greater than 16x16\n      if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n        showSmallFavicon = true;\n        smallFaviconStyle = {backgroundImage:  `url(${link.favicon})`};\n      } else if (link.screenshot) {\n        // Don't show a small favicon if there is no screenshot, because that\n        // would result in two fallback icons\n        showSmallFavicon = true;\n        smallFaviconFallback = true;\n      }\n    }\n    let draggableProps = {};\n    if (isDraggable) {\n      draggableProps = {\n        onClick: this.onDragEvent,\n        onDragEnd: this.onDragEvent,\n        onDragStart: this.onDragEvent,\n        onMouseDown: this.onDragEvent\n      };\n    }\n    return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n      <div className=\"top-site-inner\">\n         <a href={link.url} onClick={onClick}>\n            <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n              <div className={imageClassName} style={imageStyle} />\n              {showSmallFavicon && <div\n                className=\"top-site-icon default-icon\"\n                data-fallback={smallFaviconFallback && letterFallback}\n                style={smallFaviconStyle} />}\n           </div>\n           <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n             {link.isPinned && <div className=\"icon icon-pin-small\" />}\n              <span dir=\"auto\">{title}</span>\n           </div>\n         </a>\n         {children}\n      </div>\n    </li>);\n  }\n}\nTopSiteLink.defaultProps = {\n  title: \"\",\n  link: {},\n  isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {showContextMenu: false};\n    this.onLinkClick = this.onLinkClick.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    const value = {icon_type: this.props.link.iconType};\n    // Filter out \"not_pinned\" type for being the default\n    if (this.props.link.isPinned) {\n      value.card_type = \"pinned\";\n    }\n    return {value};\n  }\n\n  userEvent(event) {\n    this.props.dispatch(ac.UserEvent(Object.assign({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: this.props.index\n    }, this._getTelemetryInfo())));\n  }\n\n  onLinkClick(event) {\n    this.userEvent(\"CLICK\");\n\n    // Specially handle a top site link click for \"typed\" frecency bonus as\n    // specified as a property on the link.\n    event.preventDefault();\n    const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n    this.props.dispatch(ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n    }));\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.props.onActivate(this.props.index);\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const {props} = this;\n    const {link} = props;\n    const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n    const title = link.label || link.hostname;\n    return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n        <div>\n          <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n            <span className=\"sr-only\">\n              <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n            </span>\n          </button>\n          {isContextMenuOpen &&\n            <LinkMenu\n              dispatch={props.dispatch}\n              index={props.index}\n              onUpdate={this.onMenuUpdate}\n              options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n              site={link}\n              siteInfo={this._getTelemetryInfo()}\n              source={TOP_SITES_SOURCE} />\n          }\n        </div>\n    </TopSiteLink>);\n  }\n}\nTopSite.defaultProps = {\n  link: {},\n  onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onEditButtonClick = this.onEditButtonClick.bind(this);\n  }\n\n  onEditButtonClick() {\n    this.props.dispatch(\n      {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n  }\n\n  render() {\n    return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n      <button className=\"context-menu-button edit-button icon\"\n       title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n       onClick={this.onEditButtonClick} />\n    </TopSiteLink>);\n  }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n  static get DEFAULT_STATE() {\n    return {\n      activeIndex: null,\n      draggedIndex: null,\n      draggedSite: null,\n      draggedTitle: null,\n      topSitesPreview: null\n    };\n  }\n\n  constructor(props) {\n    super(props);\n    this.state = _TopSiteList.DEFAULT_STATE;\n    this.onDragEvent = this.onDragEvent.bind(this);\n    this.onActivate = this.onActivate.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.state.draggedSite) {\n      const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n      const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n      if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n        prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n        (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n        // We got the new order from the redux store via props. We can clear state now.\n        this.setState(_TopSiteList.DEFAULT_STATE);\n      }\n    }\n  }\n\n  userEvent(event, index) {\n    this.props.dispatch(ac.UserEvent({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: index\n    }));\n  }\n\n  onDragEvent(event, index, link, title) {\n    switch (event.type) {\n      case \"dragstart\":\n        this.dropped = false;\n        this.setState({\n          draggedIndex: index,\n          draggedSite: link,\n          draggedTitle: title,\n          activeIndex: null\n        });\n        this.userEvent(\"DRAG\", index);\n        break;\n      case \"dragend\":\n        if (!this.dropped) {\n          // If there was no drop event, reset the state to the default.\n          this.setState(_TopSiteList.DEFAULT_STATE);\n        }\n        break;\n      case \"dragenter\":\n        if (index === this.state.draggedIndex) {\n          this.setState({topSitesPreview: null});\n        } else {\n          this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n        }\n        break;\n      case \"drop\":\n        if (index !== this.state.draggedIndex) {\n          this.dropped = true;\n          this.props.dispatch(ac.AlsoToMain({\n            type: at.TOP_SITES_INSERT,\n            data: {\n              site: {\n                url: this.state.draggedSite.url,\n                label: this.state.draggedTitle,\n                customScreenshotURL: this.state.draggedSite.customScreenshotURL\n              },\n              index,\n              draggedFromIndex: this.state.draggedIndex\n            }\n          }));\n          this.userEvent(\"DROP\", index);\n        }\n        break;\n    }\n  }\n\n  _getTopSites() {\n    // Make a copy of the sites to truncate or extend to desired length\n    let topSites = this.props.TopSites.rows.slice();\n    topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n    return topSites;\n  }\n\n  /**\n   * Make a preview of the topsites that will be the result of dropping the currently\n   * dragged site at the specified index.\n   */\n  _makeTopSitesPreview(index) {\n    const topSites = this._getTopSites();\n    topSites[this.state.draggedIndex] = null;\n    const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n    const unpinned = topSites.filter(site => site && !site.isPinned);\n    const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n    if (!pinnedOnly[index]) {\n      pinnedOnly[index] = siteToInsert;\n    } else {\n      // Find the hole to shift the pinned site(s) towards. We shift towards the\n      // hole left by the site being dragged.\n      let holeIndex = index;\n      const indexStep = index > this.state.draggedIndex ? -1 : 1;\n      while (pinnedOnly[holeIndex]) {\n        holeIndex += indexStep;\n      }\n\n      // Shift towards the hole.\n      const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n      while (holeIndex !== index) {\n        const nextIndex = holeIndex + shiftingStep;\n        pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n        holeIndex = nextIndex;\n      }\n      pinnedOnly[index] = siteToInsert;\n    }\n\n    // Fill in the remaining holes with unpinned sites.\n    const preview = pinnedOnly;\n    for (let i = 0; i < preview.length; i++) {\n      if (!preview[i]) {\n        preview[i] = unpinned.shift() || null;\n      }\n    }\n\n    return preview;\n  }\n\n  onActivate(index) {\n    this.setState({activeIndex: index});\n  }\n\n  render() {\n    const {props} = this;\n    const topSites = this.state.topSitesPreview || this._getTopSites();\n    const topSitesUI = [];\n    const commonProps = {\n      onDragEvent: this.onDragEvent,\n      dispatch: props.dispatch,\n      intl: props.intl\n    };\n    // We assign a key to each placeholder slot. We need it to be independent\n    // of the slot index (i below) so that the keys used stay the same during\n    // drag and drop reordering and the underlying DOM nodes are reused.\n    // This mostly (only?) affects linux so be sure to test on linux before changing.\n    let holeIndex = 0;\n\n    // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n    // .hide-for-narrow to hide in CSS via @media query.\n    const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n    for (let i = 0, l = topSites.length; i < l; i++) {\n      const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n      const slotProps = {\n        key: link ? link.url : holeIndex++,\n        index: i\n      };\n      if (i >= maxNarrowVisibleIndex) {\n        slotProps.className = \"hide-for-narrow\";\n      }\n      topSitesUI.push(!link ? (\n        <TopSitePlaceholder\n          {...slotProps}\n          {...commonProps} />\n      ) : (\n        <TopSite\n          link={link}\n          activeIndex={this.state.activeIndex}\n          onActivate={this.onActivate}\n          {...slotProps}\n          {...commonProps} />\n      ));\n    }\n    return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n      {topSitesUI}\n    </ul>);\n  }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n  store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n  <Base\n    isPrerendered={!!global.gActivityStreamPrerenderedState}\n    locale={global.document.documentElement.lang}\n    strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {initASRouter} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n *               the same interface as a Map, but is optionally backed by\n *               indexedDB for persistent storage.\n *               Call .connect() to open a database connection and restore any\n *               previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n  constructor(dispatch) {\n    super();\n    this._db = null;\n    this._dispatch = dispatch;\n  }\n\n  set(key, value) {\n    super.set(key, value);\n    return this._dbTransaction(db => db.put(value, key));\n  }\n\n  delete(key) {\n    super.delete(key);\n    return this._dbTransaction(db => db.delete(key));\n  }\n\n  clear() {\n    super.clear();\n    this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n    return this._dbTransaction(db => db.clear());\n  }\n\n  get blockList() {\n    return this.get(\"blockList\") || [];\n  }\n\n  /**\n   * blockSnippetById - Blocks a snippet given an id\n   *\n   * @param  {str|int} id   The id of the snippet\n   * @return {Promise}      Resolves when the id has been written to indexedDB,\n   *                        or immediately if the snippetMap is not connected\n   */\n  async blockSnippetById(id) {\n    if (!id) {\n      return;\n    }\n    const {blockList} = this;\n    if (!blockList.includes(id)) {\n      blockList.push(id);\n      this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n      await this.set(\"blockList\", blockList);\n    }\n  }\n\n  disableOnboarding() {\n    this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n  }\n\n  showFirefoxAccounts() {\n    this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n  }\n\n  getTotalBookmarksCount() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  /**\n   * connect - Attaches an indexedDB back-end to the Map so that any set values\n   *           are also cached in a store. It also restores any existing values\n   *           that are already stored in the indexedDB store.\n   *\n   * @return {type}  description\n   */\n  async connect() {\n    // Open the connection\n    const db = await this._openDB();\n\n    // Restore any existing values\n    await this._restoreFromDb(db);\n\n    // Attach a reference to the db\n    this._db = db;\n  }\n\n  /**\n   * _dbTransaction - Returns a db transaction wrapped with the given modifier\n   *                  function as a Promise. If the db has not been connected,\n   *                  it resolves immediately.\n   *\n   * @param  {func} modifier A function to call with the transaction\n   * @return {obj}           A Promise that resolves when the transaction has\n   *                         completed or errored\n   */\n  _dbTransaction(modifier) {\n    if (!this._db) {\n      return Promise.resolve();\n    }\n    return new Promise((resolve, reject) => {\n      const transaction = modifier(\n        this._db\n          .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n      );\n      transaction.onsuccess = event => resolve();\n\n      /* istanbul ignore next */\n      transaction.onerror = event => reject(transaction.error);\n    });\n  }\n\n  _openDB() {\n    return new Promise((resolve, reject) => {\n      const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n      /* istanbul ignore next */\n      openRequest.onerror = event => {\n        // Try to delete the old database so that we can start this process over\n        // next time.\n        indexedDB.deleteDatabase(DATABASE_NAME);\n        reject(event);\n      };\n\n      openRequest.onupgradeneeded = event => {\n        const db = event.target.result;\n        if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n          db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n        }\n      };\n\n      openRequest.onsuccess = event => {\n        let db = event.target.result;\n\n        /* istanbul ignore next */\n        db.onerror = err => console.error(err); // eslint-disable-line no-console\n        /* istanbul ignore next */\n        db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n        resolve(db);\n      };\n    });\n  }\n\n  _restoreFromDb(db) {\n    return new Promise((resolve, reject) => {\n      let cursorRequest;\n      try {\n        cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n      } catch (err) {\n        // istanbul ignore next\n        reject(err);\n        // istanbul ignore next\n        return;\n      }\n\n      /* istanbul ignore next */\n      cursorRequest.onerror = event => reject(event);\n\n      cursorRequest.onsuccess = event => {\n        let cursor = event.target.result;\n        // Populate the cache from the persistent storage.\n        if (cursor) {\n          if (cursor.value !== \"blockList\") {\n            this.set(cursor.key, cursor.value);\n          }\n          cursor.continue();\n        } else {\n          // We are done.\n          resolve();\n        }\n      };\n    });\n  }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n *                    remote location, or else default snippets if the remote\n *                    snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n  constructor(dispatch) {\n    // Initialize the Snippets Map and attaches it to a global so that\n    // the snippet payload can interact with it.\n    global.gSnippetsMap = new SnippetsMap(dispatch);\n    this._onAction = this._onAction.bind(this);\n  }\n\n  get snippetsMap() {\n    return global.gSnippetsMap;\n  }\n\n  async _refreshSnippets() {\n    // Check if the cached version of of the snippets in snippetsMap. If it's too\n    // old, blow away the entire snippetsMap.\n    const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n    if (cachedVersion !== this.appData.version) {\n      this.snippetsMap.clear();\n    }\n\n    // Has enough time passed for us to require an update?\n    const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n    const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n    if (needsUpdate && this.appData.snippetsURL) {\n      this.snippetsMap.set(\"snippets-last-update\", Date.now());\n      try {\n        const response = await fetch(this.appData.snippetsURL);\n        if (response.status === 200) {\n          const payload = await response.text();\n\n          this.snippetsMap.set(\"snippets\", payload);\n          this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n        }\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n  }\n\n  _noSnippetFallback() {\n    // TODO\n  }\n\n  _forceOnboardingVisibility(shouldBeVisible) {\n    const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n    if (onboardingEl) {\n      onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n    }\n  }\n\n  _showRemoteSnippets() {\n    const snippetsEl = document.getElementById(this.elementId);\n    const payload = this.snippetsMap.get(\"snippets\");\n\n    if (!snippetsEl) {\n      throw new Error(`No element was found with id '${this.elementId}'.`);\n    }\n\n    // This could happen if fetching failed\n    if (!payload) {\n      throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n    }\n\n    if (typeof payload !== \"string\") {\n      throw new Error(\"Snippet payload was incorrectly formatted\");\n    }\n\n    // Note that injecting snippets can throw if they're invalid XML.\n    // eslint-disable-next-line no-unsanitized/property\n    snippetsEl.innerHTML = payload;\n\n    // Scripts injected by innerHTML are inactive, so we have to relocate them\n    // through DOM manipulation to activate their contents.\n    for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n      const relocatedScript = document.createElement(\"script\");\n      relocatedScript.text = scriptEl.text;\n      scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n    }\n  }\n\n  _onAction(msg) {\n    if (msg.data.type === at.SNIPPET_BLOCKED) {\n      if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n        this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n        document.getElementById(\"snippets-container\").style.display = \"none\";\n      }\n    }\n  }\n\n  /**\n   * init - Fetch the snippet payload and show snippets\n   *\n   * @param  {obj} options\n   * @param  {str} options.appData.snippetsURL  The URL from which we fetch snippets\n   * @param  {int} options.appData.version  The current snippets version\n   * @param  {str} options.elementId  The id of the element in which to inject snippets\n   * @param  {bool} options.connect  Should gSnippetsMap connect to indexedDB?\n   */\n  async init(options) {\n    Object.assign(this, {\n      appData: {},\n      elementId: \"snippets\",\n      connect: true\n    }, options);\n\n    // Add listener so we know when snippets are blocked on other pages\n    if (global.addMessageListener) {\n      global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n\n    // TODO: Requires enabling indexedDB on newtab\n    // Restore the snippets map from indexedDB\n    if (this.connect) {\n      try {\n        await this.snippetsMap.connect();\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n\n    // Cache app data values so they can be accessible from gSnippetsMap\n    for (const key of Object.keys(this.appData)) {\n      if (key === \"blockList\") {\n        this.snippetsMap.set(\"blockList\", this.appData[key]);\n      } else {\n        this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n      }\n    }\n\n    // Refresh snippets, if enough time has passed.\n    await this._refreshSnippets();\n\n    // Try showing remote snippets, falling back to defaults if necessary.\n    try {\n      this._showRemoteSnippets();\n    } catch (e) {\n      this._noSnippetFallback(e);\n    }\n\n    window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n    this._forceOnboardingVisibility(true);\n    this.initialized = true;\n  }\n\n  uninit() {\n    window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n    this._forceOnboardingVisibility(false);\n    if (global.removeMessageListener) {\n      global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n    this.initialized = false;\n  }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n *                         when the store has received the appropriate\n *                         Snippet data.\n *\n * @param  {obj} store   The redux store\n * @return {obj}         Returns the snippets instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n  const snippets = new SnippetsProvider(store.dispatch);\n\n  let initializing = false;\n\n  store.subscribe(async () => {\n    const state = store.getState();\n    // state.Prefs.values[\"feeds.snippets\"]:  Should snippets be shown?\n    // state.Snippets.initialized             Is the snippets data initialized?\n    // snippets.initialized:                  Is SnippetsProvider currently initialised?\n    if (state.Prefs.values[\"feeds.snippets\"] &&\n      // If the message center experiment is enabled, don't show snippets\n      !state.Prefs.values.asrouterExperimentEnabled &&\n      !state.Prefs.values.disableSnippets &&\n      state.Snippets.initialized &&\n      !snippets.initialized &&\n      // Don't call init multiple times\n      !initializing\n    ) {\n      initializing = true;\n      await snippets.init({appData: state.Snippets});\n      initializing = false;\n    } else if (\n      (state.Prefs.values[\"feeds.snippets\"] === false ||\n        state.Prefs.values.disableSnippets === true) &&\n      snippets.initialized\n    ) {\n      snippets.uninit();\n    }\n\n    if (state.Prefs.values.asrouterExperimentEnabled) {\n      initASRouter();\n    }\n  });\n\n  // These values are returned for testing purposes\n  return snippets;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/snippets.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 21\n// module chunks = 0","import React from \"react\";\n\nexport const Button = props => (<a href={props.url}\n  onClick={props.onClick}\n  className=\"ASRouterButton\">\n  {props.children}\n</a>);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBlockClicked = this.onBlockClicked.bind(this);\n  }\n\n  onBlockClicked() {\n    this.props.sendUserActionTelemetry({event: \"BLOCK\", source: this.props.UISurface, message_id: this.props.id});\n    this.props.onBlock();\n  }\n\n  render() {\n    const {props} = this;\n\n    const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n    return (<div className={containerClassName}>\n      <div className=\"innerWrapper\">\n        {props.children}\n      </div>\n      <button className=\"blockButton\" onClick={this.onBlockClicked} />\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onButtonClick = this.onButtonClick.bind(this);\n  }\n\n  onButtonClick() {\n    this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", source: this.props.UISurface, message_id: this.props.id});\n  }\n\n  render() {\n    const {props} = this;\n    return (<SnippetBase {...props} className=\"SimpleSnippet\">\n      <img src={props.content.icon || DEFAULT_ICON_PATH} className=\"icon\" />\n      <div>\n        {props.content.title ? <h3 className=\"title\">{props.content.title}</h3> : null} <p className=\"body\">{props.content.text}</p>\n      </div>\n      {props.content.button_url ? <div><Button onClick={this.onButtonClick} url={props.content.button_url}>{props.content.button_label}</Button></div> : null}\n    </SnippetBase>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\n\nconst PrefsButton = injectIntl(props => (\n  <div className=\"prefs-button\">\n    <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n  </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n  addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n  componentWillMount() {\n    const {App, locale, Theme} = this.props;\n    if (Theme.className) {\n      this.updateTheme(Theme);\n    }\n    this.sendNewTabRehydrated(App);\n    addLocaleDataForReactIntl(locale);\n  }\n\n  componentDidMount() {\n    // Request state AFTER the first render to ensure we don't cause the\n    // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n    // dispatched right after the store is ready.\n    if (this.props.isPrerendered) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n      this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n    }\n  }\n\n  componentWillUnmount() {\n    this.updateTheme({className: \"\"});\n  }\n\n  componentWillUpdate({App, Theme}) {\n    this.updateTheme(Theme);\n    this.sendNewTabRehydrated(App);\n  }\n\n  updateTheme(Theme) {\n    const bodyClassName = [\n      \"activity-stream\",\n      Theme.className\n    ].filter(v => v).join(\" \");\n    global.document.body.className = bodyClassName;\n  }\n\n  // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n  // data has been consumed e.g. for counting the number of tabs that\n  // have rendered that data.\n  sendNewTabRehydrated(App) {\n    if (App && App.initialized && !this.renderNotified) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n      this.renderNotified = true;\n    }\n  }\n\n  render() {\n    const {props} = this;\n    const {App, locale, strings} = props;\n    const {initialized} = App;\n\n    if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === \"#asrouter\") {\n      return (<ASRouterAdmin />);\n    }\n\n    if (!props.isPrerendered && !initialized) {\n      return null;\n    }\n\n    return (<IntlProvider locale={locale} messages={strings}>\n        <ErrorBoundary className=\"base-content-fallback\">\n          <BaseContent {...this.props} />\n        </ErrorBoundary>\n      </IntlProvider>);\n  }\n}\n\nexport class BaseContent extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.openPreferences = this.openPreferences.bind(this);\n  }\n\n  openPreferences() {\n    this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n    this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n  }\n\n  render() {\n    const {props} = this;\n    const {App} = props;\n    const {initialized} = App;\n    const prefs = props.Prefs.values;\n\n    const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n    const outerClassName = [\n      \"outer-wrapper\",\n      shouldBeFixedToTop && \"fixed-to-top\"\n    ].filter(v => v).join(\" \");\n\n    return (\n        <div className={outerClassName}>\n          <main>\n            {prefs.showSearch &&\n              <div className=\"non-collapsible-section\">\n                <ErrorBoundary>\n                  <Search />\n                </ErrorBoundary>\n              </div>\n            }\n            <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n              {!prefs.migrationExpired &&\n                <div className=\"non-collapsible-section\">\n                  <ManualMigration />\n                </div>\n                }\n              <Sections />\n              <PrefsButton onClick={this.openPreferences} />\n            </div>\n            <ConfirmDialog />\n          </main>\n        </div>);\n  }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessage = this.onMessage.bind(this);\n    this.state = {};\n  }\n\n  onMessage({data: action}) {\n    if (action.type === \"ADMIN_SET_STATE\") {\n      this.setState(action.data);\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n    ASRouterUtils.addListener(this.onMessage);\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessage);\n  }\n\n  handleBlock(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  handleUnblock(id) {\n    return () => ASRouterUtils.unblockById(id);\n  }\n\n  renderMessageItem(msg) {\n    const isCurrent = msg.id === this.state.currentId;\n    const isBlocked = this.state.blockList.includes(msg.id);\n\n    let itemClassName = \"message-item\";\n    if (isCurrent) { itemClassName += \" current\"; }\n    if (isBlocked) { itemClassName += \" blocked\"; }\n\n    return (<tr className={itemClassName} key={msg.id}>\n      <td className=\"message-id\"><span>{msg.id}</span></td>\n      <td>\n        <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg.id) : this.handleBlock(msg.id)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n      </td>\n      <td className=\"message-summary\">\n        <pre>{JSON.stringify(msg, null, 2)}</pre>\n      </td>\n    </tr>);\n  }\n\n  renderMessages() {\n    if (!this.state.messages) {\n      return null;\n    }\n    return (<table><tbody>\n      {this.state.messages.map(msg => this.renderMessageItem(msg))}\n    </tbody></table>);\n  }\n\n  render() {\n    return (<div className=\"asrouter-admin outer-wrapper\">\n      <h1>AS Router Admin</h1>\n      <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n      <h2>Messages</h2>\n      {this.renderMessages()}\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n *   // Any sort of data needed to be passed around by actions.\n *   payload: site.url,\n *   // Primary button AlsoToMain action.\n *   action: \"DELETE_HISTORY_URL\",\n *   // Primary button USerEvent action.\n *   userEvent: \"DELETE\",\n *   // Array of locale ids to display.\n *   message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n *   // Text for primary button.\n *   confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this._handleCancelBtn = this._handleCancelBtn.bind(this);\n    this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n  }\n\n  _handleCancelBtn() {\n    this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n    this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n  }\n\n  _handleConfirmBtn() {\n    this.props.data.onConfirm.forEach(this.props.dispatch);\n  }\n\n  _renderModalMessage() {\n    const message_body = this.props.data.body_string_id;\n\n    if (!message_body) {\n      return null;\n    }\n\n    return (<span>\n      {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n    </span>);\n  }\n\n  render() {\n    if (!this.props.visible) {\n      return null;\n    }\n\n    return (<div className=\"confirmation-dialog\">\n      <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n      <div className=\"modal\">\n        <section className=\"modal-message\">\n          {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n          {this._renderModalMessage()}\n        </section>\n        <section className=\"actions\">\n          <button onClick={this._handleCancelBtn}>\n            <FormattedMessage id={this.props.data.cancel_button_string_id} />\n          </button>\n          <button className=\"done\" onClick={this._handleConfirmBtn}>\n            <FormattedMessage id={this.props.data.confirm_button_string_id} />\n          </button>\n        </section>\n      </div>\n    </div>);\n  }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1.  User clicks \"No Thanks\"\n * 2.  User completed the data import\n * 3.  After 3 active days\n * 4.  User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onLaunchTour = this.onLaunchTour.bind(this);\n    this.onCancelTour = this.onCancelTour.bind(this);\n  }\n\n  onLaunchTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n  }\n\n  onCancelTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n  }\n\n  render() {\n    return (<div className=\"manual-migration-container\">\n        <p>\n          <span className=\"icon icon-import\" />\n          <FormattedMessage id=\"manual_migration_explanation2\" />\n        </p>\n        <div className=\"manual-migration-actions actions\">\n          <button className=\"dismiss\" onClick={this.onCancelTour}>\n            <FormattedMessage id=\"manual_migration_cancel_button\" />\n          </button>\n          <button onClick={this.onLaunchTour}>\n            <FormattedMessage id=\"manual_migration_import_button\" />\n          </button>\n        </div>\n    </div>);\n  }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n  constructor(options) {\n    this.initialPrefs = options.initialPrefs;\n    this.initialSections = options.initialSections;\n    this._setValidation(options.validation);\n  }\n\n  get validation() {\n    return this._validation;\n  }\n\n  set validation(value) {\n    this._setValidation(value);\n  }\n\n  get invalidatingPrefs() {\n    return this._invalidatingPrefs;\n  }\n\n    // This is needed so we can use it in the constructor\n  _setValidation(value = []) {\n    this._validation = value;\n    this._invalidatingPrefs = value.reduce((result, next) => {\n      if (typeof next === \"string\") {\n        result.push(next);\n        return result;\n      } else if (next && next.oneOf) {\n        return result.concat(next.oneOf);\n      } else if (next && next.indexedDB) {\n        return result.concat(next.indexedDB);\n      }\n      throw new Error(\"Your validation configuration is not properly configured\");\n    }, []);\n  }\n\n  arePrefsValid(getPref, indexedDBPrefs) {\n    for (const prefs of this.validation) {\n      // {oneOf: [\"foo\", \"bar\"]}\n      if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n        return false;\n\n        // {indexedDB: [\"foo\", \"bar\"]}\n      } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n        const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n        if (anyModifiedPrefs) {\n          return false;\n        }\n        // \"foo\"\n      } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nthis.PrerenderData = new _PrerenderData({\n  initialPrefs: {\n    \"migrationExpired\": true,\n    \"feeds.topsites\": true,\n    \"showSearch\": true,\n    \"topSitesRows\": 1,\n    \"feeds.section.topstories\": true,\n    \"feeds.section.highlights\": true,\n    \"sectionOrder\": \"topsites,topstories,highlights\",\n    \"collapsed\": false\n  },\n  // Prefs listed as invalidating will prevent the prerendered version\n  // of AS from being used if their value is something other than what is listed\n  // here. This is required because some preferences cause the page layout to be\n  // too different for the prerendered version to be used. Unfortunately, this\n  // will result in users who have modified some of their preferences not being\n  // able to get the benefits of prerendering.\n  validation: [\n    \"feeds.topsites\",\n    \"showSearch\",\n    \"topSitesRows\",\n    \"sectionOrder\",\n    // This means if either of these are set to their default values,\n    // prerendering can be used.\n    {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n    // If any component has the following preference set to `true` it will\n    // invalidate the prerendered version.\n    {indexedDB: [\"collapsed\"]}\n  ],\n  initialSections: [\n    {\n      enabled: true,\n      icon: \"pocket\",\n      id: \"topstories\",\n      order: 1,\n      title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n    },\n    {\n      enabled: true,\n      id: \"highlights\",\n      icon: \"highlights\",\n      order: 2,\n      title: {id: \"header_highlights\"}\n    }\n  ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onInputMount = this.onInputMount.bind(this);\n  }\n\n  handleEvent(event) {\n    // Also track search events with our own telemetry\n    if (event.detail.type === \"Search\") {\n      this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n    }\n  }\n\n  onClick(event) {\n    window.gContentSearchController.search(event);\n  }\n\n  componentWillUnmount() {\n    delete window.gContentSearchController;\n  }\n\n  onInputMount(input) {\n    if (input) {\n      // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n      // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n      // can add the appropriate telemetry probes for search. Without the correct\n      // name, certain tests like browser_UsageTelemetry_content.js will fail\n      // (See github ticket #2348 for more details)\n      const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n      // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n      // the search data and acts as context for the search request (See\n      // nsISearchEngine.getSubmission). It is necessary so that search engine\n      // plugins can correctly atribute referrals. (See github ticket #3321 for\n      // more details)\n      const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n      // gContentSearchController needs to exist as a global so that tests for\n      // the existing about:home can find it; and so it allows these tests to pass.\n      // In the future, when activity stream is default about:home, this can be renamed\n      window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n        healthReportKey, searchSource);\n      addEventListener(\"ContentSearchClient\", this);\n    } else {\n      window.gContentSearchController = null;\n      removeEventListener(\"ContentSearchClient\", this);\n    }\n  }\n\n  /*\n   * Do not change the ID on the input field, as legacy newtab code\n   * specifically looks for the id 'newtab-search-text' on input fields\n   * in order to execute searches in various tests\n   */\n  render() {\n    return (<div className=\"search-wrapper\">\n      <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n        <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n      </label>\n      <input\n        id=\"newtab-search-text\"\n        maxLength=\"256\"\n        placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        ref={this.onInputMount}\n        title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        type=\"search\" />\n      <button\n        id=\"searchSubmit\"\n        className=\"search-button\"\n        onClick={this.onClick}\n        title={this.props.intl.formatMessage({id: \"search_button\"})}>\n        <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n      </button>\n    </div>);\n  }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW = 3;\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n  _dispatchImpressionStats() {\n    const {props} = this;\n    const maxCards = 3 * props.maxRows;\n    const cards = props.rows.slice(0, maxCards);\n\n    if (this.needsImpressionStats(cards)) {\n      props.dispatch(ac.ImpressionStats({\n        source: props.eventSource,\n        tiles: cards.map(link => ({id: link.guid}))\n      }));\n      this.impressionCardGuids = cards.map(link => link.guid);\n    }\n  }\n\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionStatsOrAddListener() {\n    const {props} = this;\n\n    if (!props.shouldSendImpressionStats || !props.dispatch) {\n      return;\n    }\n\n    if (props.document.visibilityState === VISIBLE) {\n      this._dispatchImpressionStats();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (props.document.visibilityState === VISIBLE) {\n          if (!this.props.pref.collapsed) {\n            this._dispatchImpressionStats();\n          }\n          props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.rows.length && !this.props.pref.collapsed) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    const {props} = this;\n    const isCollapsed = props.pref.collapsed;\n    const wasCollapsed = prevProps.pref.collapsed;\n    if (\n      // Don't send impression stats for the empty state\n      props.rows.length &&\n      (\n        // We only want to send impression stats if the content of the cards has changed\n        // and the section is not collapsed...\n        (props.rows !== prevProps.rows && !isCollapsed) ||\n        // or if we are expanding a section that was collapsed.\n        (wasCollapsed && !isCollapsed)\n      )\n    ) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  needsImpressionStats(cards) {\n    if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n      return true;\n    }\n\n    for (let i = 0; i < cards.length; i++) {\n      if (cards[i].guid !== this.impressionCardGuids[i]) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  numberOfPlaceholders(items) {\n    if (items === 0) {\n      return CARDS_PER_ROW;\n    }\n    const remainder = items % CARDS_PER_ROW;\n    if (remainder === 0) {\n      return 0;\n    }\n    return CARDS_PER_ROW - remainder;\n  }\n\n  render() {\n    const {\n      id, eventSource, title, icon, rows,\n      emptyState, dispatch, maxRows,\n      contextMenuOptions, initialized, disclaimer,\n      pref, privacyNoticeURL, isFirst, isLast\n    } = this.props;\n    const maxCards = CARDS_PER_ROW * maxRows;\n\n    // Show topics only for top stories and if it's not initialized yet (so\n    // content doesn't shift when it is loaded) or has loaded with topics\n    const shouldShowTopics = (id === \"topstories\" &&\n      (!this.props.topics || this.props.topics.length > 0));\n\n    const realRows = rows.slice(0, maxCards);\n    const placeholders = this.numberOfPlaceholders(realRows.length);\n\n    // The empty state should only be shown after we have initialized and there is no content.\n    // Otherwise, we should show placeholders.\n    const shouldShowEmptyState = initialized && !rows.length;\n\n    // <Section> <-- React component\n    // <section> <-- HTML5 element\n    return (<ComponentPerfTimer {...this.props}>\n      <CollapsibleSection className=\"section\" icon={icon}\n        title={title}\n        id={id}\n        eventSource={eventSource}\n        disclaimer={disclaimer}\n        collapsed={this.props.pref.collapsed}\n        showPrefName={(pref && pref.feed) || id}\n        privacyNoticeURL={privacyNoticeURL}\n        Prefs={this.props.Prefs}\n        isFirst={isFirst}\n        isLast={isLast}\n        dispatch={this.props.dispatch}>\n\n        {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n          {realRows.map((link, index) => link &&\n            <Card key={index} index={index} dispatch={dispatch} link={link} contextMenuOptions={contextMenuOptions}\n              eventSource={eventSource} shouldSendImpressionStats={this.props.shouldSendImpressionStats} isWebExtension={this.props.isWebExtension} />)}\n          {placeholders > 0 && [...new Array(placeholders)].map((_, i) => <PlaceholderCard key={i} />)}\n        </ul>)}\n        {shouldShowEmptyState &&\n          <div className=\"section-empty-state\">\n            <div className=\"empty-state\">\n              {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n                <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n                <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n              <p className=\"empty-state-message\">\n                {getFormattedMessage(emptyState.message)}\n              </p>\n            </div>\n          </div>}\n        {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nSection.defaultProps = {\n  document: global.document,\n  rows: [],\n  emptyState: {},\n  pref: {},\n  title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n  renderSections() {\n    const sections = [];\n    const enabledSections = this.props.Sections.filter(section => section.enabled);\n    const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n    // Enabled sections doesn't include Top Sites, so we add it if enabled.\n    const expectedCount = enabledSections.length + ~~showTopSites;\n\n    for (const sectionId of sectionOrder.split(\",\")) {\n      const commonProps = {\n        key: sectionId,\n        isFirst: sections.length === 0,\n        isLast: sections.length === expectedCount - 1\n      };\n      if (sectionId === \"topsites\" && showTopSites) {\n        sections.push(<TopSites {...commonProps} />);\n      } else {\n        const section = enabledSections.find(s => s.id === sectionId);\n        if (section) {\n          sections.push(<SectionIntl {...section} {...commonProps} />);\n        }\n      }\n    }\n    return sections;\n  }\n\n  render() {\n    return (\n      <div className=\"sections-list\">\n        {this.renderSections()}\n      </div>\n    );\n  }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n  history: {\n    intlID: \"type_label_visited\",\n    icon: \"historyItem\"\n  },\n  bookmark: {\n    intlID: \"type_label_bookmarked\",\n    icon: \"bookmark-added\"\n  },\n  trending: {\n    intlID: \"type_label_recommended\",\n    icon: \"trending\"\n  },\n  now: {\n    intlID: \"type_label_now\",\n    icon: \"now\"\n  },\n  pocket: {\n    intlID: \"type_label_pocket\",\n    icon: \"pocket\"\n  },\n  download: {\n    intlID: \"type_label_downloaded\",\n    icon: \"download\"\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {\n      activeCard: null,\n      imageLoaded: false,\n      showContextMenu: false\n    };\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.onLinkClick = this.onLinkClick.bind(this);\n  }\n\n  /**\n   * Helper to conditionally load an image and update state when it loads.\n   */\n  async maybeLoadImage() {\n    // No need to load if it's already loaded or no image\n    const {image} = this.props.link;\n    if (!this.state.imageLoaded && image) {\n      // Initialize a promise to share a load across multiple card updates\n      if (!gImageLoading.has(image)) {\n        const loaderPromise = new Promise((resolve, reject) => {\n          const loader = new Image();\n          loader.addEventListener(\"load\", resolve);\n          loader.addEventListener(\"error\", reject);\n          loader.src = image;\n        });\n\n        // Save and remove the promise only while it's pending\n        gImageLoading.set(image, loaderPromise);\n        loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(image)).catch();\n      }\n\n      // Wait for the image whether just started loading or reused promise\n      await gImageLoading.get(image);\n\n      // Only update state if we're still waiting to load the original image\n      if (this.props.link.image === image && !this.state.imageLoaded) {\n        this.setState({imageLoaded: true});\n      }\n    }\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({\n      activeCard: this.props.index,\n      showContextMenu: true\n    });\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    // Filter out \"history\" type for being the default\n    if (this.props.link.type !== \"history\") {\n      return {value: {card_type: this.props.link.type}};\n    }\n\n    return null;\n  }\n\n  onLinkClick(event) {\n    event.preventDefault();\n    if (this.props.link.type === \"download\") {\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SHOW_DOWNLOAD_FILE,\n        data: this.props.link\n      }));\n    } else {\n      const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.OPEN_LINK,\n        data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n      }));\n    }\n    if (this.props.isWebExtension) {\n      this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n        source: this.props.eventSource,\n        url: this.props.link.url,\n        action_position: this.props.index\n      }));\n    } else {\n      this.props.dispatch(ac.UserEvent(Object.assign({\n        event: \"CLICK\",\n        source: this.props.eventSource,\n        action_position: this.props.index\n      }, this._getTelemetryInfo())));\n\n      if (this.props.shouldSendImpressionStats) {\n        this.props.dispatch(ac.ImpressionStats({\n          source: this.props.eventSource,\n          click: 0,\n          tiles: [{id: this.props.link.guid, pos: this.props.index}]\n        }));\n      }\n    }\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  componentDidMount() {\n    this.maybeLoadImage();\n  }\n\n  componentDidUpdate() {\n    this.maybeLoadImage();\n  }\n\n  componentWillReceiveProps(nextProps) {\n    // Clear the image state if changing images\n    if (nextProps.link.image !== this.props.link.image) {\n      this.setState({imageLoaded: false});\n    }\n  }\n\n  render() {\n    const {index, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n    const {props} = this;\n    const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n    // Display \"now\" as \"trending\" until we have new strings #3402\n    const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n    const hasImage = link.image || link.hasImage;\n    const imageStyle = {backgroundImage: link.image ? `url(${link.image})` : \"none\"};\n\n    return (<li className={`card-outer${isContextMenuOpen ? \" active\" : \"\"}${props.placeholder ? \" placeholder\" : \"\"}`}>\n      <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n        <div className=\"card\">\n          {hasImage && <div className=\"card-preview-image-outer\">\n            <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n          </div>}\n          <div className={`card-details${hasImage ? \"\" : \" no-image\"}`}>\n            {link.type === \"download\" && <div className=\"card-download-icon icon icon-download-folder\" />}\n            {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n            {link.hostname && <div className=\"card-host-name\">{link.hostname}</div>}\n            <div className={[\n              \"card-text\",\n              icon ? \"\" : \"no-context\",\n              link.description ? \"\" : \"no-description\",\n              link.hostname ? \"\" : \"no-host-name\",\n              hasImage ? \"\" : \"no-image\"\n            ].join(\" \")}>\n              <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n              <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n            </div>\n            <div className=\"card-context\">\n              {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n              {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n              {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n              {link.context && <div className=\"card-context-label\">{link.context}</div>}\n            </div>\n          </div>\n        </div>\n      </a>\n      {!props.placeholder && <button className=\"context-menu-button icon\"\n        onClick={this.onMenuButtonClick}>\n        <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n      </button>}\n      {isContextMenuOpen &&\n        <LinkMenu\n          dispatch={dispatch}\n          index={index}\n          source={eventSource}\n          onUpdate={this.onMenuUpdate}\n          options={link.contextMenuOptions || contextMenuOptions}\n          site={link}\n          siteInfo={this._getTelemetryInfo()}\n          shouldSendImpressionStats={shouldSendImpressionStats} />\n      }\n   </li>);\n  }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = () => <Card placeholder={true} />;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\n\nexport class _SectionMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n\n    const propOptions = Array.from(DEFAULT_SECTION_MENU_OPTIONS);\n    // Prepend custom options and a separator\n    if (props.extraOptions) {\n      propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n    }\n    // Insert privacy notice before the last option (\"ManageSection\")\n    if (props.privacyNoticeURL) {\n      propOptions.splice(-1, 0, \"PrivacyNotice\");\n    }\n\n    const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n      const {action, id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            props.dispatch(ac.UserEvent({\n              event: userEvent,\n              source: props.source\n            }));\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n  render() {\n    const {url, name} = this.props;\n    return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n  }\n}\n\nexport class Topics extends React.PureComponent {\n  render() {\n    const {topics, read_more_endpoint} = this.props;\n    return (\n      <div className=\"topic\">\n        <span><FormattedMessage id=\"pocket_read_more\" /></span>\n        <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n        {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n          <FormattedMessage id=\"pocket_read_even_more\" />\n        </a>}\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n  if (link.customScreenshotURL) {\n    return \"custom_screenshot\";\n  }\n  if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n    return \"tippytop\";\n  }\n  if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n    return \"rich_icon\";\n  }\n  if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n    return \"screenshot_with_icon\";\n  }\n  if (link.screenshot) {\n    return \"screenshot\";\n  }\n  return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n  const countTopSitesTypes = (acc, link) => {\n    acc[topSiteIconType(link)]++;\n    return acc;\n  };\n\n  return topSites.reduce(countTopSitesTypes, {\n    \"custom_screenshot\": 0,\n    \"screenshot_with_icon\": 0,\n    \"screenshot\": 0,\n    \"tippytop\": 0,\n    \"rich_icon\": 0,\n    \"no_image\": 0\n  });\n}\n\nexport class _TopSites extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onFormClose = this.onFormClose.bind(this);\n  }\n\n  /**\n   * Dispatch session statistics about the quality of TopSites icons and pinned count.\n   */\n  _dispatchTopSitesStats() {\n    const topSites = this._getVisibleTopSites();\n    const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n    const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n    // Dispatch telemetry event with the count of TopSites images types.\n    this.props.dispatch(ac.AlsoToMain({\n      type: at.SAVE_SESSION_PERF_DATA,\n      data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n    }));\n  }\n\n  /**\n   * Return the TopSites that are visible based on prefs and window width.\n   */\n  _getVisibleTopSites() {\n    // We hide 2 sites per row when not in the wide layout.\n    let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n    // $break-point-widest = 1072px (from _variables.scss)\n    if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n      sitesPerRow -= 2;\n    }\n    return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n  }\n\n  componentDidUpdate() {\n    this._dispatchTopSitesStats();\n  }\n\n  componentDidMount() {\n    this._dispatchTopSitesStats();\n  }\n\n  onFormClose() {\n    this.props.dispatch(ac.UserEvent({\n      source: TOP_SITES_SOURCE,\n      event: \"TOP_SITES_EDIT_CLOSE\"\n    }));\n    this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n  }\n\n  render() {\n    const {props} = this;\n    const {editForm} = props.TopSites;\n\n    return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n      <CollapsibleSection\n        className=\"top-sites\"\n        icon=\"topsites\"\n        id=\"topsites\"\n        title={{id: \"header_top_sites\"}}\n        extraMenuOptions={[\"AddTopSite\"]}\n        showPrefName=\"feeds.topsites\"\n        eventSource={TOP_SITES_SOURCE}\n        collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n        isFirst={props.isFirst}\n        isLast={props.isLast}\n        dispatch={props.dispatch}>\n        <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n        <div className=\"edit-topsites-wrapper\">\n          {editForm &&\n            <div className=\"edit-topsites\">\n              <div className=\"modal-overlay\" onClick={this.onFormClose} />\n              <div className=\"modal\">\n                <TopSiteForm\n                  site={props.TopSites.rows[editForm.index]}\n                  onClose={this.onFormClose}\n                  dispatch={this.props.dispatch}\n                  intl={this.props.intl}\n                  {...editForm} />\n              </div>\n            </div>\n          }\n        </div>\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nexport const TopSites = connect(state => ({\n  TopSites: state.TopSites,\n  Prefs: state.Prefs,\n  TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {validationError: this.props.validationError};\n    this.onChange = this.onChange.bind(this);\n    this.onMount = this.onMount.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (nextProps.shouldFocus && !this.props.shouldFocus) {\n      this.input.focus();\n    }\n    if (nextProps.validationError && !this.props.validationError) {\n      this.setState({validationError: true});\n    }\n    // If the component is in an error state but the value was cleared by the parent\n    if (this.state.validationError && !nextProps.value) {\n      this.setState({validationError: false});\n    }\n  }\n\n  onChange(ev) {\n    if (this.state.validationError) {\n      this.setState({validationError: false});\n    }\n    this.props.onChange(ev);\n  }\n\n  onMount(input) {\n    this.input = input;\n  }\n\n  render() {\n    const showClearButton = this.props.value && this.props.onClear;\n    const {typeUrl} = this.props;\n    const {validationError} = this.state;\n\n    return (<label><FormattedMessage id={this.props.titleId} />\n      <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n        {this.props.loading ?\n          <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n          showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n        <input type=\"text\"\n          value={this.props.value}\n          ref={this.onMount}\n          onChange={this.onChange}\n          placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n          autoFocus={this.props.shouldFocus}\n          disabled={this.props.loading} />\n        {validationError &&\n          <aside className=\"error-tooltip\">\n            <FormattedMessage id={this.props.errorMessageId} />\n          </aside>}\n      </div>\n    </label>);\n  }\n}\n\nTopSiteFormInput.defaultProps = {\n  showClearButton: false,\n  value: \"\",\n  validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    const {site} = props;\n    this.state = {\n      label: site ? (site.label || site.hostname) : \"\",\n      url: site ? site.url : \"\",\n      validationError: false,\n      customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n      showCustomScreenshotForm: site ? site.customScreenshotURL : false\n    };\n    this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n    this.onLabelChange = this.onLabelChange.bind(this);\n    this.onUrlChange = this.onUrlChange.bind(this);\n    this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n    this.onClearUrlClick = this.onClearUrlClick.bind(this);\n    this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n    this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n    this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n    this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n    this.validateUrl = this.validateUrl.bind(this);\n  }\n\n  onLabelChange(event) {\n    this.setState({\"label\": event.target.value});\n  }\n\n  onUrlChange(event) {\n    this.setState({\n      url: event.target.value,\n      validationError: false\n    });\n  }\n\n  onClearUrlClick() {\n    this.setState({\n      url: \"\",\n      validationError: false\n    });\n  }\n\n  onEnableScreenshotUrlForm() {\n    this.setState({showCustomScreenshotForm: true});\n  }\n\n  _updateCustomScreenshotInput(customScreenshotUrl) {\n    this.setState({\n      customScreenshotUrl,\n      validationError: false\n    });\n    this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n  }\n\n  onCustomScreenshotUrlChange(event) {\n    this._updateCustomScreenshotInput(event.target.value);\n  }\n\n  onClearScreenshotInput() {\n    this._updateCustomScreenshotInput(\"\");\n  }\n\n  onCancelButtonClick(ev) {\n    ev.preventDefault();\n    this.props.onClose();\n  }\n\n  onDoneButtonClick(ev) {\n    ev.preventDefault();\n\n    if (this.validateForm()) {\n      const site = {url: this.cleanUrl(this.state.url)};\n      const {index} = this.props;\n      if (this.state.label !== \"\") {\n        site.label = this.state.label;\n      }\n\n      if (this.state.customScreenshotUrl) {\n        site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n      } else if (this.props.site && this.props.site.customScreenshotURL) {\n        // Used to flag that previously cached screenshot should be removed\n        site.customScreenshotURL = null;\n      }\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.TOP_SITES_PIN,\n        data: {site, index}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"TOP_SITES_EDIT\",\n        action_position: index\n      }));\n\n      this.props.onClose();\n    }\n  }\n\n  onPreviewButtonClick(event) {\n    event.preventDefault();\n    if (this.validateForm()) {\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.PREVIEW_REQUEST,\n        data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"PREVIEW_REQUEST\"\n      }));\n    }\n  }\n\n  cleanUrl(url) {\n    // If we are missing a protocol, prepend http://\n    if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n      return `http://${url}`;\n    }\n    return url;\n  }\n\n  _tryParseUrl(url) {\n    try {\n      return new URL(url);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  validateUrl(url) {\n    const validProtocols = [\"http:\", \"https:\"];\n    const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n    return urlObj && validProtocols.includes(urlObj.protocol);\n  }\n\n  validateCustomScreenshotUrl() {\n    const {customScreenshotUrl} = this.state;\n    return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n  }\n\n  validateForm() {\n    const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n    if (!validate) {\n      this.setState({validationError: true});\n    }\n\n    return validate;\n  }\n\n  _renderCustomScreenshotInput() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n    // Set focus on error if the url field is valid or when the input is first rendered and is empty\n    const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n    const isLoading = this.props.previewResponse === null &&\n      customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n    if (!this.state.showCustomScreenshotForm) {\n      return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n        <FormattedMessage id=\"topsites_form_use_image_link\" />\n      </a>);\n    }\n    return (<div className=\"custom-image-input-container\">\n      <TopSiteFormInput\n        errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n        loading={isLoading}\n        onChange={this.onCustomScreenshotUrlChange}\n        onClear={this.onClearScreenshotInput}\n        shouldFocus={shouldFocus}\n        typeUrl={true}\n        value={customScreenshotUrl}\n        validationError={validationError}\n        titleId=\"topsites_form_image_url_label\"\n        placeholderId=\"topsites_form_url_placeholder\"\n        intl={this.props.intl} />\n    </div>);\n  }\n\n  render() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    // For UI purposes, editing without an existing link is \"add\"\n    const showAsAdd = !this.props.site;\n    const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n    const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n    // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n    // or the request failed\n    const previewMode = changed && !this.props.previewResponse;\n    const previewLink = Object.assign({}, this.props.site);\n    if (this.props.previewResponse) {\n      previewLink.screenshot = this.props.previewResponse;\n      previewLink.customScreenshotURL = this.props.previewUrl;\n    }\n    return (\n      <form className=\"topsite-form\">\n        <div className=\"form-input-container\">\n          <h3 className=\"section-title\">\n            <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n          </h3>\n          <div className=\"fields-and-preview\">\n            <div className=\"form-wrapper\">\n              <TopSiteFormInput onChange={this.onLabelChange}\n                value={this.state.label}\n                titleId=\"topsites_form_title_label\"\n                placeholderId=\"topsites_form_title_placeholder\"\n                intl={this.props.intl} />\n              <TopSiteFormInput onChange={this.onUrlChange}\n                shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n                value={this.state.url}\n                onClear={this.onClearUrlClick}\n                validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n                titleId=\"topsites_form_url_label\"\n                typeUrl={true}\n                placeholderId=\"topsites_form_url_placeholder\"\n                errorMessageId=\"topsites_form_url_validation\"\n                intl={this.props.intl} />\n              {this._renderCustomScreenshotInput()}\n            </div>\n            <TopSiteLink link={previewLink}\n              defaultStyle={requestFailed}\n              title={this.state.label} />\n          </div>\n        </div>\n        <section className=\"actions\">\n          <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n            <FormattedMessage id=\"topsites_form_cancel_button\" />\n          </button>\n          {previewMode ?\n            <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n              <FormattedMessage id=\"topsites_form_preview_button\" />\n            </button> :\n            <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n              <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n            </button>}\n        </section>\n      </form>\n    );\n  }\n}\n\nTopSiteForm.defaultProps = {\n  site: null,\n  index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteForm.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n  constructor(store, options = {}) {\n    this._store = store;\n    // Overrides for testing\n    this.document = options.document || global.document;\n    this._perfService = options.perfService || perfSvc;\n    this._onVisibilityChange = this._onVisibilityChange.bind(this);\n  }\n\n  /**\n   * sendEventOrAddListener - Notify immediately if the page is already visible,\n   *                    or else set up a listener for when visibility changes.\n   *                    This is needed for accurate session tracking for telemetry,\n   *                    because tabs are pre-loaded.\n   */\n  sendEventOrAddListener() {\n    if (this.document.visibilityState === VISIBLE) {\n      // If the document is already visible, to the user, send a notification\n      // immediately that a session has started.\n      this._sendEvent();\n    } else {\n      // If the document is not visible, listen for when it does become visible.\n      this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  /**\n   * _sendEvent - Sends a message to the main process to indicate the current\n   *              tab is now visible to the user, includes the\n   *              visibility_event_rcvd_ts time in ms from the UNIX epoch.\n   */\n  _sendEvent() {\n    this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n    try {\n      let visibility_event_rcvd_ts = this._perfService\n        .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n      this._store.dispatch(ac.AlsoToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data: {visibility_event_rcvd_ts}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up.\n    }\n  }\n\n  /**\n   * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n   *                      and removes the event listener. This should only be called once per tab.\n   */\n  _onVisibilityChange() {\n    if (this.document.visibilityState === VISIBLE) {\n      this._sendEvent();\n      this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 122289b5a7582e53c983","webpack:///external \"React\"","webpack:///./system-addon/common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./system-addon/content-src/components/TopSites/TopSitesConstants.js","webpack:///./system-addon/common/Dedupe.jsm","webpack:///./system-addon/common/Reducers.jsm","webpack:///./system-addon/content-src/asrouter/asrouter-content.jsx","webpack:///./system-addon/content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./system-addon/content-src/lib/link-menu-options.js","webpack:///./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./system-addon/content-src/lib/section-menu-options.js","webpack:///./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./system-addon/common/PerfService.jsm","webpack:///./system-addon/content-src/components/TopSites/TopSite.jsx","webpack:///./system-addon/content-src/activity-stream.jsx","webpack:///./system-addon/content-src/lib/snippets.js","webpack:///external \"Redux\"","webpack:///./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./system-addon/content-src/asrouter/template-utils.js","webpack:///./system-addon/content-src/asrouter/components/Button/Button.jsx","webpack:///./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./system-addon/content-src/components/Base/Base.jsx","webpack:///./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./system-addon/common/PrerenderData.jsm","webpack:///./system-addon/content-src/components/Search/Search.jsx","webpack:///./system-addon/content-src/lib/constants.js","webpack:///./system-addon/content-src/components/Sections/Sections.jsx","webpack:///./system-addon/content-src/components/Card/types.js","webpack:///./system-addon/content-src/components/Card/Card.jsx","webpack:///./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./system-addon/content-src/components/Topics/Topics.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSites.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./system-addon/content-src/components/TopSites/TopSiteForm.jsx","webpack:///./system-addon/content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","_RouteMessage","action","options","meta","Object","assign","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","url","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","includes","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","unblockById","getNextMessage","overrideMessage","sendTelemetry","ping","payload","ac","shouldSendImpressionOnUpdate","nextProps","prevProps","message","ASRouterUISurface","React","PureComponent","props","onMessageFromParent","bind","sendImpression","sendUserActionTelemetry","state","extraProps","eventType","provider","message_id","event","onBlockById","setState","componentWillMount","componentWillUnmount","render","document","defaultProps","initASRouter","ReactDOM","getElementById","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","console","error","dump","JSON","stringify","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","i","ContextMenuItem","onKeyDown","shiftKey","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","text","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","collapsed","sectionBody","scrollHeight","visibilityState","node","undefined","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","startsWith","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","TopSiteLink","onDragEvent","_allowDrop","e","dataTransfer","types","dragged","effectAllowed","setData","blur","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","componentWillReceiveProps","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","slice","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","delete","clear","get","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","err","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","Date","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","init","keys","dispatchEvent","Event","uninit","snippets","initializing","subscribe","asrouterExperimentEnabled","disableSnippets","ImpressionsWrapper","sendImpressionOrAddListener","_onVisibilityChange","sendOnMount","safeURI","protocol","URL","isAllowed","warn","Button","onBlockClicked","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","content","button_url","button_label","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","v","join","body","renderNotified","NEW_TAB_REHYDRATED","strings","hash","BaseContent","openPreferences","prefs","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","handleBlock","handleUnblock","handleOverride","renderMessageItem","isCurrent","currentId","isBlocked","itemClassName","renderMessages","messages","renderProviders","providers","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW","Section","_dispatchImpressionStats","maxCards","maxRows","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","isCollapsed","wasCollapsed","numberOfPlaceholders","items","remainder","emptyState","contextMenuOptions","shouldShowTopics","topics","realRows","placeholders","shouldShowEmptyState","feed","padding","isWebExtension","_","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","maybeLoadImage","image","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","hasImage","placeholder","description","context","_Card","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","acc","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","matchMedia","matches","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 19);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 122289b5a7582e53c983","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n *                       Use this in action creators if you need different logic\n *                       for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n//   INIT: \"INIT\",\n//   UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n  \"ARCHIVE_FROM_POCKET\",\n  \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n  \"BLOCK_URL\",\n  \"BOOKMARK_URL\",\n  \"COPY_DOWNLOAD_LINK\",\n  \"DELETE_BOOKMARK_BY_ID\",\n  \"DELETE_FROM_POCKET\",\n  \"DELETE_HISTORY_URL\",\n  \"DIALOG_CANCEL\",\n  \"DIALOG_OPEN\",\n  \"DISABLE_ONBOARDING\",\n  \"DOWNLOAD_CHANGED\",\n  \"INIT\",\n  \"MIGRATION_CANCEL\",\n  \"MIGRATION_COMPLETED\",\n  \"MIGRATION_START\",\n  \"NEW_TAB_INIT\",\n  \"NEW_TAB_INITIAL_STATE\",\n  \"NEW_TAB_LOAD\",\n  \"NEW_TAB_REHYDRATED\",\n  \"NEW_TAB_STATE_REQUEST\",\n  \"NEW_TAB_UNLOAD\",\n  \"OPEN_DOWNLOAD_FILE\",\n  \"OPEN_LINK\",\n  \"OPEN_NEW_WINDOW\",\n  \"OPEN_PRIVATE_WINDOW\",\n  \"PAGE_PRERENDERED\",\n  \"PLACES_BOOKMARK_ADDED\",\n  \"PLACES_BOOKMARK_REMOVED\",\n  \"PLACES_HISTORY_CLEARED\",\n  \"PLACES_LINKS_CHANGED\",\n  \"PLACES_LINK_BLOCKED\",\n  \"PLACES_LINK_DELETED\",\n  \"PLACES_SAVED_TO_POCKET\",\n  \"PREFS_INITIAL_VALUES\",\n  \"PREF_CHANGED\",\n  \"PREVIEW_REQUEST\",\n  \"PREVIEW_REQUEST_CANCEL\",\n  \"PREVIEW_RESPONSE\",\n  \"REMOVE_DOWNLOAD_FILE\",\n  \"RICH_ICON_MISSING\",\n  \"SAVE_SESSION_PERF_DATA\",\n  \"SAVE_TO_POCKET\",\n  \"SCREENSHOT_UPDATED\",\n  \"SECTION_DEREGISTER\",\n  \"SECTION_DISABLE\",\n  \"SECTION_ENABLE\",\n  \"SECTION_MOVE\",\n  \"SECTION_OPTIONS_CHANGED\",\n  \"SECTION_REGISTER\",\n  \"SECTION_UPDATE\",\n  \"SECTION_UPDATE_CARD\",\n  \"SETTINGS_CLOSE\",\n  \"SETTINGS_OPEN\",\n  \"SET_PREF\",\n  \"SHOW_DOWNLOAD_FILE\",\n  \"SHOW_FIREFOX_ACCOUNTS\",\n  \"SNIPPETS_BLOCKLIST_CLEARED\",\n  \"SNIPPETS_BLOCKLIST_UPDATED\",\n  \"SNIPPETS_DATA\",\n  \"SNIPPETS_RESET\",\n  \"SNIPPET_BLOCKED\",\n  \"SYSTEM_TICK\",\n  \"TELEMETRY_IMPRESSION_STATS\",\n  \"TELEMETRY_PERFORMANCE_EVENT\",\n  \"TELEMETRY_UNDESIRED_EVENT\",\n  \"TELEMETRY_USER_EVENT\",\n  \"THEME_UPDATE\",\n  \"TOP_SITES_CANCEL_EDIT\",\n  \"TOP_SITES_EDIT\",\n  \"TOP_SITES_INSERT\",\n  \"TOP_SITES_PIN\",\n  \"TOP_SITES_PREFS_UPDATED\",\n  \"TOP_SITES_UNPIN\",\n  \"TOP_SITES_UPDATED\",\n  \"TOTAL_BOOKMARKS_REQUEST\",\n  \"TOTAL_BOOKMARKS_RESPONSE\",\n  \"UNINIT\",\n  \"UPDATE_SECTION_PREFS\",\n  \"WEBEXT_CLICK\",\n  \"WEBEXT_DISMISS\"\n]) {\n  actionTypes[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n  const meta = action.meta ? Object.assign({}, action.meta) : {};\n  if (!options || !options.from || !options.to) {\n    throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n  }\n  // For each of these fields, if they are passed as an option,\n  // add them to the action. If they are not defined, remove them.\n  [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n    if (typeof options[o] !== \"undefined\") {\n      meta[o] = options[o];\n    } else if (meta[o]) {\n      delete meta[o];\n    }\n  });\n  return Object.assign({}, action, {meta});\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {bool}   skipLocal Used by OnlyToMain to skip the main reducer\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n  return _RouteMessage(action, {\n    from: CONTENT_MESSAGE_TYPE,\n    to: MAIN_MESSAGE_TYPE,\n    fromTarget,\n    skipLocal\n  });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {object} options\n * @param  {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n  return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE\n  });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n *                    and also sent to a particular Content process.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @param  {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n  if (!target) {\n    throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n  }\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: CONTENT_MESSAGE_TYPE,\n    toTarget: target,\n    skipMain\n  });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n *                    and skip the main reducer.\n *\n * @param  {object} action Any redux action (required)\n * @param  {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n  return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param  {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n  return _RouteMessage(action, {\n    from: MAIN_MESSAGE_TYPE,\n    to: PRELOAD_MESSAGE_TYPE\n  });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n *                   be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n *                     be sent from the UI during a user session.\n *\n * @param  {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n  return AlsoToMain({\n    type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n    data\n  });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param  {object} data Fields to include in the ping (value, etc.)\n * @param  {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param  {object} data Fields to include in the ping\n * @param  {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n  const action = {\n    type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n    data\n  };\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n  const action = {type: actionTypes.SET_PREF, data: {name, value}};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n  if (!data || !data.source) {\n    throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n  }\n  const action = {type, data};\n  return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\n\nthis.actionCreators = {\n  BroadcastToContent,\n  UserEvent,\n  ASRouterUserEvent,\n  UndesiredEvent,\n  PerfEvent,\n  ImpressionStats,\n  AlsoToOneContent,\n  OnlyToOneContent,\n  AlsoToMain,\n  OnlyToMain,\n  AlsoToPreloaded,\n  SetPref,\n  WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n  isSendToMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n  },\n  isBroadcastToContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToOneContent(action) {\n    if (!action.meta) {\n      return false;\n    }\n    if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n      return true;\n    }\n    return false;\n  },\n  isSendToPreloaded(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n      action.meta.from === MAIN_MESSAGE_TYPE;\n  },\n  isFromMain(action) {\n    if (!action.meta) {\n      return false;\n    }\n    return action.meta.from === MAIN_MESSAGE_TYPE &&\n      action.meta.to === CONTENT_MESSAGE_TYPE;\n  },\n  getPortIdOfSender(action) {\n    return (action.meta && action.meta.fromTarget) || null;\n  },\n  _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n  \"actionTypes\",\n  \"actionCreators\",\n  \"actionUtils\",\n  \"globalImportContext\",\n  \"UI_CODE\",\n  \"BACKGROUND_PROCESS\",\n  \"MAIN_MESSAGE_TYPE\",\n  \"CONTENT_MESSAGE_TYPE\",\n  \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n  \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n  constructor(createKey) {\n    this.createKey = createKey || this.defaultCreateKey;\n  }\n\n  defaultCreateKey(item) {\n    return item;\n  }\n\n  /**\n   * Dedupe any number of grouped elements favoring those from earlier groups.\n   *\n   * @param {Array} groups Contains an arbitrary number of arrays of elements.\n   * @returns {Array} A matching array of each provided group deduped.\n   */\n  group(...groups) {\n    const globalKeys = new Set();\n    const result = [];\n    for (const values of groups) {\n      const valueMap = new Map();\n      for (const value of values) {\n        const key = this.createKey(value);\n        if (!globalKeys.has(key) && !valueMap.has(key)) {\n          valueMap.set(key, value);\n        }\n      }\n      result.push(valueMap);\n      valueMap.forEach((value, key) => globalKeys.add(key));\n    }\n    return result.map(m => Array.from(m.values()));\n  }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n  App: {\n    // Have we received real data from the app yet?\n    initialized: false,\n    // The version of the system-addon\n    version: null\n  },\n  Snippets: {initialized: false},\n  TopSites: {\n    // Have we received real data from history yet?\n    initialized: false,\n    // The history (and possibly default) links\n    rows: [],\n    // Used in content only to dispatch action to TopSiteForm.\n    editForm: null\n  },\n  Prefs: {\n    initialized: false,\n    values: {}\n  },\n  Theme: {className: \"\"},\n  Dialog: {\n    visible: false,\n    data: {}\n  },\n  Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n  switch (action.type) {\n    case at.INIT:\n      return Object.assign({}, prevState, action.data || {}, {initialized: true});\n    default:\n      return prevState;\n  }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n  // Remove any pinned links\n  const pinnedUrls = pinned.map(link => link && link.url);\n  let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n  newLinks = newLinks.map(link => {\n    if (link && link.isPinned) {\n      delete link.isPinned;\n      delete link.pinIndex;\n    }\n    return link;\n  });\n\n  // Then insert them in their specified location\n  pinned.forEach((val, index) => {\n    if (!val) { return; }\n    let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n    if (index > newLinks.length) {\n      newLinks[index] = link;\n    } else {\n      newLinks.splice(index, 0, link);\n    }\n  });\n\n  return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n  let hasMatch;\n  let newRows;\n  switch (action.type) {\n    case at.TOP_SITES_UPDATED:\n      if (!action.data || !action.data.links) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n    case at.TOP_SITES_PREFS_UPDATED:\n      return Object.assign({}, prevState, {pref: action.data.pref});\n    case at.TOP_SITES_EDIT:\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: action.data.index,\n          previewResponse: null\n        }\n      });\n    case at.TOP_SITES_CANCEL_EDIT:\n      return Object.assign({}, prevState, {editForm: null});\n    case at.PREVIEW_RESPONSE:\n      if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: action.data.preview,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null,\n          previewUrl: action.data.url\n        }\n      });\n    case at.PREVIEW_REQUEST_CANCEL:\n      if (!prevState.editForm) {\n        return prevState;\n      }\n      return Object.assign({}, prevState, {\n        editForm: {\n          index: prevState.editForm.index,\n          previewResponse: null\n        }\n      });\n    case at.SCREENSHOT_UPDATED:\n      newRows = prevState.rows.map(row => {\n        if (row && row.url === action.data.url) {\n          hasMatch = true;\n          return Object.assign({}, row, {screenshot: action.data.screenshot});\n        }\n        return row;\n      });\n      return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n          return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.map(site => {\n        if (site && site.url === action.data.url) {\n          const newSite = Object.assign({}, site);\n          delete newSite.bookmarkGuid;\n          delete newSite.bookmarkTitle;\n          delete newSite.bookmarkDateCreated;\n          return newSite;\n        }\n        return site;\n      });\n      return Object.assign({}, prevState, {rows: newRows});\n    case at.PLACES_LINK_DELETED:\n      if (!action.data) {\n        return prevState;\n      }\n      newRows = prevState.rows.filter(site => action.data.url !== site.url);\n      return Object.assign({}, prevState, {rows: newRows});\n    default:\n      return prevState;\n  }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n  switch (action.type) {\n    case at.DIALOG_OPEN:\n      return Object.assign({}, prevState, {visible: true, data: action.data});\n    case at.DIALOG_CANCEL:\n      return Object.assign({}, prevState, {visible: false});\n    case at.DELETE_HISTORY_URL:\n      return Object.assign({}, INITIAL_STATE.Dialog);\n    default:\n      return prevState;\n  }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n  let newValues;\n  switch (action.type) {\n    case at.PREFS_INITIAL_VALUES:\n      return Object.assign({}, prevState, {initialized: true, values: action.data});\n    case at.PREF_CHANGED:\n      newValues = Object.assign({}, prevState.values);\n      newValues[action.data.name] = action.data.value;\n      return Object.assign({}, prevState, {values: newValues});\n    default:\n      return prevState;\n  }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n  let hasMatch;\n  let newState;\n  switch (action.type) {\n    case at.SECTION_DEREGISTER:\n      return prevState.filter(section => section.id !== action.data);\n    case at.SECTION_REGISTER:\n      // If section exists in prevState, update it\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          hasMatch = true;\n          return Object.assign({}, section, action.data);\n        }\n        return section;\n      });\n      // Otherwise, append it\n      if (!hasMatch) {\n        const initialized = !!(action.data.rows && action.data.rows.length > 0);\n        const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n        newState.push(section);\n      }\n      return newState;\n    case at.SECTION_UPDATE:\n      newState = prevState.map(section => {\n        if (section && section.id === action.data.id) {\n          // If the action is updating rows, we should consider initialized to be true.\n          // This can be overridden if initialized is defined in the action.data\n          const initialized = action.data.rows ? {initialized: true} : {};\n\n          // Make sure pinned cards stay at their current position when rows are updated.\n          // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n          if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n            const rows = Array.from(action.data.rows);\n            section.rows.forEach((card, index) => {\n              if (card.pinned) {\n                rows.splice(index, 0, card);\n              }\n            });\n            return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n          }\n\n          return Object.assign({}, section, initialized, action.data);\n        }\n        return section;\n      });\n\n      if (!action.data.dedupeConfigurations) {\n        return newState;\n      }\n\n      action.data.dedupeConfigurations.forEach(dedupeConf => {\n        newState = newState.map(section => {\n          if (section.id === dedupeConf.id) {\n            const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n              const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n              const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n              return newRows;\n            }, section.rows);\n\n            return Object.assign({}, section, {rows: dedupedRows});\n          }\n\n          return section;\n        });\n      });\n\n      return newState;\n    case at.SECTION_UPDATE_CARD:\n      return prevState.map(section => {\n        if (section && section.id === action.data.id && section.rows) {\n          const newRows = section.rows.map(card => {\n            if (card.url === action.data.url) {\n              return Object.assign({}, card, action.data.options);\n            }\n            return card;\n          });\n          return Object.assign({}, section, {rows: newRows});\n        }\n        return section;\n      });\n    case at.PLACES_BOOKMARK_ADDED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the item within the rows that is attempted to be bookmarked\n          if (item.url === action.data.url) {\n            const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n            return Object.assign({}, item, {\n              bookmarkGuid,\n              bookmarkTitle,\n              bookmarkDateCreated: dateAdded,\n              type: \"bookmark\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_SAVED_TO_POCKET:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          if (item.url === action.data.url) {\n            return Object.assign({}, item, {\n              open_url: action.data.open_url,\n              pocket_id: action.data.pocket_id,\n              title: action.data.title,\n              type: \"pocket\"\n            });\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_BOOKMARK_REMOVED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section => Object.assign({}, section, {\n        rows: section.rows.map(item => {\n          // find the bookmark within the rows that is attempted to be removed\n          if (item.url === action.data.url) {\n            const newSite = Object.assign({}, item);\n            delete newSite.bookmarkGuid;\n            delete newSite.bookmarkTitle;\n            delete newSite.bookmarkDateCreated;\n            if (!newSite.type || newSite.type === \"bookmark\") {\n              newSite.type = \"history\";\n            }\n            return newSite;\n          }\n          return item;\n        })\n      }));\n    case at.PLACES_LINK_DELETED:\n    case at.PLACES_LINK_BLOCKED:\n      if (!action.data) {\n        return prevState;\n      }\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n    case at.DELETE_FROM_POCKET:\n    case at.ARCHIVE_FROM_POCKET:\n      return prevState.map(section =>\n        Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n    default:\n      return prevState;\n  }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n  switch (action.type) {\n    case at.SNIPPETS_DATA:\n      return Object.assign({}, prevState, {initialized: true}, action.data);\n    case at.SNIPPET_BLOCKED:\n      return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n    case at.SNIPPETS_BLOCKLIST_CLEARED:\n      return Object.assign({}, prevState, {blockList: []});\n    case at.SNIPPETS_RESET:\n      return INITIAL_STATE.Snippets;\n    default:\n      return prevState;\n  }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n  switch (action.type) {\n    case at.THEME_UPDATE:\n      return Object.assign({}, prevState, action.data);\n    default:\n      return prevState;\n  }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/Reducers.jsm","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\nexport const ASRouterUtils = {\n  addListener(listener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  removeListener(listener) {\n    global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n  },\n  sendMessage(action) {\n    global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  },\n  blockById(id) {\n    ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  unblockById(id) {\n    ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n  },\n  getNextMessage() {\n    ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n  },\n  overrideMessage(id) {\n    ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n  },\n  sendTelemetry(ping) {\n    const payload = ac.ASRouterUserEvent(ping);\n    global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n  }\n};\n\n// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n  return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessageFromParent = this.onMessageFromParent.bind(this);\n    this.sendImpression = this.sendImpression.bind(this);\n    this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n    this.state = {message: {}};\n  }\n\n  sendUserActionTelemetry(extraProps = {}) {\n    const {message} = this.state;\n    const eventType =  `${message.provider}_user_event`;\n\n    ASRouterUtils.sendTelemetry(Object.assign({\n      message_id: message.id,\n      source: this.props.id,\n      action: eventType\n    }, extraProps));\n  }\n\n  sendImpression() {\n    this.sendUserActionTelemetry({event: \"IMPRESSION\"});\n  }\n\n  onBlockById(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  onMessageFromParent({data: action}) {\n    switch (action.type) {\n      case \"SET_MESSAGE\":\n        this.setState({message: action.data});\n        break;\n      case \"CLEAR_MESSAGE\":\n        this.setState({message: {}});\n        break;\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.addListener(this.onMessageFromParent);\n    ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessageFromParent);\n  }\n\n  render() {\n    const {message} = this.state;\n    if (!message.id) { return null; }\n    return (<ImpressionsWrapper\n        message={message}\n        sendImpression={this.sendImpression}\n        shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}\n        // This helps with testing\n        document={this.props.document}>\n        <SimpleSnippet\n          {...message}\n          UISurface={this.props.id}\n          getNextMessage={ASRouterUtils.getNextMessage}\n          onBlock={this.onBlockById(message.id)}\n          sendUserActionTelemetry={this.sendUserActionTelemetry} />\n      </ImpressionsWrapper>\n    );\n  }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport function initASRouter() {\n  ReactDOM.render(<ASRouterUISurface id=\"NEWTAB_FOOTER_BAR\" />, document.getElementById(\"snippets-container\"));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/asrouter-content.jsx","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param  {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function}             a reducer that, on MERGE_STORE_ACTION action,\n *                                will return the action.data object merged\n *                                into the previous state, and the result\n *                                of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n  return (prevState, action) => {\n    if (action.type === MERGE_STORE_ACTION) {\n      return Object.assign({}, prevState, action.data);\n    }\n\n    return mainReducer(prevState, action);\n  };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n  const skipLocal = action.meta && action.meta.skipLocal;\n  if (au.isSendToMain(action)) {\n    sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n  }\n  if (!skipLocal) {\n    next(action);\n  }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n  if (store._didRehydrate) {\n    return next(action);\n  }\n\n  const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n  const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n  if (isRehydrationRequest) {\n    store._didRequestInitialState = true;\n    return next(action);\n  }\n\n  if (isMergeStoreAction) {\n    store._didRehydrate = true;\n    return next(action);\n  }\n\n  // If init happened after our request was made, we need to re-request\n  if (store._didRequestInitialState && action.type === at.INIT) {\n    return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n  }\n\n  if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n    // Note that actions received before didRehydrate will not be dispatched\n    // because this could negatively affect preloading and the the state\n    // will be replaced by rehydration anyway.\n    return null;\n  }\n\n  return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n  if (store._receivedFromMain) {\n    next(action);\n  } else if (au.isFromMain(action)) {\n    next(action);\n    store._receivedFromMain = true;\n    // Sending out all the early actions as main is ready now\n    if (store._earlyActionQueue) {\n      store._earlyActionQueue.forEach(next);\n      store._earlyActionQueue = [];\n    }\n  } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n    store._earlyActionQueue = store._earlyActionQueue || [];\n    store._earlyActionQueue.push(action);\n  } else {\n    // Let any other type of action go through\n    next(action);\n  }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param  {object} reducers An object containing Redux reducers\n * @param  {object} intialState (optional) The initial state of the store, if desired\n * @return {object}          A redux store\n */\nexport function initStore(reducers, initialState) {\n  const store = createStore(\n    mergeStateReducer(combineReducers(reducers)),\n    initialState,\n    global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n  );\n\n  store._didRehydrate = false;\n  store._didRequestInitialState = false;\n\n  if (global.addMessageListener) {\n    global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n      try {\n        store.dispatch(msg.data);\n      } catch (ex) {\n        console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n        dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n      }\n    });\n  }\n\n  return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 9\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.windowObj = this.props.windowObj || window;\n    this.onClick = this.onClick.bind(this);\n  }\n\n  /**\n   * Since we only get here if part of the page has crashed, do a\n   * forced reload to give us the best chance at recovering.\n   */\n  onClick() {\n    this.windowObj.location.reload(true);\n  }\n\n  render() {\n    const defaultClass = \"as-error-fallback\";\n    let className;\n    if (\"className\" in this.props) {\n      className = `${this.props.className} ${defaultClass}`;\n    } else {\n      className = defaultClass;\n    }\n\n    // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n    return (\n      <div className={className}>\n        <div>\n          <FormattedMessage\n            defaultMessage=\"Oops, something went wrong loading this content.\"\n            id=\"error_fallback_default_info\" />\n        </div>\n        <span>\n          <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n            <FormattedMessage\n              defaultMessage=\"Refresh page to try again.\"\n              id=\"error_fallback_default_refresh_suggestion\" />\n          </a>\n        </span>\n      </div>\n    );\n  }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {hasError: false};\n  }\n\n  componentDidCatch(error, info) {\n    this.setState({hasError: true});\n  }\n\n  render() {\n    if (!this.state.hasError) {\n      return (this.props.children);\n    }\n\n    return <this.props.FallbackComponent className={this.props.className} />;\n  }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n  id: \"menu_action_open_private_window\",\n  icon: \"new-window-private\",\n  action: ac.OnlyToMain({\n    type: at.OPEN_PRIVATE_WINDOW,\n    data: {url: site.url, referrer: site.referrer}\n  }),\n  userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n  switch (platform) {\n    case \"win\":\n      return \"menu_action_show_file_windows\";\n    case \"macosx\":\n      return \"menu_action_show_file_mac_os\";\n    case \"linux\":\n      return \"menu_action_show_file_linux\";\n    default:\n      return \"menu_action_show_file_default\";\n  }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  EmptyItem: () => ({type: \"empty\"}),\n  RemoveBookmark: site => ({\n    id: \"menu_action_remove_bookmark\",\n    icon: \"bookmark-added\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_BOOKMARK_BY_ID,\n      data: site.bookmarkGuid\n    }),\n    userEvent: \"BOOKMARK_DELETE\"\n  }),\n  AddBookmark: site => ({\n    id: \"menu_action_bookmark\",\n    icon: \"bookmark-hollow\",\n    action: ac.AlsoToMain({\n      type: at.BOOKMARK_URL,\n      data: {url: site.url, title: site.title, type: site.type}\n    }),\n    userEvent: \"BOOKMARK_ADD\"\n  }),\n  OpenInNewWindow: site => ({\n    id: \"menu_action_open_new_window\",\n    icon: \"new-window\",\n    action: ac.AlsoToMain({\n      type: at.OPEN_NEW_WINDOW,\n      data: {\n        referrer: site.referrer,\n        typedBonus: site.typedBonus,\n        url: site.url\n      }\n    }),\n    userEvent: \"OPEN_NEW_WINDOW\"\n  }),\n  BlockUrl: (site, index, eventSource) => ({\n    id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.AlsoToMain({\n      type: at.BLOCK_URL,\n      data: {url: site.url, pocket_id: site.pocket_id}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      block: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"BLOCK\"\n  }),\n\n  // This is an option for web extentions which will result in remove items from\n  // memory and notify the web extenion, rather than using the built-in block list.\n  WebExtDismiss: (site, index, eventSource) => ({\n    id: \"menu_action_webext_dismiss\",\n    string_id: \"menu_action_dismiss\",\n    icon: \"dismiss\",\n    action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n      source: eventSource,\n      url: site.url,\n      action_position: index\n    })\n  }),\n  DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n    id: \"menu_action_delete\",\n    icon: \"delete\",\n    action: {\n      type: at.DIALOG_OPEN,\n      data: {\n        onConfirm: [\n          ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n          ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n        ],\n        eventSource,\n        body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n        confirm_button_string_id: \"menu_action_delete\",\n        cancel_button_string_id: \"topsites_form_cancel_button\",\n        icon: \"modal-delete\"\n      }\n    },\n    userEvent: \"DIALOG_OPEN\"\n  }),\n  ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n    id: GetPlatformString(platform),\n    icon: \"search\",\n    action: ac.OnlyToMain({\n      type: at.SHOW_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  OpenFile: site => ({\n    id: \"menu_action_open_file\",\n    icon: \"open-file\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  CopyDownloadLink: site => ({\n    id: \"menu_action_copy_download_link\",\n    icon: \"copy\",\n    action: ac.OnlyToMain({\n      type: at.COPY_DOWNLOAD_LINK,\n      data: {url: site.url}\n    })\n  }),\n  GoToDownloadPage: site => ({\n    id: \"menu_action_go_to_download_page\",\n    icon: \"download\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: site.referrer}\n    }),\n    disabled: !site.referrer\n  }),\n  RemoveDownload: site => ({\n    id: \"menu_action_remove_download\",\n    icon: \"delete\",\n    action: ac.OnlyToMain({\n      type: at.REMOVE_DOWNLOAD_FILE,\n      data: {url: site.url}\n    })\n  }),\n  PinTopSite: (site, index) => ({\n    id: \"menu_action_pin\",\n    icon: \"pin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_PIN,\n      data: {site: {url: site.url}, index}\n    }),\n    userEvent: \"PIN\"\n  }),\n  UnpinTopSite: site => ({\n    id: \"menu_action_unpin\",\n    icon: \"unpin\",\n    action: ac.AlsoToMain({\n      type: at.TOP_SITES_UNPIN,\n      data: {site: {url: site.url}}\n    }),\n    userEvent: \"UNPIN\"\n  }),\n  SaveToPocket: (site, index, eventSource) => ({\n    id: \"menu_action_save_to_pocket\",\n    icon: \"pocket\",\n    action: ac.AlsoToMain({\n      type: at.SAVE_TO_POCKET,\n      data: {site: {url: site.url, title: site.title}}\n    }),\n    impression: ac.ImpressionStats({\n      source: eventSource,\n      pocket: 0,\n      tiles: [{id: site.guid, pos: index}]\n    }),\n    userEvent: \"SAVE_TO_POCKET\"\n  }),\n  DeleteFromPocket: site => ({\n    id: \"menu_action_delete_pocket\",\n    icon: \"delete\",\n    action: ac.AlsoToMain({\n      type: at.DELETE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"DELETE_FROM_POCKET\"\n  }),\n  ArchiveFromPocket: site => ({\n    id: \"menu_action_archive_pocket\",\n    icon: \"check\",\n    action: ac.AlsoToMain({\n      type: at.ARCHIVE_FROM_POCKET,\n      data: {pocket_id: site.pocket_id}\n    }),\n    userEvent: \"ARCHIVE_FROM_POCKET\"\n  }),\n  EditTopSite: (site, index) => ({\n    id: \"edit_topsites_button_text\",\n    icon: \"edit\",\n    action: {\n      type: at.TOP_SITES_EDIT,\n      data: {index}\n    }\n  }),\n  CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n  CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n  CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n  CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n  OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n    const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n    // Handle special case of default site\n    const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n    const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n      const {action, impression, id, string_id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id: string_id || id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            const userEventData = Object.assign({\n              event: userEvent,\n              source,\n              action_position: index\n            }, siteInfo);\n            props.dispatch(ac.UserEvent(userEventData));\n          }\n          if (impression && props.shouldSendImpressionStats) {\n            props.dispatch(impression);\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.hideContext = this.hideContext.bind(this);\n    this.onClick = this.onClick.bind(this);\n  }\n\n  hideContext() {\n    this.props.onUpdate(false);\n  }\n\n  componentDidMount() {\n    setTimeout(() => {\n      global.addEventListener(\"click\", this.hideContext);\n    }, 0);\n  }\n\n  componentWillUnmount() {\n    global.removeEventListener(\"click\", this.hideContext);\n  }\n\n  onClick(event) {\n    // Eat all clicks on the context menu so they don't bubble up to window.\n    // This prevents the context menu from closing when clicking disabled items\n    // or the separators.\n    event.stopPropagation();\n  }\n\n  render() {\n    return (<span className=\"context-menu\" onClick={this.onClick}>\n      <ul role=\"menu\" className=\"context-menu-list\">\n        {this.props.options.map((option, i) => (option.type === \"separator\" ?\n          (<li key={i} className=\"separator\" />) :\n          (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n        ))}\n      </ul>\n    </span>);\n  }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onKeyDown = this.onKeyDown.bind(this);\n  }\n\n  onClick() {\n    this.props.hideContext();\n    this.props.option.onClick();\n  }\n\n  onKeyDown(event) {\n    const {option} = this.props;\n    switch (event.key) {\n      case \"Tab\":\n        // tab goes down in context menu, shift + tab goes up in context menu\n        // if we're on the last item, one more tab will close the context menu\n        // similarly, if we're on the first item, one more shift + tab will close it\n        if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n          this.props.hideContext();\n        }\n        break;\n      case \"Enter\":\n        this.props.hideContext();\n        option.onClick();\n        break;\n    }\n  }\n\n  render() {\n    const {option} = this.props;\n    return (\n      <li role=\"menuitem\" className=\"context-menu-item\">\n        <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n          {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n          {option.label}\n        </a>\n      </li>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ContextMenu/ContextMenu.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onAcknowledge = this.onAcknowledge.bind(this);\n  }\n\n  onAcknowledge() {\n    this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n    this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n  }\n\n  render() {\n    const {disclaimer} = this.props;\n    return (\n      <div className=\"section-disclaimer\">\n          <div className=\"section-disclaimer-text\">\n            {getFormattedMessage(disclaimer.text)}\n            {disclaimer.link &&\n              <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n                {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n              </a>\n            }\n          </div>\n\n          <button onClick={this.onAcknowledge}>\n            {getFormattedMessage(disclaimer.button)}\n          </button>\n      </div>\n    );\n  }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBodyMount = this.onBodyMount.bind(this);\n    this.onHeaderClick = this.onHeaderClick.bind(this);\n    this.onTransitionEnd = this.onTransitionEnd.bind(this);\n    this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n    this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n  }\n\n  componentWillMount() {\n    this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  componentWillUpdate(nextProps) {\n    // Check if we're about to go from expanded to collapsed\n    if (!this.props.collapsed && nextProps.collapsed) {\n      // This next line forces a layout flush of the section body, which has a\n      // max-height style set, so that the upcoming collapse animation can\n      // animate from that height to the collapsed height. Without this, the\n      // update is coalesced and there's no animation from no-max-height to 0.\n      this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n    }\n  }\n\n  componentWillUnmount() {\n    this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n  }\n\n  enableOrDisableAnimation() {\n    // Only animate the collapse/expand for visible tabs.\n    const visible = this.props.document.visibilityState === VISIBLE;\n    if (this.state.enableAnimation !== visible) {\n      this.setState({enableAnimation: visible});\n    }\n  }\n\n  onBodyMount(node) {\n    this.sectionBody = node;\n  }\n\n  onHeaderClick() {\n    // If this.sectionBody is unset, it means that we're in some sort of error\n    // state, probably displaying the error fallback, so we won't be able to\n    // compute the height, and we don't want to persist the preference.\n    // If props.collapsed is undefined handler shouldn't do anything.\n    if (!this.sectionBody || this.props.collapsed === undefined) {\n      return;\n    }\n\n    // Get the current height of the body so max-height transitions can work\n    this.setState({\n      isAnimating: true,\n      maxHeight: `${this.sectionBody.scrollHeight}px`\n    });\n    const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n    this.props.dispatch(action);\n    this.props.dispatch(ac.UserEvent({\n      event: userEvent,\n      source: this.props.source\n    }));\n  }\n\n  onTransitionEnd(event) {\n    // Only update the animating state for our own transition (not a child's)\n    if (event.target === event.currentTarget) {\n      this.setState({isAnimating: false});\n    }\n  }\n\n  renderIcon() {\n    const {icon} = this.props;\n    if (icon && icon.startsWith(\"moz-extension://\")) {\n      return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n    }\n    return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuButtonMouseEnter() {\n    this.setState({menuButtonHover: true});\n  }\n\n  onMenuButtonMouseLeave() {\n    this.setState({menuButtonHover: false});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const isCollapsible = this.props.collapsed !== undefined;\n    const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n    const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast} = this.props;\n    const disclaimerPref = `section.${id}.showDisclaimer`;\n    const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n    const active = menuButtonHover || showContextMenu;\n\n    return (\n      <section className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}>\n        <div className=\"section-top-bar\">\n          <h3 className=\"section-title\">\n            <span className=\"click-target\" onClick={this.onHeaderClick}>\n              {this.renderIcon()}\n              {getFormattedMessage(title)}\n              {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n            </span>\n          </h3>\n          <div>\n            <button\n              className=\"context-menu-button icon\"\n              onClick={this.onMenuButtonClick}\n              onMouseEnter={this.onMenuButtonMouseEnter}\n              onMouseLeave={this.onMenuButtonMouseLeave}>\n              <span className=\"sr-only\">\n                <FormattedMessage id=\"section_context_menu_button_sr\" />\n              </span>\n            </button>\n            {showContextMenu &&\n              <SectionMenu\n                id={id}\n                extraOptions={extraMenuOptions}\n                eventSource={eventSource}\n                showPrefName={showPrefName}\n                privacyNoticeURL={privacyNoticeURL}\n                collapsed={collapsed}\n                onUpdate={this.onMenuUpdate}\n                isFirst={isFirst}\n                isLast={isLast}\n                dispatch={dispatch} />\n            }\n          </div>\n        </div>\n        <ErrorBoundary className=\"section-body-fallback\">\n          <div\n            className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n            onTransitionEnd={this.onTransitionEnd}\n            ref={this.onBodyMount}\n            style={isAnimating && !collapsed ? {maxHeight} : null}>\n            {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n            {this.props.children}\n          </div>\n        </ErrorBoundary>\n      </section>\n    );\n  }\n}\n\n_CollapsibleSection.defaultProps = {\n  document: global.document || {\n    addEventListener: () => {},\n    removeEventListener: () => {},\n    visibilityState: \"hidden\"\n  },\n  Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n  Separator: () => ({type: \"separator\"}),\n  MoveUp: section => ({\n    id: \"section_menu_action_move_up\",\n    icon: \"arrowhead-up\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: -1}\n    }),\n    userEvent: \"MENU_MOVE_UP\",\n    disabled: !!section.isFirst\n  }),\n  MoveDown: section => ({\n    id: \"section_menu_action_move_down\",\n    icon: \"arrowhead-down\",\n    action: ac.OnlyToMain({\n      type: at.SECTION_MOVE,\n      data: {id: section.id, direction: +1}\n    }),\n    userEvent: \"MENU_MOVE_DOWN\",\n    disabled: !!section.isLast\n  }),\n  RemoveSection: section => ({\n    id: \"section_menu_action_remove_section\",\n    icon: \"dismiss\",\n    action: ac.SetPref(section.showPrefName, false),\n    userEvent: \"MENU_REMOVE\"\n  }),\n  CollapseSection: section => ({\n    id: \"section_menu_action_collapse_section\",\n    icon: \"minimize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n    userEvent: \"MENU_COLLAPSE\"\n  }),\n  ExpandSection: section => ({\n    id: \"section_menu_action_expand_section\",\n    icon: \"maximize\",\n    action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n    userEvent: \"MENU_EXPAND\"\n  }),\n  ManageSection: section => ({\n    id: \"section_menu_action_manage_section\",\n    icon: \"settings\",\n    action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n    userEvent: \"MENU_MANAGE\"\n  }),\n  AddTopSite: section => ({\n    id: \"section_menu_action_add_topsite\",\n    icon: \"add\",\n    action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n    userEvent: \"MENU_ADD_TOPSITE\"\n  }),\n  PrivacyNotice: section => ({\n    id: \"section_menu_action_privacy_notice\",\n    icon: \"info\",\n    action: ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: {url: section.privacyNoticeURL}\n    }),\n    userEvent: \"MENU_PRIVACY_NOTICE\"\n  }),\n  CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n  constructor(props) {\n    super(props);\n    // Just for test dependency injection:\n    this.perfSvc = this.props.perfSvc || perfSvc;\n\n    this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n    this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n    this._reportMissingData = false;\n    this._timestampHandled = false;\n    this._recordedFirstRender = false;\n  }\n\n  componentDidMount() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  componentDidUpdate() {\n    if (!RECORDED_SECTIONS.includes(this.props.id)) {\n      return;\n    }\n\n    this._maybeSendPaintedEvent();\n  }\n\n  /**\n   * Call the given callback after the upcoming frame paints.\n   *\n   * @note Both setTimeout and requestAnimationFrame are throttled when the page\n   * is hidden, so this callback may get called up to a second or so after the\n   * requestAnimationFrame \"paint\" for hidden tabs.\n   *\n   * Newtabs hidden while loading will presumably be fairly rare (other than\n   * preloaded tabs, which we will be filtering out on the server side), so such\n   * cases should get lost in the noise.\n   *\n   * If we decide that it's important to find out when something that's hidden\n   * has \"painted\", however, another option is to post a message to this window.\n   * That should happen even faster than setTimeout, and, at least as of this\n   * writing, it's not throttled in hidden windows in Firefox.\n   *\n   * @param {Function} callback\n   *\n   * @returns void\n   */\n  _afterFramePaint(callback) {\n    requestAnimationFrame(() => setTimeout(callback, 0));\n  }\n\n  _maybeSendBadStateEvent() {\n    // Follow up bugs:\n    // https://github.com/mozilla/activity-stream/issues/3691\n    if (!this.props.initialized) {\n      // Remember to report back when data is available.\n      this._reportMissingData = true;\n    } else if (this._reportMissingData) {\n      this._reportMissingData = false;\n      // Report how long it took for component to become initialized.\n      this._sendBadStateEvent();\n    }\n  }\n\n  _maybeSendPaintedEvent() {\n    // If we've already handled a timestamp, don't do it again.\n    if (this._timestampHandled || !this.props.initialized) {\n      return;\n    }\n\n    // And if we haven't, we're doing so now, so remember that. Even if\n    // something goes wrong in the callback, we can't try again, as we'd be\n    // sending back the wrong data, and we have to do it here, so that other\n    // calls to this method while waiting for the next frame won't also try to\n    // handle it.\n    this._timestampHandled = true;\n    this._afterFramePaint(this._sendPaintedEvent);\n  }\n\n  /**\n   * Triggered by call to render. Only first call goes through due to\n   * `_recordedFirstRender`.\n   */\n  _ensureFirstRenderTsRecorded() {\n    // Used as t0 for recording how long component took to initialize.\n    if (!this._recordedFirstRender) {\n      this._recordedFirstRender = true;\n      // topsites_first_render_ts, highlights_first_render_ts.\n      const key = `${this.props.id}_first_render_ts`;\n      this.perfSvc.mark(key);\n    }\n  }\n\n  /**\n   * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n   * of how much longer the data took to be ready for display than it would\n   * have been the ideal case.\n   * https://github.com/mozilla/ping-centre/issues/98\n   */\n  _sendBadStateEvent() {\n    // highlights_data_ready_ts, topsites_data_ready_ts.\n    const dataReadyKey = `${this.props.id}_data_ready_ts`;\n    this.perfSvc.mark(dataReadyKey);\n\n    try {\n      const firstRenderKey = `${this.props.id}_first_render_ts`;\n      // value has to be Int32.\n      const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n                             this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        // highlights_data_late_by_ms, topsites_data_late_by_ms.\n        data: {[`${this.props.id}_data_late_by_ms`]: value}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.\n    }\n  }\n\n  _sendPaintedEvent() {\n    // Record first_painted event but only send if topsites.\n    if (this.props.id !== \"topsites\") {\n      return;\n    }\n\n    // topsites_first_painted_ts.\n    const key = `${this.props.id}_first_painted_ts`;\n    this.perfSvc.mark(key);\n\n    try {\n      const data = {};\n      data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up, and should continue\n      // to set this._timestampHandled to avoid going through this again.\n    }\n  }\n\n  render() {\n    if (RECORDED_SECTIONS.includes(this.props.id)) {\n      this._ensureFirstRenderTsRecorded();\n      this._maybeSendBadStateEvent();\n    }\n    return this.props.children;\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n  ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n  // Borrow the high-resolution timer from the hidden window....\n  usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n  // we must be running in content space\n  // eslint-disable-next-line no-undef\n  usablePerfObj = performance;\n} else {\n  // This is a dummy object so this file doesn't crash in the node prerendering\n  // task.\n  usablePerfObj = {\n    now() {},\n    mark() {}\n  };\n}\n\nfunction _PerfService(options) {\n  // For testing, so that we can use a fake Window.performance object with\n  // known state.\n  if (options && options.performanceObj) {\n    this._perf = options.performanceObj;\n  } else {\n    this._perf = usablePerfObj;\n  }\n}\n\n_PerfService.prototype = {\n  /**\n   * Calls the underlying mark() method on the appropriate Window.performance\n   * object to add a mark with the given name to the appropriate performance\n   * timeline.\n   *\n   * @param  {String} name  the name to give the current mark\n   * @return {void}\n   */\n  mark: function mark(str) {\n    this._perf.mark(str);\n  },\n\n  /**\n   * Calls the underlying getEntriesByName on the appropriate Window.performance\n   * object.\n   *\n   * @param  {String} name\n   * @param  {String} type eg \"mark\"\n   * @return {Array}       Performance* objects\n   */\n  getEntriesByName: function getEntriesByName(name, type) {\n    return this._perf.getEntriesByName(name, type);\n  },\n\n  /**\n   * The timeOrigin property from the appropriate performance object.\n   * Used to ensure that timestamps from the add-on code and the content code\n   * are comparable.\n   *\n   * @note If this is called from a context without a window\n   * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n   * window, which appears to be the first created window (and thus\n   * timeOrigin) in the browser.  Note also, however, there is also a private\n   * hidden window, presumably for private browsing, which appears to be\n   * created dynamically later.  Exactly how/when that shows up needs to be\n   * investigated.\n   *\n   * @return {Number} A double of milliseconds with a precision of 0.5us.\n   */\n  get timeOrigin() {\n    return this._perf.timeOrigin;\n  },\n\n  /**\n   * Returns the \"absolute\" version of performance.now(), i.e. one that\n   * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n   * be comparable across both chrome and content.\n   *\n   * @return {Number}\n   */\n  absNow: function absNow() {\n    return this.timeOrigin + this._perf.now();\n  },\n\n  /**\n   * This returns the absolute startTime from the most recent performance.mark()\n   * with the given name.\n   *\n   * @param  {String} name  the name to lookup the start time for\n   *\n   * @return {Number}       the returned start time, as a DOMHighResTimeStamp\n   *\n   * @throws {Error}        \"No Marks with the name ...\" if none are available\n   *\n   * @note Always surround calls to this by try/catch.  Otherwise your code\n   * may fail when the `privacy.resistFingerprinting` pref is true.  When\n   * this pref is set, all attempts to get marks will likely fail, which will\n   * cause this method to throw.\n   *\n   * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n   * for more info.\n   */\n  getMostRecentAbsMarkStartByName(name) {\n    let entries = this.getEntriesByName(name, \"mark\");\n\n    if (!entries.length) {\n      throw new Error(`No marks with the name ${name}`);\n    }\n\n    let mostRecentEntry = entries[entries.length - 1];\n    return this._perf.timeOrigin + mostRecentEntry.startTime;\n  }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n  MIN_CORNER_FAVICON_SIZE,\n  MIN_RICH_FAVICON_SIZE,\n  TOP_SITES_CONTEXT_MENU_OPTIONS,\n  TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onDragEvent = this.onDragEvent.bind(this);\n  }\n\n  /*\n   * Helper to determine whether the drop zone should allow a drop. We only allow\n   * dropping top sites for now.\n   */\n  _allowDrop(e) {\n    return e.dataTransfer.types.includes(\"text/topsite-index\");\n  }\n\n  onDragEvent(event) {\n    switch (event.type) {\n      case \"click\":\n        // Stop any link clicks if we started any dragging\n        if (this.dragged) {\n          event.preventDefault();\n        }\n        break;\n      case \"dragstart\":\n        this.dragged = true;\n        event.dataTransfer.effectAllowed = \"move\";\n        event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n        event.target.blur();\n        this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n        break;\n      case \"dragend\":\n        this.props.onDragEvent(event);\n        break;\n      case \"dragenter\":\n      case \"dragover\":\n      case \"drop\":\n        if (this._allowDrop(event)) {\n          event.preventDefault();\n          this.props.onDragEvent(event, this.props.index);\n        }\n        break;\n      case \"mousedown\":\n        // Reset at the first mouse event of a potential drag\n        this.dragged = false;\n        break;\n    }\n  }\n\n  render() {\n    const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n    const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n    const {tippyTopIcon, faviconSize} = link;\n    const [letterFallback] = title;\n    let imageClassName;\n    let imageStyle;\n    let showSmallFavicon = false;\n    let smallFaviconStyle;\n    let smallFaviconFallback;\n    if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n      smallFaviconFallback = false;\n    } else if (link.customScreenshotURL) {\n      // assume high quality custom screenshot and use rich icon styles and class names\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${link.screenshot})`\n      };\n    } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n      // styles and class names for top sites with rich icons\n      imageClassName = \"top-site-icon rich-icon\";\n      imageStyle = {\n        backgroundColor: link.backgroundColor,\n        backgroundImage: `url(${tippyTopIcon || link.favicon})`\n      };\n    } else {\n      // styles and class names for top sites with screenshot + small icon in top left corner\n      imageClassName = `screenshot${link.screenshot ? \" active\" : \"\"}`;\n      imageStyle = {backgroundImage: link.screenshot ? `url(${link.screenshot})` : \"none\"};\n\n      // only show a favicon in top left if it's greater than 16x16\n      if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n        showSmallFavicon = true;\n        smallFaviconStyle = {backgroundImage:  `url(${link.favicon})`};\n      } else if (link.screenshot) {\n        // Don't show a small favicon if there is no screenshot, because that\n        // would result in two fallback icons\n        showSmallFavicon = true;\n        smallFaviconFallback = true;\n      }\n    }\n    let draggableProps = {};\n    if (isDraggable) {\n      draggableProps = {\n        onClick: this.onDragEvent,\n        onDragEnd: this.onDragEvent,\n        onDragStart: this.onDragEvent,\n        onMouseDown: this.onDragEvent\n      };\n    }\n    return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n      <div className=\"top-site-inner\">\n         <a href={link.url} onClick={onClick}>\n            <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n              <div className={imageClassName} style={imageStyle} />\n              {showSmallFavicon && <div\n                className=\"top-site-icon default-icon\"\n                data-fallback={smallFaviconFallback && letterFallback}\n                style={smallFaviconStyle} />}\n           </div>\n           <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n             {link.isPinned && <div className=\"icon icon-pin-small\" />}\n              <span dir=\"auto\">{title}</span>\n           </div>\n         </a>\n         {children}\n      </div>\n    </li>);\n  }\n}\nTopSiteLink.defaultProps = {\n  title: \"\",\n  link: {},\n  isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {showContextMenu: false};\n    this.onLinkClick = this.onLinkClick.bind(this);\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    const value = {icon_type: this.props.link.iconType};\n    // Filter out \"not_pinned\" type for being the default\n    if (this.props.link.isPinned) {\n      value.card_type = \"pinned\";\n    }\n    return {value};\n  }\n\n  userEvent(event) {\n    this.props.dispatch(ac.UserEvent(Object.assign({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: this.props.index\n    }, this._getTelemetryInfo())));\n  }\n\n  onLinkClick(event) {\n    this.userEvent(\"CLICK\");\n\n    // Specially handle a top site link click for \"typed\" frecency bonus as\n    // specified as a property on the link.\n    event.preventDefault();\n    const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n    this.props.dispatch(ac.OnlyToMain({\n      type: at.OPEN_LINK,\n      data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n    }));\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.props.onActivate(this.props.index);\n    this.setState({showContextMenu: true});\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  render() {\n    const {props} = this;\n    const {link} = props;\n    const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n    const title = link.label || link.hostname;\n    return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n        <div>\n          <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n            <span className=\"sr-only\">\n              <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n            </span>\n          </button>\n          {isContextMenuOpen &&\n            <LinkMenu\n              dispatch={props.dispatch}\n              index={props.index}\n              onUpdate={this.onMenuUpdate}\n              options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n              site={link}\n              siteInfo={this._getTelemetryInfo()}\n              source={TOP_SITES_SOURCE} />\n          }\n        </div>\n    </TopSiteLink>);\n  }\n}\nTopSite.defaultProps = {\n  link: {},\n  onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onEditButtonClick = this.onEditButtonClick.bind(this);\n  }\n\n  onEditButtonClick() {\n    this.props.dispatch(\n      {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n  }\n\n  render() {\n    return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n      <button className=\"context-menu-button edit-button icon\"\n       title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n       onClick={this.onEditButtonClick} />\n    </TopSiteLink>);\n  }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n  static get DEFAULT_STATE() {\n    return {\n      activeIndex: null,\n      draggedIndex: null,\n      draggedSite: null,\n      draggedTitle: null,\n      topSitesPreview: null\n    };\n  }\n\n  constructor(props) {\n    super(props);\n    this.state = _TopSiteList.DEFAULT_STATE;\n    this.onDragEvent = this.onDragEvent.bind(this);\n    this.onActivate = this.onActivate.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (this.state.draggedSite) {\n      const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n      const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n      if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n        prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n        (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n        // We got the new order from the redux store via props. We can clear state now.\n        this.setState(_TopSiteList.DEFAULT_STATE);\n      }\n    }\n  }\n\n  userEvent(event, index) {\n    this.props.dispatch(ac.UserEvent({\n      event,\n      source: TOP_SITES_SOURCE,\n      action_position: index\n    }));\n  }\n\n  onDragEvent(event, index, link, title) {\n    switch (event.type) {\n      case \"dragstart\":\n        this.dropped = false;\n        this.setState({\n          draggedIndex: index,\n          draggedSite: link,\n          draggedTitle: title,\n          activeIndex: null\n        });\n        this.userEvent(\"DRAG\", index);\n        break;\n      case \"dragend\":\n        if (!this.dropped) {\n          // If there was no drop event, reset the state to the default.\n          this.setState(_TopSiteList.DEFAULT_STATE);\n        }\n        break;\n      case \"dragenter\":\n        if (index === this.state.draggedIndex) {\n          this.setState({topSitesPreview: null});\n        } else {\n          this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n        }\n        break;\n      case \"drop\":\n        if (index !== this.state.draggedIndex) {\n          this.dropped = true;\n          this.props.dispatch(ac.AlsoToMain({\n            type: at.TOP_SITES_INSERT,\n            data: {\n              site: {\n                url: this.state.draggedSite.url,\n                label: this.state.draggedTitle,\n                customScreenshotURL: this.state.draggedSite.customScreenshotURL\n              },\n              index,\n              draggedFromIndex: this.state.draggedIndex\n            }\n          }));\n          this.userEvent(\"DROP\", index);\n        }\n        break;\n    }\n  }\n\n  _getTopSites() {\n    // Make a copy of the sites to truncate or extend to desired length\n    let topSites = this.props.TopSites.rows.slice();\n    topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n    return topSites;\n  }\n\n  /**\n   * Make a preview of the topsites that will be the result of dropping the currently\n   * dragged site at the specified index.\n   */\n  _makeTopSitesPreview(index) {\n    const topSites = this._getTopSites();\n    topSites[this.state.draggedIndex] = null;\n    const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n    const unpinned = topSites.filter(site => site && !site.isPinned);\n    const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n    if (!pinnedOnly[index]) {\n      pinnedOnly[index] = siteToInsert;\n    } else {\n      // Find the hole to shift the pinned site(s) towards. We shift towards the\n      // hole left by the site being dragged.\n      let holeIndex = index;\n      const indexStep = index > this.state.draggedIndex ? -1 : 1;\n      while (pinnedOnly[holeIndex]) {\n        holeIndex += indexStep;\n      }\n\n      // Shift towards the hole.\n      const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n      while (holeIndex !== index) {\n        const nextIndex = holeIndex + shiftingStep;\n        pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n        holeIndex = nextIndex;\n      }\n      pinnedOnly[index] = siteToInsert;\n    }\n\n    // Fill in the remaining holes with unpinned sites.\n    const preview = pinnedOnly;\n    for (let i = 0; i < preview.length; i++) {\n      if (!preview[i]) {\n        preview[i] = unpinned.shift() || null;\n      }\n    }\n\n    return preview;\n  }\n\n  onActivate(index) {\n    this.setState({activeIndex: index});\n  }\n\n  render() {\n    const {props} = this;\n    const topSites = this.state.topSitesPreview || this._getTopSites();\n    const topSitesUI = [];\n    const commonProps = {\n      onDragEvent: this.onDragEvent,\n      dispatch: props.dispatch,\n      intl: props.intl\n    };\n    // We assign a key to each placeholder slot. We need it to be independent\n    // of the slot index (i below) so that the keys used stay the same during\n    // drag and drop reordering and the underlying DOM nodes are reused.\n    // This mostly (only?) affects linux so be sure to test on linux before changing.\n    let holeIndex = 0;\n\n    // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n    // .hide-for-narrow to hide in CSS via @media query.\n    const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n    for (let i = 0, l = topSites.length; i < l; i++) {\n      const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n      const slotProps = {\n        key: link ? link.url : holeIndex++,\n        index: i\n      };\n      if (i >= maxNarrowVisibleIndex) {\n        slotProps.className = \"hide-for-narrow\";\n      }\n      topSitesUI.push(!link ? (\n        <TopSitePlaceholder\n          {...slotProps}\n          {...commonProps} />\n      ) : (\n        <TopSite\n          link={link}\n          activeIndex={this.state.activeIndex}\n          onActivate={this.onActivate}\n          {...slotProps}\n          {...commonProps} />\n      ));\n    }\n    return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n      {topSitesUI}\n    </ul>);\n  }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n  store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n  <Base\n    isPrerendered={!!global.gActivityStreamPrerenderedState}\n    locale={global.document.documentElement.lang}\n    strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {initASRouter} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n *               the same interface as a Map, but is optionally backed by\n *               indexedDB for persistent storage.\n *               Call .connect() to open a database connection and restore any\n *               previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n  constructor(dispatch) {\n    super();\n    this._db = null;\n    this._dispatch = dispatch;\n  }\n\n  set(key, value) {\n    super.set(key, value);\n    return this._dbTransaction(db => db.put(value, key));\n  }\n\n  delete(key) {\n    super.delete(key);\n    return this._dbTransaction(db => db.delete(key));\n  }\n\n  clear() {\n    super.clear();\n    this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n    return this._dbTransaction(db => db.clear());\n  }\n\n  get blockList() {\n    return this.get(\"blockList\") || [];\n  }\n\n  /**\n   * blockSnippetById - Blocks a snippet given an id\n   *\n   * @param  {str|int} id   The id of the snippet\n   * @return {Promise}      Resolves when the id has been written to indexedDB,\n   *                        or immediately if the snippetMap is not connected\n   */\n  async blockSnippetById(id) {\n    if (!id) {\n      return;\n    }\n    const {blockList} = this;\n    if (!blockList.includes(id)) {\n      blockList.push(id);\n      this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n      await this.set(\"blockList\", blockList);\n    }\n  }\n\n  disableOnboarding() {\n    this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n  }\n\n  showFirefoxAccounts() {\n    this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n  }\n\n  getTotalBookmarksCount() {\n    return new Promise(resolve => {\n      this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n      global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n        if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n          resolve(action.data);\n          global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n        }\n      });\n    });\n  }\n\n  /**\n   * connect - Attaches an indexedDB back-end to the Map so that any set values\n   *           are also cached in a store. It also restores any existing values\n   *           that are already stored in the indexedDB store.\n   *\n   * @return {type}  description\n   */\n  async connect() {\n    // Open the connection\n    const db = await this._openDB();\n\n    // Restore any existing values\n    await this._restoreFromDb(db);\n\n    // Attach a reference to the db\n    this._db = db;\n  }\n\n  /**\n   * _dbTransaction - Returns a db transaction wrapped with the given modifier\n   *                  function as a Promise. If the db has not been connected,\n   *                  it resolves immediately.\n   *\n   * @param  {func} modifier A function to call with the transaction\n   * @return {obj}           A Promise that resolves when the transaction has\n   *                         completed or errored\n   */\n  _dbTransaction(modifier) {\n    if (!this._db) {\n      return Promise.resolve();\n    }\n    return new Promise((resolve, reject) => {\n      const transaction = modifier(\n        this._db\n          .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n      );\n      transaction.onsuccess = event => resolve();\n\n      /* istanbul ignore next */\n      transaction.onerror = event => reject(transaction.error);\n    });\n  }\n\n  _openDB() {\n    return new Promise((resolve, reject) => {\n      const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n      /* istanbul ignore next */\n      openRequest.onerror = event => {\n        // Try to delete the old database so that we can start this process over\n        // next time.\n        indexedDB.deleteDatabase(DATABASE_NAME);\n        reject(event);\n      };\n\n      openRequest.onupgradeneeded = event => {\n        const db = event.target.result;\n        if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n          db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n        }\n      };\n\n      openRequest.onsuccess = event => {\n        let db = event.target.result;\n\n        /* istanbul ignore next */\n        db.onerror = err => console.error(err); // eslint-disable-line no-console\n        /* istanbul ignore next */\n        db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n        resolve(db);\n      };\n    });\n  }\n\n  _restoreFromDb(db) {\n    return new Promise((resolve, reject) => {\n      let cursorRequest;\n      try {\n        cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n          .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n      } catch (err) {\n        // istanbul ignore next\n        reject(err);\n        // istanbul ignore next\n        return;\n      }\n\n      /* istanbul ignore next */\n      cursorRequest.onerror = event => reject(event);\n\n      cursorRequest.onsuccess = event => {\n        let cursor = event.target.result;\n        // Populate the cache from the persistent storage.\n        if (cursor) {\n          if (cursor.value !== \"blockList\") {\n            this.set(cursor.key, cursor.value);\n          }\n          cursor.continue();\n        } else {\n          // We are done.\n          resolve();\n        }\n      };\n    });\n  }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n *                    remote location, or else default snippets if the remote\n *                    snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n  constructor(dispatch) {\n    // Initialize the Snippets Map and attaches it to a global so that\n    // the snippet payload can interact with it.\n    global.gSnippetsMap = new SnippetsMap(dispatch);\n    this._onAction = this._onAction.bind(this);\n  }\n\n  get snippetsMap() {\n    return global.gSnippetsMap;\n  }\n\n  async _refreshSnippets() {\n    // Check if the cached version of of the snippets in snippetsMap. If it's too\n    // old, blow away the entire snippetsMap.\n    const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n    if (cachedVersion !== this.appData.version) {\n      this.snippetsMap.clear();\n    }\n\n    // Has enough time passed for us to require an update?\n    const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n    const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n    if (needsUpdate && this.appData.snippetsURL) {\n      this.snippetsMap.set(\"snippets-last-update\", Date.now());\n      try {\n        const response = await fetch(this.appData.snippetsURL);\n        if (response.status === 200) {\n          const payload = await response.text();\n\n          this.snippetsMap.set(\"snippets\", payload);\n          this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n        }\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n  }\n\n  _noSnippetFallback() {\n    // TODO\n  }\n\n  _forceOnboardingVisibility(shouldBeVisible) {\n    const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n    if (onboardingEl) {\n      onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n    }\n  }\n\n  _showRemoteSnippets() {\n    const snippetsEl = document.getElementById(this.elementId);\n    const payload = this.snippetsMap.get(\"snippets\");\n\n    if (!snippetsEl) {\n      throw new Error(`No element was found with id '${this.elementId}'.`);\n    }\n\n    // This could happen if fetching failed\n    if (!payload) {\n      throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n    }\n\n    if (typeof payload !== \"string\") {\n      throw new Error(\"Snippet payload was incorrectly formatted\");\n    }\n\n    // Note that injecting snippets can throw if they're invalid XML.\n    // eslint-disable-next-line no-unsanitized/property\n    snippetsEl.innerHTML = payload;\n\n    // Scripts injected by innerHTML are inactive, so we have to relocate them\n    // through DOM manipulation to activate their contents.\n    for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n      const relocatedScript = document.createElement(\"script\");\n      relocatedScript.text = scriptEl.text;\n      scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n    }\n  }\n\n  _onAction(msg) {\n    if (msg.data.type === at.SNIPPET_BLOCKED) {\n      if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n        this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n        document.getElementById(\"snippets-container\").style.display = \"none\";\n      }\n    }\n  }\n\n  /**\n   * init - Fetch the snippet payload and show snippets\n   *\n   * @param  {obj} options\n   * @param  {str} options.appData.snippetsURL  The URL from which we fetch snippets\n   * @param  {int} options.appData.version  The current snippets version\n   * @param  {str} options.elementId  The id of the element in which to inject snippets\n   * @param  {bool} options.connect  Should gSnippetsMap connect to indexedDB?\n   */\n  async init(options) {\n    Object.assign(this, {\n      appData: {},\n      elementId: \"snippets\",\n      connect: true\n    }, options);\n\n    // Add listener so we know when snippets are blocked on other pages\n    if (global.addMessageListener) {\n      global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n\n    // TODO: Requires enabling indexedDB on newtab\n    // Restore the snippets map from indexedDB\n    if (this.connect) {\n      try {\n        await this.snippetsMap.connect();\n      } catch (e) {\n        console.error(e); // eslint-disable-line no-console\n      }\n    }\n\n    // Cache app data values so they can be accessible from gSnippetsMap\n    for (const key of Object.keys(this.appData)) {\n      if (key === \"blockList\") {\n        this.snippetsMap.set(\"blockList\", this.appData[key]);\n      } else {\n        this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n      }\n    }\n\n    // Refresh snippets, if enough time has passed.\n    await this._refreshSnippets();\n\n    // Try showing remote snippets, falling back to defaults if necessary.\n    try {\n      this._showRemoteSnippets();\n    } catch (e) {\n      this._noSnippetFallback(e);\n    }\n\n    window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n    this._forceOnboardingVisibility(true);\n    this.initialized = true;\n  }\n\n  uninit() {\n    window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n    this._forceOnboardingVisibility(false);\n    if (global.removeMessageListener) {\n      global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n    }\n    this.initialized = false;\n  }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n *                         when the store has received the appropriate\n *                         Snippet data.\n *\n * @param  {obj} store   The redux store\n * @return {obj}         Returns the snippets instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n  const snippets = new SnippetsProvider(store.dispatch);\n\n  let initializing = false;\n\n  store.subscribe(async () => {\n    const state = store.getState();\n    // state.Prefs.values[\"feeds.snippets\"]:  Should snippets be shown?\n    // state.Snippets.initialized             Is the snippets data initialized?\n    // snippets.initialized:                  Is SnippetsProvider currently initialised?\n    if (state.Prefs.values[\"feeds.snippets\"] &&\n      // If the message center experiment is enabled, don't show snippets\n      !state.Prefs.values.asrouterExperimentEnabled &&\n      !state.Prefs.values.disableSnippets &&\n      state.Snippets.initialized &&\n      !snippets.initialized &&\n      // Don't call init multiple times\n      !initializing\n    ) {\n      initializing = true;\n      await snippets.init({appData: state.Snippets});\n      initializing = false;\n    } else if (\n      (state.Prefs.values[\"feeds.snippets\"] === false ||\n        state.Prefs.values.disableSnippets === true) &&\n      snippets.initialized\n    ) {\n      snippets.uninit();\n    }\n\n    if (state.Prefs.values.asrouterExperimentEnabled) {\n      initASRouter();\n    }\n  });\n\n  // These values are returned for testing purposes\n  return snippets;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/snippets.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 21\n// module chunks = 0","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionOrAddListener() {\n    if (this.props.document.visibilityState === VISIBLE) {\n      this.props.sendImpression();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (this.props.document.visibilityState === VISIBLE) {\n          this.props.sendImpression();\n          this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.sendOnMount) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n      this.sendImpressionOrAddListener();\n    }\n  }\n\n  render() {\n    return this.props.children;\n  }\n}\n\nImpressionsWrapper.defaultProps = {\n  document: global.document,\n  sendOnMount: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","export function safeURI(url) {\n  if (!url) {\n    return \"\";\n  }\n  const {protocol} = new URL(url);\n  const isAllowed = [\n    \"http:\",\n    \"https:\",\n    \"data:\",\n    \"resource:\",\n    \"chrome:\"\n  ].includes(protocol);\n  if (!isAllowed) {\n    console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n  }\n  return isAllowed ? url : \"\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/template-utils.js","import React from \"react\";\nimport {safeURI} from \"../../template-utils\";\n\nexport const Button = props => (<a href={safeURI(props.url)}\n  onClick={props.onClick}\n  className=\"ASRouterButton\">\n  {props.children}\n</a>);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onBlockClicked = this.onBlockClicked.bind(this);\n  }\n\n  onBlockClicked() {\n    this.props.sendUserActionTelemetry({event: \"BLOCK\"});\n    this.props.onBlock();\n  }\n\n  render() {\n    const {props} = this;\n\n    const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n    return (<div className={containerClassName}>\n      <div className=\"innerWrapper\">\n        {props.children}\n      </div>\n      <button className=\"blockButton\" onClick={this.onBlockClicked} />\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onButtonClick = this.onButtonClick.bind(this);\n  }\n\n  onButtonClick() {\n    this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\"});\n  }\n\n  render() {\n    const {props} = this;\n    return (<SnippetBase {...props} className=\"SimpleSnippet\">\n      <img src={safeURI(props.content.icon) || DEFAULT_ICON_PATH} className=\"icon\" />\n      <div>\n        {props.content.title ? <h3 className=\"title\">{props.content.title}</h3> : null} <p className=\"body\">{props.content.text}</p>\n      </div>\n      {props.content.button_url ? <div><Button onClick={this.onButtonClick} url={props.content.button_url}>{props.content.button_label}</Button></div> : null}\n    </SnippetBase>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\n\nconst PrefsButton = injectIntl(props => (\n  <div className=\"prefs-button\">\n    <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n  </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n  addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n  componentWillMount() {\n    const {App, locale, Theme} = this.props;\n    if (Theme.className) {\n      this.updateTheme(Theme);\n    }\n    this.sendNewTabRehydrated(App);\n    addLocaleDataForReactIntl(locale);\n  }\n\n  componentDidMount() {\n    // Request state AFTER the first render to ensure we don't cause the\n    // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n    // dispatched right after the store is ready.\n    if (this.props.isPrerendered) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n      this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n    }\n  }\n\n  componentWillUnmount() {\n    this.updateTheme({className: \"\"});\n  }\n\n  componentWillUpdate({App, Theme}) {\n    this.updateTheme(Theme);\n    this.sendNewTabRehydrated(App);\n  }\n\n  updateTheme(Theme) {\n    const bodyClassName = [\n      \"activity-stream\",\n      Theme.className\n    ].filter(v => v).join(\" \");\n    global.document.body.className = bodyClassName;\n  }\n\n  // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n  // data has been consumed e.g. for counting the number of tabs that\n  // have rendered that data.\n  sendNewTabRehydrated(App) {\n    if (App && App.initialized && !this.renderNotified) {\n      this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n      this.renderNotified = true;\n    }\n  }\n\n  render() {\n    const {props} = this;\n    const {App, locale, strings} = props;\n    const {initialized} = App;\n\n    if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === \"#asrouter\") {\n      return (<ASRouterAdmin />);\n    }\n\n    if (!props.isPrerendered && !initialized) {\n      return null;\n    }\n\n    return (<IntlProvider locale={locale} messages={strings}>\n        <ErrorBoundary className=\"base-content-fallback\">\n          <BaseContent {...this.props} />\n        </ErrorBoundary>\n      </IntlProvider>);\n  }\n}\n\nexport class BaseContent extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.openPreferences = this.openPreferences.bind(this);\n  }\n\n  openPreferences() {\n    this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n    this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n  }\n\n  render() {\n    const {props} = this;\n    const {App} = props;\n    const {initialized} = App;\n    const prefs = props.Prefs.values;\n\n    const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n    const outerClassName = [\n      \"outer-wrapper\",\n      shouldBeFixedToTop && \"fixed-to-top\"\n    ].filter(v => v).join(\" \");\n\n    return (\n        <div className={outerClassName}>\n          <main>\n            {prefs.showSearch &&\n              <div className=\"non-collapsible-section\">\n                <ErrorBoundary>\n                  <Search />\n                </ErrorBoundary>\n              </div>\n            }\n            <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n              {!prefs.migrationExpired &&\n                <div className=\"non-collapsible-section\">\n                  <ManualMigration />\n                </div>\n                }\n              <Sections />\n              <PrefsButton onClick={this.openPreferences} />\n            </div>\n            <ConfirmDialog />\n          </main>\n        </div>);\n  }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onMessage = this.onMessage.bind(this);\n    this.state = {};\n  }\n\n  onMessage({data: action}) {\n    if (action.type === \"ADMIN_SET_STATE\") {\n      this.setState(action.data);\n    }\n  }\n\n  componentWillMount() {\n    ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n    ASRouterUtils.addListener(this.onMessage);\n  }\n\n  componentWillUnmount() {\n    ASRouterUtils.removeListener(this.onMessage);\n  }\n\n  handleBlock(id) {\n    return () => ASRouterUtils.blockById(id);\n  }\n\n  handleUnblock(id) {\n    return () => ASRouterUtils.unblockById(id);\n  }\n\n  handleOverride(id) {\n    return () => ASRouterUtils.overrideMessage(id);\n  }\n\n  renderMessageItem(msg) {\n    const isCurrent = msg.id === this.state.currentId;\n    const isBlocked = this.state.blockList.includes(msg.id);\n\n    let itemClassName = \"message-item\";\n    if (isCurrent) { itemClassName += \" current\"; }\n    if (isBlocked) { itemClassName += \" blocked\"; }\n\n    return (<tr className={itemClassName} key={msg.id}>\n      <td className=\"message-id\"><span>{msg.id}</span></td>\n      <td>\n        <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg.id) : this.handleBlock(msg.id)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n       {isBlocked ? null : <button className=\"button\" onClick={this.handleOverride(msg.id)}>Show</button>}\n      </td>\n      <td className=\"message-summary\">\n        <pre>{JSON.stringify(msg, null, 2)}</pre>\n      </td>\n    </tr>);\n  }\n\n  renderMessages() {\n    if (!this.state.messages) {\n      return null;\n    }\n    return (<table><tbody>\n      {this.state.messages.map(msg => this.renderMessageItem(msg))}\n    </tbody></table>);\n  }\n\n  renderProviders() {\n    return (<table><tbody>\n      {this.state.providers.map((provider, i) => (<tr className=\"message-item\" key={i}>\n        <td>{provider.id}</td>\n        <td>{provider.type === \"remote\" ? <a target=\"_blank\" href={provider.url}>{provider.url}</a> : \"(local)\"}</td>\n      </tr>))}\n    </tbody></table>);\n  }\n\n  render() {\n    return (<div className=\"asrouter-admin outer-wrapper\">\n      <h1>AS Router Admin</h1>\n      <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n      <h2>Message Providers</h2>\n      {this.state.providers ? this.renderProviders() : null}\n      <h2>Messages</h2>\n      {this.renderMessages()}\n    </div>);\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n *   // Any sort of data needed to be passed around by actions.\n *   payload: site.url,\n *   // Primary button AlsoToMain action.\n *   action: \"DELETE_HISTORY_URL\",\n *   // Primary button USerEvent action.\n *   userEvent: \"DELETE\",\n *   // Array of locale ids to display.\n *   message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n *   // Text for primary button.\n *   confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this._handleCancelBtn = this._handleCancelBtn.bind(this);\n    this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n  }\n\n  _handleCancelBtn() {\n    this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n    this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n  }\n\n  _handleConfirmBtn() {\n    this.props.data.onConfirm.forEach(this.props.dispatch);\n  }\n\n  _renderModalMessage() {\n    const message_body = this.props.data.body_string_id;\n\n    if (!message_body) {\n      return null;\n    }\n\n    return (<span>\n      {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n    </span>);\n  }\n\n  render() {\n    if (!this.props.visible) {\n      return null;\n    }\n\n    return (<div className=\"confirmation-dialog\">\n      <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n      <div className=\"modal\">\n        <section className=\"modal-message\">\n          {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n          {this._renderModalMessage()}\n        </section>\n        <section className=\"actions\">\n          <button onClick={this._handleCancelBtn}>\n            <FormattedMessage id={this.props.data.cancel_button_string_id} />\n          </button>\n          <button className=\"done\" onClick={this._handleConfirmBtn}>\n            <FormattedMessage id={this.props.data.confirm_button_string_id} />\n          </button>\n        </section>\n      </div>\n    </div>);\n  }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1.  User clicks \"No Thanks\"\n * 2.  User completed the data import\n * 3.  After 3 active days\n * 4.  User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onLaunchTour = this.onLaunchTour.bind(this);\n    this.onCancelTour = this.onCancelTour.bind(this);\n  }\n\n  onLaunchTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n  }\n\n  onCancelTour() {\n    this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n    this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n  }\n\n  render() {\n    return (<div className=\"manual-migration-container\">\n        <p>\n          <span className=\"icon icon-import\" />\n          <FormattedMessage id=\"manual_migration_explanation2\" />\n        </p>\n        <div className=\"manual-migration-actions actions\">\n          <button className=\"dismiss\" onClick={this.onCancelTour}>\n            <FormattedMessage id=\"manual_migration_cancel_button\" />\n          </button>\n          <button onClick={this.onLaunchTour}>\n            <FormattedMessage id=\"manual_migration_import_button\" />\n          </button>\n        </div>\n    </div>);\n  }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n  constructor(options) {\n    this.initialPrefs = options.initialPrefs;\n    this.initialSections = options.initialSections;\n    this._setValidation(options.validation);\n  }\n\n  get validation() {\n    return this._validation;\n  }\n\n  set validation(value) {\n    this._setValidation(value);\n  }\n\n  get invalidatingPrefs() {\n    return this._invalidatingPrefs;\n  }\n\n    // This is needed so we can use it in the constructor\n  _setValidation(value = []) {\n    this._validation = value;\n    this._invalidatingPrefs = value.reduce((result, next) => {\n      if (typeof next === \"string\") {\n        result.push(next);\n        return result;\n      } else if (next && next.oneOf) {\n        return result.concat(next.oneOf);\n      } else if (next && next.indexedDB) {\n        return result.concat(next.indexedDB);\n      }\n      throw new Error(\"Your validation configuration is not properly configured\");\n    }, []);\n  }\n\n  arePrefsValid(getPref, indexedDBPrefs) {\n    for (const prefs of this.validation) {\n      // {oneOf: [\"foo\", \"bar\"]}\n      if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n        return false;\n\n        // {indexedDB: [\"foo\", \"bar\"]}\n      } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n        const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n        if (anyModifiedPrefs) {\n          return false;\n        }\n        // \"foo\"\n      } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nthis.PrerenderData = new _PrerenderData({\n  initialPrefs: {\n    \"migrationExpired\": true,\n    \"feeds.topsites\": true,\n    \"showSearch\": true,\n    \"topSitesRows\": 1,\n    \"feeds.section.topstories\": true,\n    \"feeds.section.highlights\": true,\n    \"sectionOrder\": \"topsites,topstories,highlights\",\n    \"collapsed\": false\n  },\n  // Prefs listed as invalidating will prevent the prerendered version\n  // of AS from being used if their value is something other than what is listed\n  // here. This is required because some preferences cause the page layout to be\n  // too different for the prerendered version to be used. Unfortunately, this\n  // will result in users who have modified some of their preferences not being\n  // able to get the benefits of prerendering.\n  validation: [\n    \"feeds.topsites\",\n    \"showSearch\",\n    \"topSitesRows\",\n    \"sectionOrder\",\n    // This means if either of these are set to their default values,\n    // prerendering can be used.\n    {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n    // If any component has the following preference set to `true` it will\n    // invalidate the prerendered version.\n    {indexedDB: [\"collapsed\"]}\n  ],\n  initialSections: [\n    {\n      enabled: true,\n      icon: \"pocket\",\n      id: \"topstories\",\n      order: 1,\n      title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n    },\n    {\n      enabled: true,\n      id: \"highlights\",\n      icon: \"highlights\",\n      order: 2,\n      title: {id: \"header_highlights\"}\n    }\n  ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onClick = this.onClick.bind(this);\n    this.onInputMount = this.onInputMount.bind(this);\n  }\n\n  handleEvent(event) {\n    // Also track search events with our own telemetry\n    if (event.detail.type === \"Search\") {\n      this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n    }\n  }\n\n  onClick(event) {\n    window.gContentSearchController.search(event);\n  }\n\n  componentWillUnmount() {\n    delete window.gContentSearchController;\n  }\n\n  onInputMount(input) {\n    if (input) {\n      // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n      // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n      // can add the appropriate telemetry probes for search. Without the correct\n      // name, certain tests like browser_UsageTelemetry_content.js will fail\n      // (See github ticket #2348 for more details)\n      const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n      // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n      // the search data and acts as context for the search request (See\n      // nsISearchEngine.getSubmission). It is necessary so that search engine\n      // plugins can correctly atribute referrals. (See github ticket #3321 for\n      // more details)\n      const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n      // gContentSearchController needs to exist as a global so that tests for\n      // the existing about:home can find it; and so it allows these tests to pass.\n      // In the future, when activity stream is default about:home, this can be renamed\n      window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n        healthReportKey, searchSource);\n      addEventListener(\"ContentSearchClient\", this);\n    } else {\n      window.gContentSearchController = null;\n      removeEventListener(\"ContentSearchClient\", this);\n    }\n  }\n\n  /*\n   * Do not change the ID on the input field, as legacy newtab code\n   * specifically looks for the id 'newtab-search-text' on input fields\n   * in order to execute searches in various tests\n   */\n  render() {\n    return (<div className=\"search-wrapper\">\n      <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n        <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n      </label>\n      <input\n        id=\"newtab-search-text\"\n        maxLength=\"256\"\n        placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        ref={this.onInputMount}\n        title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n        type=\"search\" />\n      <button\n        id=\"searchSubmit\"\n        className=\"search-button\"\n        onClick={this.onClick}\n        title={this.props.intl.formatMessage({id: \"search_button\"})}>\n        <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n      </button>\n    </div>);\n  }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW = 3;\n\nfunction getFormattedMessage(message) {\n  return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n  _dispatchImpressionStats() {\n    const {props} = this;\n    const maxCards = 3 * props.maxRows;\n    const cards = props.rows.slice(0, maxCards);\n\n    if (this.needsImpressionStats(cards)) {\n      props.dispatch(ac.ImpressionStats({\n        source: props.eventSource,\n        tiles: cards.map(link => ({id: link.guid}))\n      }));\n      this.impressionCardGuids = cards.map(link => link.guid);\n    }\n  }\n\n  // This sends an event when a user sees a set of new content. If content\n  // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n  // only send the event if the page becomes visible again.\n  sendImpressionStatsOrAddListener() {\n    const {props} = this;\n\n    if (!props.shouldSendImpressionStats || !props.dispatch) {\n      return;\n    }\n\n    if (props.document.visibilityState === VISIBLE) {\n      this._dispatchImpressionStats();\n    } else {\n      // We should only ever send the latest impression stats ping, so remove any\n      // older listeners.\n      if (this._onVisibilityChange) {\n        props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n      }\n\n      // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n      this._onVisibilityChange = () => {\n        if (props.document.visibilityState === VISIBLE) {\n          if (!this.props.pref.collapsed) {\n            this._dispatchImpressionStats();\n          }\n          props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n        }\n      };\n      props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  componentDidMount() {\n    if (this.props.rows.length && !this.props.pref.collapsed) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentDidUpdate(prevProps) {\n    const {props} = this;\n    const isCollapsed = props.pref.collapsed;\n    const wasCollapsed = prevProps.pref.collapsed;\n    if (\n      // Don't send impression stats for the empty state\n      props.rows.length &&\n      (\n        // We only want to send impression stats if the content of the cards has changed\n        // and the section is not collapsed...\n        (props.rows !== prevProps.rows && !isCollapsed) ||\n        // or if we are expanding a section that was collapsed.\n        (wasCollapsed && !isCollapsed)\n      )\n    ) {\n      this.sendImpressionStatsOrAddListener();\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._onVisibilityChange) {\n      this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  needsImpressionStats(cards) {\n    if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n      return true;\n    }\n\n    for (let i = 0; i < cards.length; i++) {\n      if (cards[i].guid !== this.impressionCardGuids[i]) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  numberOfPlaceholders(items) {\n    if (items === 0) {\n      return CARDS_PER_ROW;\n    }\n    const remainder = items % CARDS_PER_ROW;\n    if (remainder === 0) {\n      return 0;\n    }\n    return CARDS_PER_ROW - remainder;\n  }\n\n  render() {\n    const {\n      id, eventSource, title, icon, rows,\n      emptyState, dispatch, maxRows,\n      contextMenuOptions, initialized, disclaimer,\n      pref, privacyNoticeURL, isFirst, isLast\n    } = this.props;\n    const maxCards = CARDS_PER_ROW * maxRows;\n\n    // Show topics only for top stories and if it's not initialized yet (so\n    // content doesn't shift when it is loaded) or has loaded with topics\n    const shouldShowTopics = (id === \"topstories\" &&\n      (!this.props.topics || this.props.topics.length > 0));\n\n    const realRows = rows.slice(0, maxCards);\n    const placeholders = this.numberOfPlaceholders(realRows.length);\n\n    // The empty state should only be shown after we have initialized and there is no content.\n    // Otherwise, we should show placeholders.\n    const shouldShowEmptyState = initialized && !rows.length;\n\n    // <Section> <-- React component\n    // <section> <-- HTML5 element\n    return (<ComponentPerfTimer {...this.props}>\n      <CollapsibleSection className=\"section\" icon={icon}\n        title={title}\n        id={id}\n        eventSource={eventSource}\n        disclaimer={disclaimer}\n        collapsed={this.props.pref.collapsed}\n        showPrefName={(pref && pref.feed) || id}\n        privacyNoticeURL={privacyNoticeURL}\n        Prefs={this.props.Prefs}\n        isFirst={isFirst}\n        isLast={isLast}\n        dispatch={this.props.dispatch}>\n\n        {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n          {realRows.map((link, index) => link &&\n            <Card key={index} index={index} dispatch={dispatch} link={link} contextMenuOptions={contextMenuOptions}\n              eventSource={eventSource} shouldSendImpressionStats={this.props.shouldSendImpressionStats} isWebExtension={this.props.isWebExtension} />)}\n          {placeholders > 0 && [...new Array(placeholders)].map((_, i) => <PlaceholderCard key={i} />)}\n        </ul>)}\n        {shouldShowEmptyState &&\n          <div className=\"section-empty-state\">\n            <div className=\"empty-state\">\n              {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n                <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n                <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n              <p className=\"empty-state-message\">\n                {getFormattedMessage(emptyState.message)}\n              </p>\n            </div>\n          </div>}\n        {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nSection.defaultProps = {\n  document: global.document,\n  rows: [],\n  emptyState: {},\n  pref: {},\n  title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n  renderSections() {\n    const sections = [];\n    const enabledSections = this.props.Sections.filter(section => section.enabled);\n    const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n    // Enabled sections doesn't include Top Sites, so we add it if enabled.\n    const expectedCount = enabledSections.length + ~~showTopSites;\n\n    for (const sectionId of sectionOrder.split(\",\")) {\n      const commonProps = {\n        key: sectionId,\n        isFirst: sections.length === 0,\n        isLast: sections.length === expectedCount - 1\n      };\n      if (sectionId === \"topsites\" && showTopSites) {\n        sections.push(<TopSites {...commonProps} />);\n      } else {\n        const section = enabledSections.find(s => s.id === sectionId);\n        if (section) {\n          sections.push(<SectionIntl {...section} {...commonProps} />);\n        }\n      }\n    }\n    return sections;\n  }\n\n  render() {\n    return (\n      <div className=\"sections-list\">\n        {this.renderSections()}\n      </div>\n    );\n  }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n  history: {\n    intlID: \"type_label_visited\",\n    icon: \"historyItem\"\n  },\n  bookmark: {\n    intlID: \"type_label_bookmarked\",\n    icon: \"bookmark-added\"\n  },\n  trending: {\n    intlID: \"type_label_recommended\",\n    icon: \"trending\"\n  },\n  now: {\n    intlID: \"type_label_now\",\n    icon: \"now\"\n  },\n  pocket: {\n    intlID: \"type_label_pocket\",\n    icon: \"pocket\"\n  },\n  download: {\n    intlID: \"type_label_downloaded\",\n    icon: \"download\"\n  }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {\n      activeCard: null,\n      imageLoaded: false,\n      showContextMenu: false\n    };\n    this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n    this.onMenuUpdate = this.onMenuUpdate.bind(this);\n    this.onLinkClick = this.onLinkClick.bind(this);\n  }\n\n  /**\n   * Helper to conditionally load an image and update state when it loads.\n   */\n  async maybeLoadImage() {\n    // No need to load if it's already loaded or no image\n    const {image} = this.props.link;\n    if (!this.state.imageLoaded && image) {\n      // Initialize a promise to share a load across multiple card updates\n      if (!gImageLoading.has(image)) {\n        const loaderPromise = new Promise((resolve, reject) => {\n          const loader = new Image();\n          loader.addEventListener(\"load\", resolve);\n          loader.addEventListener(\"error\", reject);\n          loader.src = image;\n        });\n\n        // Save and remove the promise only while it's pending\n        gImageLoading.set(image, loaderPromise);\n        loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(image)).catch();\n      }\n\n      // Wait for the image whether just started loading or reused promise\n      await gImageLoading.get(image);\n\n      // Only update state if we're still waiting to load the original image\n      if (this.props.link.image === image && !this.state.imageLoaded) {\n        this.setState({imageLoaded: true});\n      }\n    }\n  }\n\n  onMenuButtonClick(event) {\n    event.preventDefault();\n    this.setState({\n      activeCard: this.props.index,\n      showContextMenu: true\n    });\n  }\n\n  /**\n   * Report to telemetry additional information about the item.\n   */\n  _getTelemetryInfo() {\n    // Filter out \"history\" type for being the default\n    if (this.props.link.type !== \"history\") {\n      return {value: {card_type: this.props.link.type}};\n    }\n\n    return null;\n  }\n\n  onLinkClick(event) {\n    event.preventDefault();\n    if (this.props.link.type === \"download\") {\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.SHOW_DOWNLOAD_FILE,\n        data: this.props.link\n      }));\n    } else {\n      const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n      this.props.dispatch(ac.OnlyToMain({\n        type: at.OPEN_LINK,\n        data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n      }));\n    }\n    if (this.props.isWebExtension) {\n      this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n        source: this.props.eventSource,\n        url: this.props.link.url,\n        action_position: this.props.index\n      }));\n    } else {\n      this.props.dispatch(ac.UserEvent(Object.assign({\n        event: \"CLICK\",\n        source: this.props.eventSource,\n        action_position: this.props.index\n      }, this._getTelemetryInfo())));\n\n      if (this.props.shouldSendImpressionStats) {\n        this.props.dispatch(ac.ImpressionStats({\n          source: this.props.eventSource,\n          click: 0,\n          tiles: [{id: this.props.link.guid, pos: this.props.index}]\n        }));\n      }\n    }\n  }\n\n  onMenuUpdate(showContextMenu) {\n    this.setState({showContextMenu});\n  }\n\n  componentDidMount() {\n    this.maybeLoadImage();\n  }\n\n  componentDidUpdate() {\n    this.maybeLoadImage();\n  }\n\n  componentWillReceiveProps(nextProps) {\n    // Clear the image state if changing images\n    if (nextProps.link.image !== this.props.link.image) {\n      this.setState({imageLoaded: false});\n    }\n  }\n\n  render() {\n    const {index, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n    const {props} = this;\n    const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n    // Display \"now\" as \"trending\" until we have new strings #3402\n    const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n    const hasImage = link.image || link.hasImage;\n    const imageStyle = {backgroundImage: link.image ? `url(${link.image})` : \"none\"};\n\n    return (<li className={`card-outer${isContextMenuOpen ? \" active\" : \"\"}${props.placeholder ? \" placeholder\" : \"\"}`}>\n      <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n        <div className=\"card\">\n          {hasImage && <div className=\"card-preview-image-outer\">\n            <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n          </div>}\n          <div className={`card-details${hasImage ? \"\" : \" no-image\"}`}>\n            {link.type === \"download\" && <div className=\"card-download-icon icon icon-download-folder\" />}\n            {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n            {link.hostname && <div className=\"card-host-name\">{link.hostname}</div>}\n            <div className={[\n              \"card-text\",\n              icon ? \"\" : \"no-context\",\n              link.description ? \"\" : \"no-description\",\n              link.hostname ? \"\" : \"no-host-name\",\n              hasImage ? \"\" : \"no-image\"\n            ].join(\" \")}>\n              <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n              <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n            </div>\n            <div className=\"card-context\">\n              {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n              {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n              {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n              {link.context && <div className=\"card-context-label\">{link.context}</div>}\n            </div>\n          </div>\n        </div>\n      </a>\n      {!props.placeholder && <button className=\"context-menu-button icon\"\n        onClick={this.onMenuButtonClick}>\n        <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n      </button>}\n      {isContextMenuOpen &&\n        <LinkMenu\n          dispatch={dispatch}\n          index={index}\n          source={eventSource}\n          onUpdate={this.onMenuUpdate}\n          options={link.contextMenuOptions || contextMenuOptions}\n          site={link}\n          siteInfo={this._getTelemetryInfo()}\n          shouldSendImpressionStats={shouldSendImpressionStats} />\n      }\n   </li>);\n  }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = () => <Card placeholder={true} />;\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\n\nexport class _SectionMenu extends React.PureComponent {\n  getOptions() {\n    const {props} = this;\n\n    const propOptions = Array.from(DEFAULT_SECTION_MENU_OPTIONS);\n    // Prepend custom options and a separator\n    if (props.extraOptions) {\n      propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n    }\n    // Insert privacy notice before the last option (\"ManageSection\")\n    if (props.privacyNoticeURL) {\n      propOptions.splice(-1, 0, \"PrivacyNotice\");\n    }\n\n    const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n      const {action, id, type, userEvent} = option;\n      if (!type && id) {\n        option.label = props.intl.formatMessage({id});\n        option.onClick = () => {\n          props.dispatch(action);\n          if (userEvent) {\n            props.dispatch(ac.UserEvent({\n              event: userEvent,\n              source: props.source\n            }));\n          }\n        };\n      }\n      return option;\n    });\n\n    // This is for accessibility to support making each item tabbable.\n    // We want to know which item is the first and which item\n    // is the last, so we can close the context menu accordingly.\n    options[0].first = true;\n    options[options.length - 1].last = true;\n    return options;\n  }\n\n  render() {\n    return (<ContextMenu\n      onUpdate={this.props.onUpdate}\n      options={this.getOptions()} />);\n  }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n  render() {\n    const {url, name} = this.props;\n    return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n  }\n}\n\nexport class Topics extends React.PureComponent {\n  render() {\n    const {topics, read_more_endpoint} = this.props;\n    return (\n      <div className=\"topic\">\n        <span><FormattedMessage id=\"pocket_read_more\" /></span>\n        <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n        {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n          <FormattedMessage id=\"pocket_read_even_more\" />\n        </a>}\n      </div>\n    );\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n  if (link.customScreenshotURL) {\n    return \"custom_screenshot\";\n  }\n  if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n    return \"tippytop\";\n  }\n  if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n    return \"rich_icon\";\n  }\n  if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n    return \"screenshot_with_icon\";\n  }\n  if (link.screenshot) {\n    return \"screenshot\";\n  }\n  return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n  const countTopSitesTypes = (acc, link) => {\n    acc[topSiteIconType(link)]++;\n    return acc;\n  };\n\n  return topSites.reduce(countTopSitesTypes, {\n    \"custom_screenshot\": 0,\n    \"screenshot_with_icon\": 0,\n    \"screenshot\": 0,\n    \"tippytop\": 0,\n    \"rich_icon\": 0,\n    \"no_image\": 0\n  });\n}\n\nexport class _TopSites extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.onFormClose = this.onFormClose.bind(this);\n  }\n\n  /**\n   * Dispatch session statistics about the quality of TopSites icons and pinned count.\n   */\n  _dispatchTopSitesStats() {\n    const topSites = this._getVisibleTopSites();\n    const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n    const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n    // Dispatch telemetry event with the count of TopSites images types.\n    this.props.dispatch(ac.AlsoToMain({\n      type: at.SAVE_SESSION_PERF_DATA,\n      data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n    }));\n  }\n\n  /**\n   * Return the TopSites that are visible based on prefs and window width.\n   */\n  _getVisibleTopSites() {\n    // We hide 2 sites per row when not in the wide layout.\n    let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n    // $break-point-widest = 1072px (from _variables.scss)\n    if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n      sitesPerRow -= 2;\n    }\n    return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n  }\n\n  componentDidUpdate() {\n    this._dispatchTopSitesStats();\n  }\n\n  componentDidMount() {\n    this._dispatchTopSitesStats();\n  }\n\n  onFormClose() {\n    this.props.dispatch(ac.UserEvent({\n      source: TOP_SITES_SOURCE,\n      event: \"TOP_SITES_EDIT_CLOSE\"\n    }));\n    this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n  }\n\n  render() {\n    const {props} = this;\n    const {editForm} = props.TopSites;\n\n    return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n      <CollapsibleSection\n        className=\"top-sites\"\n        icon=\"topsites\"\n        id=\"topsites\"\n        title={{id: \"header_top_sites\"}}\n        extraMenuOptions={[\"AddTopSite\"]}\n        showPrefName=\"feeds.topsites\"\n        eventSource={TOP_SITES_SOURCE}\n        collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n        isFirst={props.isFirst}\n        isLast={props.isLast}\n        dispatch={props.dispatch}>\n        <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n        <div className=\"edit-topsites-wrapper\">\n          {editForm &&\n            <div className=\"edit-topsites\">\n              <div className=\"modal-overlay\" onClick={this.onFormClose} />\n              <div className=\"modal\">\n                <TopSiteForm\n                  site={props.TopSites.rows[editForm.index]}\n                  onClose={this.onFormClose}\n                  dispatch={this.props.dispatch}\n                  intl={this.props.intl}\n                  {...editForm} />\n              </div>\n            </div>\n          }\n        </div>\n      </CollapsibleSection>\n    </ComponentPerfTimer>);\n  }\n}\n\nexport const TopSites = connect(state => ({\n  TopSites: state.TopSites,\n  Prefs: state.Prefs,\n  TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    this.state = {validationError: this.props.validationError};\n    this.onChange = this.onChange.bind(this);\n    this.onMount = this.onMount.bind(this);\n  }\n\n  componentWillReceiveProps(nextProps) {\n    if (nextProps.shouldFocus && !this.props.shouldFocus) {\n      this.input.focus();\n    }\n    if (nextProps.validationError && !this.props.validationError) {\n      this.setState({validationError: true});\n    }\n    // If the component is in an error state but the value was cleared by the parent\n    if (this.state.validationError && !nextProps.value) {\n      this.setState({validationError: false});\n    }\n  }\n\n  onChange(ev) {\n    if (this.state.validationError) {\n      this.setState({validationError: false});\n    }\n    this.props.onChange(ev);\n  }\n\n  onMount(input) {\n    this.input = input;\n  }\n\n  render() {\n    const showClearButton = this.props.value && this.props.onClear;\n    const {typeUrl} = this.props;\n    const {validationError} = this.state;\n\n    return (<label><FormattedMessage id={this.props.titleId} />\n      <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n        {this.props.loading ?\n          <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n          showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n        <input type=\"text\"\n          value={this.props.value}\n          ref={this.onMount}\n          onChange={this.onChange}\n          placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n          autoFocus={this.props.shouldFocus}\n          disabled={this.props.loading} />\n        {validationError &&\n          <aside className=\"error-tooltip\">\n            <FormattedMessage id={this.props.errorMessageId} />\n          </aside>}\n      </div>\n    </label>);\n  }\n}\n\nTopSiteFormInput.defaultProps = {\n  showClearButton: false,\n  value: \"\",\n  validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n  constructor(props) {\n    super(props);\n    const {site} = props;\n    this.state = {\n      label: site ? (site.label || site.hostname) : \"\",\n      url: site ? site.url : \"\",\n      validationError: false,\n      customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n      showCustomScreenshotForm: site ? site.customScreenshotURL : false\n    };\n    this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n    this.onLabelChange = this.onLabelChange.bind(this);\n    this.onUrlChange = this.onUrlChange.bind(this);\n    this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n    this.onClearUrlClick = this.onClearUrlClick.bind(this);\n    this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n    this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n    this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n    this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n    this.validateUrl = this.validateUrl.bind(this);\n  }\n\n  onLabelChange(event) {\n    this.setState({\"label\": event.target.value});\n  }\n\n  onUrlChange(event) {\n    this.setState({\n      url: event.target.value,\n      validationError: false\n    });\n  }\n\n  onClearUrlClick() {\n    this.setState({\n      url: \"\",\n      validationError: false\n    });\n  }\n\n  onEnableScreenshotUrlForm() {\n    this.setState({showCustomScreenshotForm: true});\n  }\n\n  _updateCustomScreenshotInput(customScreenshotUrl) {\n    this.setState({\n      customScreenshotUrl,\n      validationError: false\n    });\n    this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n  }\n\n  onCustomScreenshotUrlChange(event) {\n    this._updateCustomScreenshotInput(event.target.value);\n  }\n\n  onClearScreenshotInput() {\n    this._updateCustomScreenshotInput(\"\");\n  }\n\n  onCancelButtonClick(ev) {\n    ev.preventDefault();\n    this.props.onClose();\n  }\n\n  onDoneButtonClick(ev) {\n    ev.preventDefault();\n\n    if (this.validateForm()) {\n      const site = {url: this.cleanUrl(this.state.url)};\n      const {index} = this.props;\n      if (this.state.label !== \"\") {\n        site.label = this.state.label;\n      }\n\n      if (this.state.customScreenshotUrl) {\n        site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n      } else if (this.props.site && this.props.site.customScreenshotURL) {\n        // Used to flag that previously cached screenshot should be removed\n        site.customScreenshotURL = null;\n      }\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.TOP_SITES_PIN,\n        data: {site, index}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"TOP_SITES_EDIT\",\n        action_position: index\n      }));\n\n      this.props.onClose();\n    }\n  }\n\n  onPreviewButtonClick(event) {\n    event.preventDefault();\n    if (this.validateForm()) {\n      this.props.dispatch(ac.AlsoToMain({\n        type: at.PREVIEW_REQUEST,\n        data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n      }));\n      this.props.dispatch(ac.UserEvent({\n        source: TOP_SITES_SOURCE,\n        event: \"PREVIEW_REQUEST\"\n      }));\n    }\n  }\n\n  cleanUrl(url) {\n    // If we are missing a protocol, prepend http://\n    if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n      return `http://${url}`;\n    }\n    return url;\n  }\n\n  _tryParseUrl(url) {\n    try {\n      return new URL(url);\n    } catch (e) {\n      return null;\n    }\n  }\n\n  validateUrl(url) {\n    const validProtocols = [\"http:\", \"https:\"];\n    const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n    return urlObj && validProtocols.includes(urlObj.protocol);\n  }\n\n  validateCustomScreenshotUrl() {\n    const {customScreenshotUrl} = this.state;\n    return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n  }\n\n  validateForm() {\n    const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n    if (!validate) {\n      this.setState({validationError: true});\n    }\n\n    return validate;\n  }\n\n  _renderCustomScreenshotInput() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n    // Set focus on error if the url field is valid or when the input is first rendered and is empty\n    const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n    const isLoading = this.props.previewResponse === null &&\n      customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n    if (!this.state.showCustomScreenshotForm) {\n      return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n        <FormattedMessage id=\"topsites_form_use_image_link\" />\n      </a>);\n    }\n    return (<div className=\"custom-image-input-container\">\n      <TopSiteFormInput\n        errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n        loading={isLoading}\n        onChange={this.onCustomScreenshotUrlChange}\n        onClear={this.onClearScreenshotInput}\n        shouldFocus={shouldFocus}\n        typeUrl={true}\n        value={customScreenshotUrl}\n        validationError={validationError}\n        titleId=\"topsites_form_image_url_label\"\n        placeholderId=\"topsites_form_url_placeholder\"\n        intl={this.props.intl} />\n    </div>);\n  }\n\n  render() {\n    const {customScreenshotUrl} = this.state;\n    const requestFailed = this.props.previewResponse === \"\";\n    // For UI purposes, editing without an existing link is \"add\"\n    const showAsAdd = !this.props.site;\n    const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n    const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n    // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n    // or the request failed\n    const previewMode = changed && !this.props.previewResponse;\n    const previewLink = Object.assign({}, this.props.site);\n    if (this.props.previewResponse) {\n      previewLink.screenshot = this.props.previewResponse;\n      previewLink.customScreenshotURL = this.props.previewUrl;\n    }\n    return (\n      <form className=\"topsite-form\">\n        <div className=\"form-input-container\">\n          <h3 className=\"section-title\">\n            <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n          </h3>\n          <div className=\"fields-and-preview\">\n            <div className=\"form-wrapper\">\n              <TopSiteFormInput onChange={this.onLabelChange}\n                value={this.state.label}\n                titleId=\"topsites_form_title_label\"\n                placeholderId=\"topsites_form_title_placeholder\"\n                intl={this.props.intl} />\n              <TopSiteFormInput onChange={this.onUrlChange}\n                shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n                value={this.state.url}\n                onClear={this.onClearUrlClick}\n                validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n                titleId=\"topsites_form_url_label\"\n                typeUrl={true}\n                placeholderId=\"topsites_form_url_placeholder\"\n                errorMessageId=\"topsites_form_url_validation\"\n                intl={this.props.intl} />\n              {this._renderCustomScreenshotInput()}\n            </div>\n            <TopSiteLink link={previewLink}\n              defaultStyle={requestFailed}\n              title={this.state.label} />\n          </div>\n        </div>\n        <section className=\"actions\">\n          <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n            <FormattedMessage id=\"topsites_form_cancel_button\" />\n          </button>\n          {previewMode ?\n            <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n              <FormattedMessage id=\"topsites_form_preview_button\" />\n            </button> :\n            <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n              <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n            </button>}\n        </section>\n      </form>\n    );\n  }\n}\n\nTopSiteForm.defaultProps = {\n  site: null,\n  index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/components/TopSites/TopSiteForm.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n  constructor(store, options = {}) {\n    this._store = store;\n    // Overrides for testing\n    this.document = options.document || global.document;\n    this._perfService = options.perfService || perfSvc;\n    this._onVisibilityChange = this._onVisibilityChange.bind(this);\n  }\n\n  /**\n   * sendEventOrAddListener - Notify immediately if the page is already visible,\n   *                    or else set up a listener for when visibility changes.\n   *                    This is needed for accurate session tracking for telemetry,\n   *                    because tabs are pre-loaded.\n   */\n  sendEventOrAddListener() {\n    if (this.document.visibilityState === VISIBLE) {\n      // If the document is already visible, to the user, send a notification\n      // immediately that a session has started.\n      this._sendEvent();\n    } else {\n      // If the document is not visible, listen for when it does become visible.\n      this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n\n  /**\n   * _sendEvent - Sends a message to the main process to indicate the current\n   *              tab is now visible to the user, includes the\n   *              visibility_event_rcvd_ts time in ms from the UNIX epoch.\n   */\n  _sendEvent() {\n    this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n    try {\n      let visibility_event_rcvd_ts = this._perfService\n        .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n      this._store.dispatch(ac.AlsoToMain({\n        type: at.SAVE_SESSION_PERF_DATA,\n        data: {visibility_event_rcvd_ts}\n      }));\n    } catch (ex) {\n      // If this failed, it's likely because the `privacy.resistFingerprinting`\n      // pref is true.  We should at least not blow up.\n    }\n  }\n\n  /**\n   * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n   *                      and removes the event listener. This should only be called once per tab.\n   */\n  _onVisibilityChange() {\n    if (this.document.visibilityState === VISIBLE) {\n      this._sendEvent();\n      this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n    }\n  }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./system-addon/content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
--- a/browser/extensions/activity-stream/install.rdf.in
+++ b/browser/extensions/activity-stream/install.rdf.in
@@ -3,17 +3,17 @@
 #filter substitution
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
     <em:id>activity-stream@mozilla.org</em:id>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:unpack>false</em:unpack>
-    <em:version>2018.05.02.1355-ff98ea91</em:version>
+    <em:version>2018.05.04.1204-6a362de7</em:version>
     <em:name>Activity Stream</em:name>
     <em:description>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.</em:description>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
 
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>@MOZ_APP_VERSION@</em:minVersion>
--- a/browser/extensions/activity-stream/lib/ASRouter.jsm
+++ b/browser/extensions/activity-stream/lib/ASRouter.jsm
@@ -1,48 +1,108 @@
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+Cu.importGlobalProperties(["fetch"]);
+
 const INCOMING_MESSAGE_NAME = "ASRouter:child-to-parent";
 const OUTGOING_MESSAGE_NAME = "ASRouter:parent-to-child";
+const ONE_HOUR_IN_MS = 60 * 60 * 1000;
+// This is a temporary endpoint until we have something for snippets
+const SNIPPETS_ENDPOINT = "https://activity-stream-icons.services.mozilla.com/v1/messages.json.br";
 
-const FAKE_MESSAGES = [
+const LOCAL_TEST_MESSAGES = [
   {
-    id: "SUNRISE",
-    template: "simple_snippet",
-    content: {
-      icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiI+CiAgPG1ldGFkYXRhPjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIvPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz48L21ldGFkYXRhPgo8aW1hZ2UgaWQ9IkxheWVyXzAiIGRhdGEtbmFtZT0iTGF5ZXIgMCIgeD0iMSIgeT0iMSIgd2lkdGg9IjQwIiBoZWlnaHQ9IjQwIiB4bGluazpocmVmPSJkYXRhOmltZy9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDZ0FBQUFvQ0FZQUFBQ00vcmh0QUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk5BQUI2SmdBQWdJUUFBUG9BQUFDQTZBQUFkVEFBQU9wZ0FBQTZtQUFBRjNDY3VsRThBQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQXNTQUFBTEVnSFMzWDc4QUFBQUIzUkpUVVVINGdRS0R3RWZraW90QkFBQUJvNUpSRUZVV01POW1VOXNITlVad0g5djVzM3NuL0Y2dlhac0o0N3Q0SVJhRUhCRFM5UlNJQWdKeEtIcW9ZamN5cUczU2xVdnZYSklSQTRjMjNOdlBSQ3ByVUxoVUhFQ2laSlFOWWlxc2FLUU5zZ1N3U1MyeVI5N0U2OTNkMmJlZXh5KzhYclhKcmJYc2Zra1M1NTViNzczZTkvZk43UEsvZTA1ZGlnKzhEVHdGREFKN0FmSzJWZ1ZtQWV1QVplQS93Qm1KNHZvSGNMOUJQZzU4QUx3QkREMGdIbmZBRmVBajRIM2dVKzdYVWgxYWNGZkFiOEJUclR1T0VCdDhrVG4rSG5nVDhEWjdTN29iWFBlczVueXQxdHdTa0Zpb042RVJnTE9yWUVvQmFtQmVnek5HS3lUZS9MczI1bXVaM2NMOEJUd0NmQjh4OTFtQXIwRk9QNG9qQTNJZFRPVnNWb0R0QTlQanNQa1FZRTN0djNwNXpPZHA3WmFmS3NZUEFlOHR1R3VkYkxvNUVFNE5BZ2ovYkN2RjY1K0xYQUhCMlJzb0FkUWNtLzJOa1E1Y2ZtYXZBbjhFRGk1RThBUGdKZFFHVkJxd1ZQZ2VlTFNrUW9NbE9ET2ZYSGY2RDZJOG5CdlJRQ1ZndW9LNUhNd1BnanppNkpES2JDWk5iVlBab0FQZ0plN2NmRzdMYmpVaXNKaUNJRVBTU0pQSFJxU3hSeGl6Vm9UZXZJd05paXgyVWhrUEk2aHZ5UldYbW1LOWx3QW9aWTRGWGtwVzNOYkZqd0YvTExsU29ESHhtQzREeHF4TE9KNzBCZkpkU3N4RUxERXJGMkRiQ0ExOE9nQnNYZ3VoSnlHUU1QL2I4RE51d0lyYTU0Q3pyVERyQzh6VHdIL2JWMGxLWlFLOE5OSjBGb0MzZmRrMVViQ3RzVTVjV2NZaURlTWhXSU9adVpnK2tzb2hPMnpmNFFVOSs5MDhaODdycFFIY1NwV00xYUFHM0YzY0NDdU5sWktVak1SaThZcHhNbHErWGtnUXp2Z3E4Q3hqcW1lZ3RoSStmQTJxOFk3RVNlNjNZYUJZeG5MQnNBMzFuYWN1YVVScnlYRlhvaTEyUm9iMm5TTFpUVkpwb0RqQXFmRURkYkJVQm5HOWtHcEtDN1pUVWtNVE95WFpMbDVGNVlia3QyK0FzZnhqT215QmdMYUMyV1NRcmtvV2JldkYzeGZkbW5kNWoyM1cwbU5aTy9qbzFJbloyL0Q5Vy9BdU5Wd09nbjh6OHRJWCt6WTJaSDlNREc4MW12ZExzT3RlaW8xVWo5RERWUGpZcEJtS3dGZkJLWTg0Qm5hazBNQmQrOUxvLzgrWkRWSnFpdmladDBLK0dQQU14bzR3dHBCVTJyVmw3ZGdvQmYyVjZTUHFsMHluMUpTUjMwbC95c2w3dlE5dVBJVkxOYWtZNG1VZ1NNYUdPNVE0bWUxNytyWDBsdHpRWHRMNmg2b0VFZ2llRWpiWElsWldZNXBHa3RxTFRZTUtDNHNVcHE5QmVXOHJPK3l1ZFlONnc3cmdjUmJUc1Bpc3JoNmZMQTdRT2NrcGtwNWlGT3V6MWU1TWwvbDR0d1NzMHQxNXBjYnpOZWExQk5EMDFnTWlyS3pqT1kwQi9JQmgvT2FuL1dFUEYzS1V3Nzg4c1plckpSMGlvbGhPYUhFMjRSYmJXZDlSVmh1OE42L1ovanI1emM1LzlVZDV1NDNzTmttZGVDVDF6NitVbmhLUW41UkthN0doblNwSVhNOHhWUVVNQnBxTktocUs4YWN3eVVwOVNqRVB6eE1Ea1JEUHBkbHNRS2NsQ0pqQldvVnJyY0lIdno5NGd4L3VQQUZuMXkvRFVBbHlqSFNrOTh5alBzQWd1eHdCSHhSVDVtdUpWVzlqRjI0WVMzdjI1VFBuV0hPR21wR282ZXYwbU9oRW1yNkFrMS9HSEMwSjJLOFdPRHhuaUpSTVM4V1N3MFVBeFlXcXZ6dUg1YzROejBMZ2M5b0pjSlhhd2VpYllkdDlsZlJIaFZZMEw5SWFqTnoyT3FzYzJVUGlKUkNOMk5jclU3cUhMRjF4TTdpSzBXZ0ZBWGY1M0F4ejJRcDRrUi9tVmZHaHJoMmJaN1gvM0tSRy9mcUhCanNJZlE5ckhOZHc2MlRLakNqUnM1Ty9iaUErbU1CWHRoS253T3NjOXhMRGJYVUVEdkxaS25JMHAwR2k3Y2JETVFlY1MwRkQ3emdvUnY0eDhEdmRRVjFHZmpJeVR2dWx1YjNsYUlTYUNxQlJnRkx6WlN3UDhmRWdTTHBTb3ErbTlDODFjVGNTMUUrcUoyRGZnUmM5b0FFZVRucVdoelFvMzFDQzJuZG9MUkgvbUNCMHRFUzBROGl2THlQYVJpYzJWR3JQQWNrcTl1N0RIejJVQTRCbkhIWWhrR2h5SThVS0UzMVVoZ3ZBZzdic04ybytpeGo2ampwdmZXd2dDMVE2ekFyQnVVcG9vbUkwaE5sZEYrQXFXL2JtaTJXZHNCM2dlbmRna1NCU3gybWJ0QWxUZWxvTDRWSGlqanJzRTI3R2VRMGJXOTQ2eVA0MTdzRzJDYTJZY0U0aW85RWxJNzI0dVU5YlAyQkhhcURZVDNnSmVEMHJoTXFjYnV0RzhKS1NPK1RaWFIvaUtrYjZBek4wN1M5MFFINFE2OE5yMWYzVCtUMTg3RzlzS1pMSEY3T0l6ZVl3MWxMc3BTZ2xFTDU2ajNndCt2blA2aEl2UXA4dUJlQUtMQk5pek9PNkVpSjZIQ0VVdXBEek5xYjNIWUFRYjZWdkxOWGtDNlZaQ2tjS3I0VDlJY3YyL2k3eTlCV1pmNGtleEdUR1NUT25YYkduZHlNWWp0OTZBendISEJoRi9FdVpEclB0TTVYRHdFSThDL2s2K2pyeU5mUm5jcjVUTWVKVE9lVzB1MUg5TFBaMy9mMkVYMm5YL2svUlg1YTJQT2ZJYjRGR2NxUFIwMkd5OU1BQUFBQVNVVk9SSzVDWUlJPSIvPgo8L3N2Zz4K",
-      text: "Profitez du temps qui passe et de la nature qui nous entoure. Si vous le pouvez, observez le lever du soleil le matin et prenez un grand bol d'air frais."
-    }
-  },
-  {
-    id: "ONBOARDING_1",
+    id: "LOCAL_TEST_THEMES",
     template: "simple_snippet",
     content: {
-      title: "Find it faster",
-      text: "Access all of your favorite search engines with a click. Search the whole Web or just one website from the search box.",
-      button_label: "Learn More",
-      button_url: "https://mozilla.org"
-    }
-  },
-  {
-    id: "ONBOARDING_2",
-    template: "simple_snippet",
-    content: {
-      title: "Make Firefox your go-to-browser",
-      text: "It doesn't take much to get the most from Firefox. Just set Firefox as your default browser and put control, customization, and protection on autopilot."
-    }
-  },
-  {
-    id: "ONBOARDING_3",
-    template: "simple_snippet",
-    content: {
-      title: "Did you know?",
-      text: "All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood."
+      text: "Your browser is ready for a makeover. Don't worry, you've got tons of options.",
+      button_label: "Check them out here",
+      button_url: "https://addons.mozilla.org/en-US/firefox/themes"
     }
   }
 ];
 
+const MessageLoaderUtils = {
+  /**
+   * _localLoader - Loads messages for a local provider (i.e. one that lives in mozilla central)
+   *
+   * @param {obj} provider An AS router provider
+   * @param {Array} provider.messages An array of messages
+   * @returns {Array} the array of messages
+   */
+  _localLoader(provider) {
+    return provider.messages;
+  },
+
+  /**
+   * _remoteLoader - Loads messages for a remote provider
+   *
+   * @param {obj} provider An AS router provider
+   * @param {string} provider.url An endpoint that returns an array of messages as JSON
+   * @returns {Promise} resolves with an array of messages, or an empty array if none could be fetched
+   */
+  async _remoteLoader(provider) {
+    let remoteMessages = [];
+    if (provider.url) {
+      try {
+        remoteMessages = (await (await fetch(provider.url)).json())
+          .messages
+          .map(msg => (Object.assign({}, msg, {provider_url: provider.url})));
+      } catch (e) {
+        Cu.reportError(e);
+      }
+    }
+    return remoteMessages;
+  },
+
+  /**
+   * _getMessageLoader - return the right loading function given the provider's type
+   *
+   * @param {obj} provider An AS Router provider
+   * @returns {func} A loading function
+   */
+  _getMessageLoader(provider) {
+    switch (provider.type) {
+      case "remote":
+        return this._remoteLoader;
+      case "local":
+      default:
+        return this._localLoader;
+    }
+  },
+
+  /**
+   * shouldProviderUpdate - Given the current time, should a provider update its messages?
+   *
+   * @param {any} provider An AS Router provider
+   * @param {int} provider.updateCycleInMs The number of milliseconds we should wait between updates
+   * @param {Date} provider.lastUpdated If the provider has been updated, the time the last update occurred
+   * @param {Date} currentTime The time we should check against. (defaults to Date.now())
+   * @returns {bool} Should an update happen?
+   */
+  shouldProviderUpdate(provider, currentTime = Date.now()) {
+    return (!(provider.lastUpdated >= 0) || currentTime - provider.lastUpdated > provider.updateCycleInMs);
+  },
+
+  /**
+   * loadMessagesForProvider - Load messages for a provider, given the provider's type.
+   *
+   * @param {obj} provider An AS Router provider
+   * @param {string} provider.type An AS Router provider type (defaults to "local")
+   * @returns {obj} Returns an object with .messages (an array of messages) and .lastUpdated (the time the messages were updated)
+   */
+  async loadMessagesForProvider(provider) {
+    const messages = (await this._getMessageLoader(provider)(provider))
+        .map(msg => Object.assign({}, msg, {provider: provider.id}));
+    const lastUpdated = Date.now();
+    return {messages, lastUpdated};
+  }
+};
+
+this.MessageLoaderUtils = MessageLoaderUtils;
+
 /**
  * getRandomItemFromArray
  *
  * @param {Array} arr An array of items
  * @returns one of the items in the array
  */
 function getRandomItemFromArray(arr) {
   const index = Math.floor(Math.random() * arr.length);
@@ -57,121 +117,197 @@ function getRandomItemFromArray(arr) {
  * Note: This is written as a constructor rather than just a plain object
  * so that it can be more easily unit tested.
  */
 class _ASRouter {
   constructor(initialState = {}) {
     this.initialized = false;
     this.messageChannel = null;
     this._storage = null;
-    this._state = Object.assign({
-      currentId: null,
-      blockList: [],
-      messages: {}
-    }, initialState);
+    this._resetInitialization();
+    this._state = Object.assign(
+      {
+        currentId: null,
+        providers: [],
+        blockList: [],
+        messages: []
+      },
+      initialState
+    );
     this.onMessage = this.onMessage.bind(this);
   }
 
   get state() {
     return this._state;
   }
 
   set state(value) {
     throw new Error("Do not modify this.state directy. Instead, call this.setState(newState)");
   }
 
   /**
+   * _resetInitialization - adds the following to the instance:
+   *  .initialized {bool}            Has AS Router been initialized?
+   *  .waitForInitialized {Promise}  A promise that resolves when initializion is complete
+   *  ._finishInitializing {func}    A function that, when called, resolves the .waitForInitialized
+   *                                 promise and sets .initialized to true.
+   * @memberof _ASRouter
+   */
+  _resetInitialization() {
+    this.initialized = false;
+    this.waitForInitialized = new Promise(resolve => {
+      this._finishInitializing = () => {
+        this.initialized = true;
+        resolve();
+      };
+    });
+  }
+
+  /**
+   * loadMessagesFromAllProviders - Loads messages from all providers if they require updates.
+   *                                Checks the .lastUpdated field on each provider to see if updates are needed
+   * @memberof _ASRouter
+   */
+  async loadMessagesFromAllProviders() {
+    const needsUpdate = this.state.providers.filter(provider => MessageLoaderUtils.shouldProviderUpdate(provider));
+    // Don't do extra work if we don't need any updates
+    if (needsUpdate.length) {
+      let newState = {messages: [], providers: []};
+      for (const provider of this.state.providers) {
+        if (needsUpdate.includes(provider)) {
+          const {messages, lastUpdated} = await MessageLoaderUtils.loadMessagesForProvider(provider);
+          newState.providers.push((Object.assign({}, provider, {lastUpdated})));
+          newState.messages = [...newState.messages, ...messages];
+        } else {
+          // Skip updating this provider's messages if no update is required
+          let messages = this.state.messages.filter(msg => msg.provider === provider.id);
+          newState.providers.push(provider);
+          newState.messages = [...newState.messages, ...messages];
+        }
+      }
+      await this.setState(newState);
+    }
+  }
+
+  /**
    * init - Initializes the MessageRouter.
    * It is ready when it has been connected to a RemotePageManager instance.
    *
    * @param {RemotePageManager} channel a RemotePageManager instance
+   * @param {obj} storage an AS storage instance
    * @memberof _ASRouter
    */
   async init(channel, storage) {
     this.messageChannel = channel;
     this.messageChannel.addMessageListener(INCOMING_MESSAGE_NAME, this.onMessage);
-    this.initialized = true;
+    await this.loadMessagesFromAllProviders();
     this._storage = storage;
 
     const blockList = await this._storage.get("blockList") || [];
-    this.setState({blockList});
+    await this.setState({blockList});
+    // sets .initialized to true and resolves .waitForInitialized promise
+    this._finishInitializing();
   }
 
   uninit() {
     this.messageChannel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
     this.messageChannel.removeMessageListener(INCOMING_MESSAGE_NAME, this.onMessage);
     this.messageChannel = null;
-    this.initialized = false;
+    this._resetInitialization();
   }
 
   setState(callbackOrObj) {
     const newState = (typeof callbackOrObj === "function") ? callbackOrObj(this.state) : callbackOrObj;
     this._state = Object.assign({}, this.state, newState);
     return new Promise(resolve => {
       this._onStateChanged(this.state);
       resolve();
     });
   }
 
+  getMessageById(id) {
+    return this.state.messages.find(message => message.id === id);
+  }
+
   _onStateChanged(state) {
     this.messageChannel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: state});
   }
 
   async sendNextMessage(target, id) {
     let message;
+
     await this.setState(state => {
       message = getRandomItemFromArray(state.messages.filter(item => item.id !== state.currentId && !state.blockList.includes(item.id)));
       return {currentId: message ? message.id : null};
     });
     if (message) {
       target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "SET_MESSAGE", data: message});
     } else {
       target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
     }
   }
 
+  async setMessageById(id) {
+    await this.setState({currentId: id});
+    const newMessage = this.getMessageById(id);
+    if (newMessage) {
+      this.messageChannel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "SET_MESSAGE", data: newMessage});
+    }
+  }
+
   async clearMessage(target, id) {
     if (this.state.currentId === id) {
       await this.setState({currentId: null});
     }
     target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
   }
 
   async onMessage({data: action, target}) {
     switch (action.type) {
       case "CONNECT_UI_REQUEST":
       case "GET_NEXT_MESSAGE":
+        // Wait for our initial message loading to be done before responding to any UI requests
+        await this.waitForInitialized;
+        // Check if any updates are needed first
+        await this.loadMessagesFromAllProviders();
         await this.sendNextMessage(target);
         break;
       case "BLOCK_MESSAGE_BY_ID":
-        this.setState(state => {
+        await this.setState(state => {
           const blockList = [...state.blockList];
           blockList.push(action.data.id);
           this._storage.set("blockList", blockList);
 
           return {blockList};
         });
         await this.clearMessage(target, action.data.id);
         break;
       case "UNBLOCK_MESSAGE_BY_ID":
-        this.setState(state => {
+        await this.setState(state => {
           const blockList = [...state.blockList];
           blockList.splice(blockList.indexOf(action.data.id), 1);
           this._storage.set("blockList", blockList);
-
           return {blockList};
         });
         break;
+      case "OVERRIDE_MESSAGE":
+        await this.setMessageById(action.data.id);
+        break;
       case "ADMIN_CONNECT_STATE":
         target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: this.state});
         break;
     }
   }
 }
 this._ASRouter = _ASRouter;
 
 /**
  * ASRouter - singleton instance of _ASRouter that controls all messages
  * in the new tab page.
  */
-this.ASRouter = new _ASRouter({messages: FAKE_MESSAGES});
+this.ASRouter = new _ASRouter({
+  providers: [
+    {id: "onboarding", type: "local", messages: LOCAL_TEST_MESSAGES},
+    {id: "snippets", type: "remote", url: SNIPPETS_ENDPOINT, updateCycleInMs: ONE_HOUR_IN_MS * 4}
+  ]
+});
 
-const EXPORTED_SYMBOLS = ["_ASRouter", "ASRouter"];
+const EXPORTED_SYMBOLS = ["_ASRouter", "ASRouter", "MessageLoaderUtils"];
--- a/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm
+++ b/browser/extensions/activity-stream/lib/TopStoriesFeed.jsm
@@ -436,18 +436,19 @@ this.TopStoriesFeed = class TopStoriesFe
     return prefVal ? JSON.parse(prefVal) : {};
   }
 
   writeImpressionsPref(pref, impressions) {
     this._prefs.set(pref, JSON.stringify(impressions));
   }
 
   removeSpocs() {
-    // Uninit+re-init so that spocs are removed from all open and preloaded tabs when
-    // they are disabled.
+    // Quick hack so that SPOCS are removed from all open and preloaded tabs when
+    // they are disabled. The longer term fix should probably be to remove them
+    // in the Reducer.
     this.uninit();
     this.init();
   }
 
   onAction(action) {
     switch (action.type) {
       case at.INIT:
         this.init();
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Yeny kakube</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Yeny kakube" title="Yeny kakube"/><button id="searchSubmit" class="search-button" title="Yeny"><span class="sr-only"><span>Yeny</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Kakube maloyo</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Yub kakube man"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Lami tam obedo Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Lok macuk gi lamal:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Wiye madito</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Yub potbuk me dirica matidi mamegi manyen"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Yeny",
   "search_header": "Yeny me {search_engine_name}",
   "search_web_placeholder": "Yeny kakube",
   "section_disclaimer_topstories": "Lok ma mit loyo i kakube, ki yero malube ki ngo ma ikwano. Ki ii Pocket, kombedi dong but Mozilla.",
   "section_disclaimer_topstories_linktext": "Nong ngec kit ma tyo kwede.",
   "section_disclaimer_topstories_buttontext": "Eyo, aniang",
   "prefs_home_header": "Jami me Acakki Firefox",
   "prefs_home_description": "Yer jami ma imito ii kio me Acakki Firefox.",
-  "prefs_restore_defaults_button": "Dwok makwongo",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Yeny me kakube",
   "prefs_topsites_description": "Kakube ma ilimo loyo",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Nong ngec mapol",
   "prefs_highlights_description": "Yer me kakube ma igwoko nyo ilimo",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Ngec manyen ki bot Mozilla ki Firefox",
   "settings_pane_button_label": "Yub potbuk me dirica matidi mamegi manyen",
-  "settings_pane_header": "Ter me dirica matidi manyen",
-  "settings_pane_body2": "Yer ngo ma i neno i potbuk man.",
-  "settings_pane_search_header": "Yeny",
-  "settings_pane_search_body": "Yeny Kakube ki i dirica ni matidi manyen.",
   "settings_pane_topsites_header": "Kakube ma gi loyo",
-  "settings_pane_topsites_body": "Nong kakube ma ilimo loyo.",
-  "settings_pane_topsites_options_showmore": "Nyut rek ariyo",
   "settings_pane_highlights_header": "Wiye madito",
-  "settings_pane_highlights_body2": "Nong yoo ni cen i jami mamit ma ilimo gi cokcokki onyo iketo alamabuk.",
   "settings_pane_highlights_options_bookmarks": "Alamabuk",
-  "settings_pane_highlights_options_visited": "Kakube ma kilimo",
   "settings_pane_snippets_header": "Kwena macek",
-  "settings_pane_snippets_body": "Kwan ngec manyen macego dok mamit ki bot Mozilla ikom Firefox, kwo me intanet, ki meme mabino atata.",
-  "settings_pane_done_button": "Otum",
-  "settings_pane_topstories_options_sponsored": "Nyut lok ma ki cwako",
   "edit_topsites_button_text": "Yubi",
   "edit_topsites_edit_button": "Yub kakube man",
   "topsites_form_add_header": "Kakube maloyo manyen",
   "topsites_form_edit_header": "Yub Kakube maloyo",
   "topsites_form_title_label": "Wiye madit",
   "topsites_form_title_placeholder": "Ket wiye",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,26 +69,38 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Nen",
   "topsites_form_add_button": "Medi",
   "topsites_form_save_button": "Gwoki",
   "topsites_form_cancel_button": "Kwer",
   "topsites_form_url_validation": "URL ma tye atir mite",
   "topsites_form_image_validation": "Cano cal pe olare. Tem URL mukene.",
   "pocket_read_more": "Lok macuk gi lamal:",
   "pocket_read_even_more": "Nen Lok mapol",
-  "pocket_description": "Nong jami me rwom ma lamal ma itwero keng woko, ki kony ma aa ki bot Pocket, dong tye but Mozilla.",
   "highlights_empty_state": "Cak yeny, ka wa binyuto coc akwana mabeco, video, ki potbuk mukene ma ilimo cokcokki onyo ma kiketo alamabuk kany.",
   "topstories_empty_state": "Ityeko weng. Rot doki lacen pi lok madito mapol ki bot {provider}. Pe itwero kuro? Yer lok macuke lamal me nongo lok mabeco mapol ki i but kakube.",
   "manual_migration_explanation2": "Tem Firefox ki alamabuk, gin mukato ki mung me donyo ki ii layeny mukene.",
   "manual_migration_cancel_button": "Pe Apwoyo",
   "manual_migration_import_button": "Kel kombedi",
   "error_fallback_default_info": "Aii, gin mo otime marac i cano jami man.",
   "error_fallback_default_refresh_suggestion": "Nwo cano potbuk me temo odoco.",
   "section_menu_action_remove_section": "Kwany bute",
   "section_menu_action_collapse_section": "Kan bute",
   "section_menu_action_expand_section": "Yar bute",
   "section_menu_action_manage_section": "Lo bute",
   "section_menu_action_add_topsite": "Med Kakube maloyo",
   "section_menu_action_move_up": "Kob Malo",
   "section_menu_action_move_down": "Kob Piny",
   "section_menu_action_privacy_notice": "Ngec me mung",
-  "prefs_topstories_description": "Jami me rwom ma lamal ma itwero keng"
+  "prefs_restore_defaults_button": "Dwok makwongo",
+  "prefs_topstories_description": "Jami me rwom ma lamal ma itwero keng",
+  "settings_pane_header": "Ter me dirica matidi manyen",
+  "settings_pane_body2": "Yer ngo ma i neno i potbuk man.",
+  "settings_pane_search_header": "Yeny",
+  "settings_pane_search_body": "Yeny Kakube ki i dirica ni matidi manyen.",
+  "settings_pane_topsites_body": "Nong kakube ma ilimo loyo.",
+  "settings_pane_topsites_options_showmore": "Nyut rek ariyo",
+  "settings_pane_highlights_body2": "Nong yoo ni cen i jami mamit ma ilimo gi cokcokki onyo iketo alamabuk.",
+  "settings_pane_highlights_options_visited": "Kakube ma kilimo",
+  "settings_pane_snippets_body": "Kwan ngec manyen macego dok mamit ki bot Mozilla ikom Firefox, kwo me intanet, ki meme mabino atata.",
+  "settings_pane_done_button": "Otum",
+  "settings_pane_topstories_options_sponsored": "Nyut lok ma ki cwako",
+  "pocket_description": "Nong jami me rwom ma lamal ma itwero keng woko, ki kony ma aa ki bot Pocket, dong tye but Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Mirar en o Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Mirar en o Web" title="Mirar en o Web"/><button id="searchSubmit" class="search-button" title="Mirar"><span class="sr-only"><span>Mirar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Mas freqüents</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ubrir lo menú contextual d&#x27;a sección</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este puesto"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendau per Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ubrir lo menú contextual d&#x27;a sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populars:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacaus</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ubrir lo menú contextual d&#x27;a sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personaliza la tuya pachina de Nueva Pestanya"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Mirar",
   "search_header": "Mirar con {search_engine_name}",
   "search_web_placeholder": "Mirar en o Web",
   "section_disclaimer_topstories": "Los articlos mas interesants d'o web, triaus en función d'o que gosas leyer. Gracias a lo Pocket, que agora ya fa parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Aprende cómo funciona",
   "section_disclaimer_topstories_buttontext": "Entendiu",
   "prefs_home_header": "Conteniu d'inicio de Firefox",
   "prefs_home_description": "Tría qué contenisu quiers veyer en a tuya pachina d'inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar valors per defecto",
   "prefs_section_rows_option": "{num} ringlera;{num} ringleras",
   "prefs_search_header": "Busqueda web",
   "prefs_topsites_description": "Los puestos que mas vesitas",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Saber-ne mas",
   "prefs_highlights_description": "Una tría d'os puestos que has alzau u vesitau",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Actualizacions de Mozilla y Firefox",
   "settings_pane_button_label": "Personaliza la tuya pachina de Nueva Pestanya",
-  "settings_pane_header": "Preferencias de Nueva Pestanya",
-  "settings_pane_body2": "Tría lo que veyes en esta pachina.",
-  "settings_pane_search_header": "Mirar",
-  "settings_pane_search_body": "Mirar la Web dende la tuya nueva pestanya.",
   "settings_pane_topsites_header": "Puestos mas vesitaus",
-  "settings_pane_topsites_body": "Accede a los puestos web que mas vesitas.",
-  "settings_pane_topsites_options_showmore": "Amostrar dos ringleras",
   "settings_pane_highlights_header": "Destacaus",
-  "settings_pane_highlights_body2": "Torna a trobar lo mas interesant que has vesitau en zagueras, u que has marcau con marcapchinas.",
   "settings_pane_highlights_options_bookmarks": "Marcapachinas",
-  "settings_pane_highlights_options_visited": "Puestos vesitaus",
   "settings_pane_snippets_header": "Retallos",
-  "settings_pane_snippets_body": "leye noticias curtas de Mozilla sobre lo Firefox, la cultura d'internet y, de cabo ta quan, bell meme.",
-  "settings_pane_done_button": "Feito",
-  "settings_pane_topstories_options_sponsored": "Amostrar articlos patrocinaus",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este puesto",
   "topsites_form_add_header": "Nuevo puesto popular",
   "topsites_form_edit_header": "Editar lo puesto popular",
   "topsites_form_title_label": "Titol",
   "topsites_form_title_placeholder": "Escribir un titol",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL d'imachen personalizada",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Previsualizar",
   "topsites_form_add_button": "Anyadir",
   "topsites_form_save_button": "Alzar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "Fa falta una URL valida",
   "topsites_form_image_validation": "Ha fallau la carga d'a imachen. Preba con una URL diferent.",
   "pocket_read_more": "Temas populars:",
   "pocket_read_even_more": "Amostrar mas articlos",
-  "pocket_description": "Descubre gracias a Pocket, que dende agora fa parte de Mozilla, contenius d'alta calidat que d'atra manera te puetz perder.",
   "highlights_empty_state": "Empecipia a navegar, y t'iremos amostrando aquí grans articlos, videos y atras pachinas que has vesitau u marcau en zagueras.",
   "topstories_empty_state": "Ya ye tot per agora. Torna mas ta debant pa veyer mas articlos populars de {provider}. No i puetz aguardar? Tría un tema popular pa descubrir los articlos mas interesants de tot lo web.",
   "manual_migration_explanation2": "Preba lo Firefox con as adrezas d'interés, l'historial y las claus de belatro navegador.",
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar-lo agora",
   "error_fallback_default_info": "Oi, ha fallau bella cosa en a carga d'este conteniu.",
   "error_fallback_default_refresh_suggestion": "Refrescar la pachina pa tornar-lo a intentar.",
   "section_menu_action_remove_section": "Borrar la sección",
   "section_menu_action_collapse_section": "Plegar la sección",
   "section_menu_action_expand_section": "Desplegar la sección",
   "section_menu_action_manage_section": "Chestionar la sección",
   "section_menu_action_add_topsite": "Anyadir un puesto popular",
   "section_menu_action_move_up": "Puyar",
   "section_menu_action_move_down": "Baixar",
   "section_menu_action_privacy_notice": "Nota sobre privacidat",
+  "prefs_restore_defaults_button": "Restaurar valors per defecto",
   "prefs_topstories_description": "Contenius d'alta calidat que no te quiers perder",
-  "prefs_topstories_show_sponsored_label": "Articlos patrocinaus per {provider}"
+  "prefs_topstories_show_sponsored_label": "Articlos patrocinaus per {provider}",
+  "settings_pane_header": "Preferencias de Nueva Pestanya",
+  "settings_pane_body2": "Tría lo que veyes en esta pachina.",
+  "settings_pane_search_header": "Mirar",
+  "settings_pane_search_body": "Mirar la Web dende la tuya nueva pestanya.",
+  "settings_pane_topsites_body": "Accede a los puestos web que mas vesitas.",
+  "settings_pane_topsites_options_showmore": "Amostrar dos ringleras",
+  "settings_pane_highlights_body2": "Torna a trobar lo mas interesant que has vesitau en zagueras, u que has marcau con marcapchinas.",
+  "settings_pane_highlights_options_visited": "Puestos vesitaus",
+  "settings_pane_snippets_body": "leye noticias curtas de Mozilla sobre lo Firefox, la cultura d'internet y, de cabo ta quan, bell meme.",
+  "settings_pane_done_button": "Feito",
+  "settings_pane_topstories_options_sponsored": "Amostrar articlos patrocinaus",
+  "pocket_description": "Descubre gracias a Pocket, que dende agora fa parte de Mozilla, contenius d'alta calidat que d'atra manera te puetz perder."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/an/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/an/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ابحث في الوِب</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ابحث في الوِب" title="ابحث في الوِب"/><button id="searchSubmit" class="search-button" title="ابحث"><span class="sr-only"><span>ابحث</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>المواقع الأكثر زيارة</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="حرّر هذا الموقع"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>ينصح به Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>المواضيع الشائعة:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>أهم الأحداث</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="خصص صفحة اللسان الجديد"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ابحث",
   "search_header": "بحث {search_engine_name}",
   "search_web_placeholder": "ابحث في الوِب",
   "section_disclaimer_topstories": "أكثر القصص تشويقًا على الإنترنت، مختارة بعناية بناء على ما تقرأه. من بوكِت، و الذي أصبح جزءًا من موزيلا.",
   "section_disclaimer_topstories_linktext": "اطلع على طريقة عملها.",
   "section_disclaimer_topstories_buttontext": "حسنًا، فهمت",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "خصص صفحة اللسان الجديد",
-  "settings_pane_header": "تفضيلات صفحة اللسان الجديد",
-  "settings_pane_body2": "اختر ماتريد ان تراه في هذه الصفحه.",
-  "settings_pane_search_header": "بحث",
-  "settings_pane_search_body": "ابحث في الوِب من اللسان الجديد.",
   "settings_pane_topsites_header": "المواقع الأكثر زيارة",
-  "settings_pane_topsites_body": "وصول للمواقع التي تزورها أكثر.",
-  "settings_pane_topsites_options_showmore": "اعرض صفّين",
   "settings_pane_highlights_header": "أهم الأحداث",
-  "settings_pane_highlights_body2": "ارجع للأشياء المهمة التي زرتها مؤخرًا أو العلامات.",
   "settings_pane_highlights_options_bookmarks": "العلامات",
-  "settings_pane_highlights_options_visited": "المواقع المُزارة",
   "settings_pane_snippets_header": "المقتطفات",
-  "settings_pane_snippets_body": "اقرأ تحديثات قصيرة و جميلة من موزيلا عن فَيَرفُكس، و ثقافة الإنترنت، و أحيانا صرعة عشوائية من الإنترنت.",
-  "settings_pane_done_button": "تمّ",
-  "settings_pane_topstories_options_sponsored": "اعرض الأخبار الممولة",
   "edit_topsites_button_text": "حرِّر",
   "edit_topsites_edit_button": "حرّر هذا الموقع",
   "topsites_form_add_header": "موقع شائع جديد",
   "topsites_form_edit_header": "حرّر الموقع الشائع",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "أدخل عنوانًا",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "أضِفْ",
   "topsites_form_save_button": "احفظ",
   "topsites_form_cancel_button": "ألغِ",
   "topsites_form_url_validation": "مطلوب مسار صالح",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "المواضيع الشائعة:",
   "pocket_read_even_more": "اعرض المزيد من الأخبار",
-  "pocket_description": "اكتشف محتوى عالي الجودة لربما قد فاتك دون هذا، بماسعدة من Pocket الذي أصبح الآن جزءا من موزيلا.",
   "highlights_empty_state": "ابدأ التصفح وسنعرض أمامك بعض المقالات والفيديوهات والمواقع الأخرى التي زرتها حديثا أو أضفتها إلى العلامات هنا.",
   "topstories_empty_state": "لا جديد. تحقق لاحقًا للحصول على مزيد من أهم الأخبار من {provider}. لا يمكنك الانتظار؟ اختر موضوعًا شائعًا للعثور على المزيد من القصص الرائعة من جميع أنحاء الوِب.",
   "manual_migration_explanation2": "جرب فَيَرفُكس مع العلامات، و التأريخ، و كلمات السر من متصفح آخر.",
   "manual_migration_cancel_button": "لا شكرًا",
   "manual_migration_import_button": "استورد الآن",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,23 +108,35 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "تنويه الخصوصية",
   "welcome_title": "مرحبًا في لسان جديد",
   "welcome_body": "سيستخدم فيرفكس هذا المكان لعرض أكثر العلامات، و المقالات، و الفيديوهات والصفحات التي زرتها مؤخرا، ليمكنك العودة إليها بسهولة.",
   "welcome_label": "تعرّف على أهم الأخبار",
   "time_label_less_than_minute": "< دقيقة",
   "time_label_minute": "{number} دقيقة",
   "time_label_hour": "{number} ساعة",
   "time_label_day": "{number} يوم",
+  "settings_pane_header": "تفضيلات صفحة اللسان الجديد",
+  "settings_pane_body2": "اختر ماتريد ان تراه في هذه الصفحه.",
+  "settings_pane_search_header": "بحث",
+  "settings_pane_search_body": "ابحث في الوِب من اللسان الجديد.",
+  "settings_pane_topsites_body": "وصول للمواقع التي تزورها أكثر.",
+  "settings_pane_topsites_options_showmore": "اعرض صفّين",
   "settings_pane_bookmarks_header": "أحدث العلامات",
   "settings_pane_bookmarks_body": "علاماتك المعلّمة حديثًا في مكان واحد.",
   "settings_pane_visit_again_header": "زرها مجددا",
   "settings_pane_visit_again_body": "سيعرض لك فَيَرفُكس بعضًا من تأريخ تصفحك الذي قد تود تذكّره لاحقًا.",
+  "settings_pane_highlights_body2": "ارجع للأشياء المهمة التي زرتها مؤخرًا أو العلامات.",
+  "settings_pane_highlights_options_visited": "المواقع المُزارة",
+  "settings_pane_snippets_body": "اقرأ تحديثات قصيرة و جميلة من موزيلا عن فَيَرفُكس، و ثقافة الإنترنت، و أحيانا صرعة عشوائية من الإنترنت.",
+  "settings_pane_done_button": "تمّ",
+  "settings_pane_topstories_options_sponsored": "اعرض الأخبار الممولة",
   "edit_topsites_button_label": "خصص قسم المواقع الأكثر زيارة",
   "edit_topsites_showmore_button": "اعرض المزيد",
   "edit_topsites_showless_button": "اعرض أقل",
   "edit_topsites_done_button": "تمّ",
   "edit_topsites_pin_button": "ثبّت هذا الموقع",
   "edit_topsites_unpin_button": "افصل هذا الموقع",
   "edit_topsites_dismiss_button": "احذف هذا الموقع",
   "edit_topsites_add_button": "أضِفْ",
   "edit_topsites_add_button_tooltip": "أضف موقعًا شائعًا",
-  "pocket_feedback_header": "أفضل ما في الوِب، انتقاها أكثر من ٢٥ مليون شخص."
+  "pocket_feedback_header": "أفضل ما في الوِب، انتقاها أكثر من ٢٥ مليون شخص.",
+  "pocket_description": "اكتشف محتوى عالي الجودة لربما قد فاتك دون هذا، بماسعدة من Pocket الذي أصبح الآن جزءا من موزيلا."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Guetar na web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Guetar na web" title="Guetar na web"/><button id="searchSubmit" class="search-button" title="Guetar"><span class="sr-only"><span>Guetar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Más visitaos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar esti sitiu"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendáu por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temes populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacaos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar páxina Llingüeta nueva"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Guetar",
   "search_header": "Gueta en {search_engine_name}",
   "search_web_placeholder": "Guetar na web",
   "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": "Deprendi cómo furrula.",
   "section_disclaimer_topstories_buttontext": "Val, píllolo",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Personalizar páxina Llingüeta nueva",
-  "settings_pane_header": "Preferencies de Llingüeta nueva",
-  "settings_pane_body2": "Escueyi qué quies ver nesta páxina",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Restolar na Web dende la nueva llingüeta",
   "settings_pane_topsites_header": "Más visitaos",
-  "settings_pane_topsites_body": "Acceder a les webs que más visites.",
-  "settings_pane_topsites_options_showmore": "Amosar dos fileres",
   "settings_pane_highlights_header": "Destacaos",
-  "settings_pane_highlights_body2": "Atopa otra vegada les coses interesantes que yá visitaras o marcaras.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitaos",
   "settings_pane_snippets_header": "Retayos",
-  "settings_pane_snippets_body": "Llei anovamientos curtios de Mozilla tocante a Firefox, la cultura d'internet y un meme de xemes en cuandu.",
-  "settings_pane_done_button": "Fecho",
-  "settings_pane_topstories_options_sponsored": "Amosar hestories patrocinaes",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar esti sitiu",
   "topsites_form_add_header": "Nuevu Sitiu más visitáu",
   "topsites_form_edit_header": "Editar Sitiu más visitáu",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Introducir títulu",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Amestar",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Encaboxar",
   "topsites_form_url_validation": "Ríquese una URL válida",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Temes populares:",
   "pocket_read_even_more": "Ver más histories",
-  "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.",
   "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": "Prueba Firefox colos marcadores, hestorial y contraseñes d'otru restolador.",
   "manual_migration_cancel_button": "Non, gracies",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,20 +108,30 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Nota de privacidá",
   "welcome_title": "Afáyate na llingüeta nueva",
   "welcome_body": "Firefox usará esti espaciu p'amosate los marcadores, artículos, vídeos y páxines más relevantes que visitares apocayá, asina pues volver a ellos de mou cenciellu.",
   "welcome_label": "Identificando los tos destacaos",
   "time_label_less_than_minute": "<1m",
   "time_label_minute": "{number}m",
   "time_label_hour": "{number}h",
   "time_label_day": "{number}d",
+  "settings_pane_header": "Preferencies de Llingüeta nueva",
+  "settings_pane_body2": "Escueyi qué quies ver nesta páxina",
+  "settings_pane_search_body": "Restolar na Web dende la nueva llingüeta",
+  "settings_pane_topsites_body": "Acceder a les webs que más visites.",
+  "settings_pane_topsites_options_showmore": "Amosar dos fileres",
   "settings_pane_bookmarks_header": "Marcadores recientes",
   "settings_pane_bookmarks_body": "Los marcadores recién fechos, nun llugar accesible.",
   "settings_pane_visit_again_header": "Visitar de nueves",
   "settings_pane_visit_again_body": "Firefox va amosate partes del to historial de navegación que a lo meyor prestaríate remembrar o volver visitar.",
+  "settings_pane_highlights_body2": "Atopa otra vegada les coses interesantes que yá visitaras o marcaras.",
+  "settings_pane_highlights_options_visited": "Sitios visitaos",
+  "settings_pane_snippets_body": "Llei anovamientos curtios de Mozilla tocante a Firefox, la cultura d'internet y un meme de xemes en cuandu.",
+  "settings_pane_done_button": "Fecho",
+  "settings_pane_topstories_options_sponsored": "Amosar hestories patrocinaes",
   "edit_topsites_button_label": "Personalizar la seición de Más visitaos",
   "edit_topsites_showmore_button": "Amosar más",
   "edit_topsites_showless_button": "Amosar menos",
   "edit_topsites_done_button": "Fecho",
   "edit_topsites_pin_button": "Fixar esti sitiu",
   "edit_topsites_unpin_button": "Desfixar esti sitiu",
   "edit_topsites_dismiss_button": "Escartar esti sitiu",
   "edit_topsites_add_button": "Amestar"
--- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>İnternetdə Axtar</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="İnternetdə Axtar" title="İnternetdə Axtar"/><button id="searchSubmit" class="search-button" title="Axtar"><span class="sr-only"><span>Axtar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Qabaqcıl Saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekst menyusu bölməsini aç</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytı düzəlt"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket məsləhət görür</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekst menyusu bölməsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Məşhur Mövzular:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Seçilmişlər</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekst menyusu bölməsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Yeni Vərəq səhifənizi özəlləşdirin"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Axtar",
   "search_header": "{search_engine_name} Axtarış",
   "search_web_placeholder": "İnternetdə Axtar",
   "section_disclaimer_topstories": "Nələr oxuduğunuza əsasən seçilmiş internetin ən maraqlı hekayələri. Pocket-dən, artıq Mozillanın bir hissəsi.",
   "section_disclaimer_topstories_linktext": "Necə işlədiyini öyrənin.",
   "section_disclaimer_topstories_buttontext": "Tamam, başa düşdüm",
   "prefs_home_header": "Firefox Ev Məzmunu",
   "prefs_home_description": "Firefox Evdə hansı məzmunları görmək istədiyinizi seçin.",
-  "prefs_restore_defaults_button": "İlkin seçənəkləri bərpa et",
   "prefs_section_rows_option": "{num} sətir;{num} sətir",
   "prefs_search_header": "Web Axtarış",
   "prefs_topsites_description": "Ən çox ziyarət etdiyiniz saytlar",
   "prefs_topstories_description2": "İnternetin ən yaxşı məzmunları, sizə görə fərdiləşdirilmiş",
   "prefs_topstories_options_sponsored_label": "Sponsorlaşdırılmış Hekayələr",
   "prefs_topstories_sponsored_learn_more": "Ətraflı öyrən",
   "prefs_highlights_description": "Saxladığınız və ya ziyarət etdiyiniz saytlardan seçmələr",
   "prefs_highlights_options_visited_label": "Baxılmış Səhifələr",
   "prefs_highlights_options_download_label": "Son Endirmələr",
   "prefs_highlights_options_pocket_label": "Pocket-ə Saxlanılan Səhifələr",
   "prefs_snippets_description": "Mozilla və Firefoxdan yeniliklər",
   "settings_pane_button_label": "Yeni Vərəq səhifənizi özəlləşdirin",
-  "settings_pane_header": "Yeni Vərəq Nizamlamaları",
-  "settings_pane_body2": "Bu səhifədə nə görəcəyinizi seçin.",
-  "settings_pane_search_header": "Axtar",
-  "settings_pane_search_body": "Yeni vərəqinizdən Web-də axtarış edin.",
   "settings_pane_topsites_header": "Qabaqcıl Saytlar",
-  "settings_pane_topsites_body": "Ən çox ziyarət etdiyiniz saytları görün.",
-  "settings_pane_topsites_options_showmore": "İki sətir göstər",
   "settings_pane_highlights_header": "Seçilmişlər",
-  "settings_pane_highlights_body2": "Son ziyarət etdiyiniz və ya əlfəcinlədiyiniz maraqlı məzmunlara rahat qayıdın.",
   "settings_pane_highlights_options_bookmarks": "Əlfəcinlər",
-  "settings_pane_highlights_options_visited": "Baxılmış Saytlar",
   "settings_pane_snippets_header": "Hissələr",
-  "settings_pane_snippets_body": "Mozilladan Firefox, internet mədəniyyəti və digər yeniliklər haqqında qısa bildirişlər oxuyun.",
-  "settings_pane_done_button": "Oldu",
-  "settings_pane_topstories_options_sponsored": "Sponsor Hekayələrini Göstər",
   "edit_topsites_button_text": "Redaktə et",
   "edit_topsites_edit_button": "Bu saytı düzəlt",
   "topsites_form_add_header": "Yeni Qabaqcıl Saytlar",
   "topsites_form_edit_header": "Qabaqcıl Saytları Dəyişdir",
   "topsites_form_title_label": "Başlıq",
   "topsites_form_title_placeholder": "Başlıq daxil et",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Fərdi şəkil ünvanı",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ön baxış",
   "topsites_form_add_button": "Əlavə et",
   "topsites_form_save_button": "Saxla",
   "topsites_form_cancel_button": "Ləğv et",
   "topsites_form_url_validation": "Doğru ünvan tələb olunur",
   "topsites_form_image_validation": "Şəkli yükləmək mümkün olmadı. Fərqli ünvan yoxlayın.",
   "pocket_read_more": "Məşhur Mövzular:",
   "pocket_read_even_more": "Daha çox hekayə gör",
-  "pocket_description": "Mozilla ailəsinin yeni üzvü olan Pocket ilə yüksək keyfiyyətli məzmunları kəşf edin.",
   "highlights_empty_state": "İnternetdə gəzməyə başlayın, burada ziyarət edəcəyiniz və ya əlfəcinləyəcəyiniz məqalə, video və digər səhifələri göstərəcəyik.",
   "topstories_empty_state": "Hamısını oxudunuz. Yeni {provider} məqalələri üçün daha sonra təkrar yoxlayın. Gözləyə bilmirsiz? Məşhur mövzu seçərək internetdən daha çox gözəl məqalələr tapın.",
   "manual_migration_explanation2": "Firefox səyyahını digər səyyahlardan olan əlfəcin, tarixçə və parollar ilə yoxlayın.",
   "manual_migration_cancel_button": "Xeyr, Təşəkkürlər",
   "manual_migration_import_button": "İndi idxal et",
   "error_fallback_default_info": "Uups, bu məzmunu yüklərkən nəsə səhv getdi.",
   "error_fallback_default_refresh_suggestion": "Təkrar yoxlamaq üçün səhifəni yeniləyin.",
   "section_menu_action_remove_section": "Bölməni Sil",
   "section_menu_action_collapse_section": "Bölməni Daralt",
   "section_menu_action_expand_section": "Bölməni Genişlət",
   "section_menu_action_manage_section": "Bölməni İdarə et",
   "section_menu_action_add_topsite": "Qabaqcıl Sayt əlavə et",
   "section_menu_action_move_up": "Yuxarı daşı",
   "section_menu_action_move_down": "Aşağı daşı",
-  "section_menu_action_privacy_notice": "Məxfilik Bildirişi"
+  "section_menu_action_privacy_notice": "Məxfilik Bildirişi",
+  "prefs_restore_defaults_button": "İlkin seçənəkləri bərpa et",
+  "settings_pane_header": "Yeni Vərəq Nizamlamaları",
+  "settings_pane_body2": "Bu səhifədə nə görəcəyinizi seçin.",
+  "settings_pane_search_header": "Axtar",
+  "settings_pane_search_body": "Yeni vərəqinizdən Web-də axtarış edin.",
+  "settings_pane_topsites_body": "Ən çox ziyarət etdiyiniz saytları görün.",
+  "settings_pane_topsites_options_showmore": "İki sətir göstər",
+  "settings_pane_highlights_body2": "Son ziyarət etdiyiniz və ya əlfəcinlədiyiniz maraqlı məzmunlara rahat qayıdın.",
+  "settings_pane_highlights_options_visited": "Baxılmış Saytlar",
+  "settings_pane_snippets_body": "Mozilladan Firefox, internet mədəniyyəti və digər yeniliklər haqqında qısa bildirişlər oxuyun.",
+  "settings_pane_done_button": "Oldu",
+  "settings_pane_topstories_options_sponsored": "Sponsor Hekayələrini Göstər",
+  "pocket_description": "Mozilla ailəsinin yeni üzvü olan Pocket ilə yüksək keyfiyyətli məzmunları kəşf edin."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Пошук у Інтэрнэце</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Пошук у Інтэрнэце" title="Пошук у Інтэрнэце"/><button id="searchSubmit" class="search-button" title="Шукаць"><span class="sr-only"><span>Шукаць</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Папулярныя сайты</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Адкрыць кантэкстнае меню раздзела</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Рэдагаваць гэты сайт"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Рэкамендавана Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Адкрыць кантэкстнае меню раздзела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Папулярныя тэмы:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Выбранае</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Адкрыць кантэкстнае меню раздзела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Наладзіць вашу старонку новай карткі"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Шукаць",
   "search_header": "Шукаць у {search_engine_name}",
   "search_web_placeholder": "Пошук у Інтэрнэце",
   "section_disclaimer_topstories": "Самыя цікавыя гісторыі з інтэрнэту на аснове таго, што вы чытаеце. Падборка ад Pocket, які цяпер частка Mozilla.",
   "section_disclaimer_topstories_linktext": "Даведайцеся, як гэта працуе.",
   "section_disclaimer_topstories_buttontext": "Зразумела",
   "prefs_home_header": "Хатні экран Firefox",
   "prefs_home_description": "Выберыце пажаданае змесціва для хатняга экрана Firefox.",
-  "prefs_restore_defaults_button": "Аднавіць прадвызначэнні",
   "prefs_section_rows_option": "{num} радок;{num} радкі;{num} радкоў",
   "prefs_search_header": "Пошук у сеціве",
   "prefs_topsites_description": "Сайты, якія вы наведваеце найчасцей",
   "prefs_topstories_description2": "Выдатнае змесціва з усяго інтэрнэту, выбранае спецыяльна для вас",
   "prefs_topstories_options_sponsored_label": "Артыкулы ад спонсараў",
   "prefs_topstories_sponsored_learn_more": "Даведацца больш",
   "prefs_highlights_description": "Выбраныя сайты, якія вы захавалі ці наведалі",
   "prefs_highlights_options_visited_label": "Наведаныя старонкі",
   "prefs_highlights_options_download_label": "Нядаўнія сцягванні",
   "prefs_highlights_options_pocket_label": "Захаваныя ў Pocket старонкі",
   "prefs_snippets_description": "Абнаўленні ад Mozilla і Firefox",
   "settings_pane_button_label": "Наладзіць вашу старонку новай карткі",
-  "settings_pane_header": "Налады новай карткі",
-  "settings_pane_body2": "Выберыце тое, што вы бачыце на гэтай старонцы.",
-  "settings_pane_search_header": "Пошук",
-  "settings_pane_search_body": "Пошук у Сеціве з вашай новай карткі.",
   "settings_pane_topsites_header": "Папулярныя сайты",
-  "settings_pane_topsites_body": "Доступ да сайтаў, якія вы часцей наведваеце.",
-  "settings_pane_topsites_options_showmore": "Паказваць два шэрагі",
   "settings_pane_highlights_header": "Выбранае",
-  "settings_pane_highlights_body2": "Знайдзіце зваротны шлях да цікавых рэчаў, якія вы нядаўна наведалі або дадалі ў закладкі.",
   "settings_pane_highlights_options_bookmarks": "Закладкі",
-  "settings_pane_highlights_options_visited": "Наведаныя сайты",
   "settings_pane_snippets_header": "Урыўкі",
-  "settings_pane_snippets_body": "Чытайце кароткія і радасныя навіны ад Mozilla аб Firefox, інтэрнэт-культуру і выпадковыя мемы.",
-  "settings_pane_done_button": "Гатова",
-  "settings_pane_topstories_options_sponsored": "Паказаць артыкулы ад спонсараў",
   "edit_topsites_button_text": "Правіць",
   "edit_topsites_edit_button": "Рэдагаваць гэты сайт",
   "topsites_form_add_header": "Новы папулярны сайт",
   "topsites_form_edit_header": "Рэдагаваць папулярны сайт",
   "topsites_form_title_label": "Загаловак",
   "topsites_form_title_placeholder": "Увядзіце назву",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL уласнага відарыса",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Перадпрагляд",
   "topsites_form_add_button": "Дадаць",
   "topsites_form_save_button": "Захаваць",
   "topsites_form_cancel_button": "Скасаваць",
   "topsites_form_url_validation": "Патрабуецца сапраўдны URL",
   "topsites_form_image_validation": "Не ўдалося атрымаць відарыс. Паспрабуйце іншы URL.",
   "pocket_read_more": "Папулярныя тэмы:",
   "pocket_read_even_more": "Іншыя навіны",
-  "pocket_description": "Адкрыйце для сябе высакаякасны кантэнт, які вы маглі б прапусціць, з дапамогай Pocket, які стаў часткай Mozilla.",
   "highlights_empty_state": "Пачніце агляданне, і мы пакажам вам тут некаторыя з найлепшых артыкулаў, відэаролікаў і іншых старонак, якія вы нядаўна наведалі або дадалі ў закладкі.",
   "topstories_empty_state": "Гатова. Праверце пазней, каб убачыць больш матэрыялаў ад {provider}. Не жадаеце чакаць? Выберыце папулярную тэму, каб знайсці больш цікавых матэрыялаў з усяго Інтэрнэту.",
   "manual_migration_explanation2": "Паспрабуйце Firefox з закладкамі, гісторыяй і паролямі з іншага браўзера.",
   "manual_migration_cancel_button": "Не, дзякуй",
   "manual_migration_import_button": "Імпартаваць зараз",
   "error_fallback_default_info": "Ох, нешта пайшло не так пры загрузцы гэтага змесціва.",
   "error_fallback_default_refresh_suggestion": "Абнавіць старонку, каб паўтарыць спробу.",
   "section_menu_action_remove_section": "Выдаліць раздзел",
   "section_menu_action_collapse_section": "Згарнуць раздзел",
   "section_menu_action_expand_section": "Разгарнуць раздзел",
   "section_menu_action_manage_section": "Наладзіць раздзел",
   "section_menu_action_add_topsite": "Дадаць папулярны сайт",
   "section_menu_action_move_up": "Пасунуць вышэй",
   "section_menu_action_move_down": "Пасунуць ніжэй",
-  "section_menu_action_privacy_notice": "Паведамленне аб прыватнасці"
+  "section_menu_action_privacy_notice": "Паведамленне аб прыватнасці",
+  "prefs_restore_defaults_button": "Аднавіць прадвызначэнні",
+  "settings_pane_header": "Налады новай карткі",
+  "settings_pane_body2": "Выберыце тое, што вы бачыце на гэтай старонцы.",
+  "settings_pane_search_header": "Пошук",
+  "settings_pane_search_body": "Пошук у Сеціве з вашай новай карткі.",
+  "settings_pane_topsites_body": "Доступ да сайтаў, якія вы часцей наведваеце.",
+  "settings_pane_topsites_options_showmore": "Паказваць два шэрагі",
+  "settings_pane_highlights_body2": "Знайдзіце зваротны шлях да цікавых рэчаў, якія вы нядаўна наведалі або дадалі ў закладкі.",
+  "settings_pane_highlights_options_visited": "Наведаныя сайты",
+  "settings_pane_snippets_body": "Чытайце кароткія і радасныя навіны ад Mozilla аб Firefox, інтэрнэт-культуру і выпадковыя мемы.",
+  "settings_pane_done_button": "Гатова",
+  "settings_pane_topstories_options_sponsored": "Паказаць артыкулы ад спонсараў",
+  "pocket_description": "Адкрыйце для сябе высакаякасны кантэнт, які вы маглі б прапусціць, з дапамогай Pocket, які стаў часткай Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Търсене в интернет</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Търсене в интернет" title="Търсене в интернет"/><button id="searchSubmit" class="search-button" title="Търсене"><span class="sr-only"><span>Търсене</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Често посещавани</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Препоръчано от Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Популярни теми:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Акценти</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Настройки на новия раздел"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Търсене",
   "search_header": "Търсене с {search_engine_name}",
   "search_web_placeholder": "Търсене в интернет",
   "section_disclaimer_topstories": "Най-интересните истории в Мрежата на основата на прочетеното от вас. От Pocket, вече част от Mozilla.",
   "section_disclaimer_topstories_linktext": "Разберете как работи.",
   "section_disclaimer_topstories_buttontext": "Ясно, разбрах",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Настройки на новия раздел",
-  "settings_pane_header": "Настройки на новия раздел",
-  "settings_pane_body2": "Изберете какво да виждате на тази страница.",
-  "settings_pane_search_header": "Търсене",
-  "settings_pane_search_body": "Търсете в мрежата от нов раздел.",
   "settings_pane_topsites_header": "Често посещавани",
-  "settings_pane_topsites_body": "Достъп до страниците, които посещавате най-често.",
-  "settings_pane_topsites_options_showmore": "Показване на два реда",
   "settings_pane_highlights_header": "Акценти",
-  "settings_pane_highlights_body2": "Намерете интересните неща, които скоро сте посетили или отметнали.",
   "settings_pane_highlights_options_bookmarks": "Отметки",
-  "settings_pane_highlights_options_visited": "Посетени страници",
   "settings_pane_snippets_header": "Изрезки",
-  "settings_pane_snippets_body": "Четете кратки и радостни новини от Mozilla относно Firefox, интернет-културата и случайни мемета.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Показване на платени статии",
   "edit_topsites_button_text": "Редактиране",
   "edit_topsites_edit_button": "Редактиране",
   "topsites_form_add_header": "Нов често посещавана страница",
   "topsites_form_edit_header": "Редактиране на често посещавана страница",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Заглавие",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,25 +69,36 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Добавяне",
   "topsites_form_save_button": "Запазване",
   "topsites_form_cancel_button": "Отказ",
   "topsites_form_url_validation": "Необходим е валиден URL",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Популярни теми:",
   "pocket_read_even_more": "Повече статии",
-  "pocket_description": "Открийте висококачествено съдържание, което иначе може да пропуснете, с помощта на Pocket, вече част от Mozilla.",
   "highlights_empty_state": "Разглеждайте и тук ще ви покажем някои от най-добрите статии, видео и други страници, които сте посетили или отметнали наскоро.",
   "topstories_empty_state": "Разгледахте всичко. Проверете по-късно за повече истории от {provider}. Нямате търпение? Изберете популярна тема, за да откриете повече истории из цялата Мрежа.",
   "manual_migration_explanation2": "Опитайте Firefox с отметките, историята и паролите от друг четец.",
   "manual_migration_cancel_button": "Не, благодаря",
   "manual_migration_import_button": "Внасяне",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
-  "section_menu_action_privacy_notice": "Политика за личните данни"
+  "section_menu_action_privacy_notice": "Политика за личните данни",
+  "settings_pane_header": "Настройки на новия раздел",
+  "settings_pane_body2": "Изберете какво да виждате на тази страница.",
+  "settings_pane_search_header": "Търсене",
+  "settings_pane_search_body": "Търсете в мрежата от нов раздел.",
+  "settings_pane_topsites_body": "Достъп до страниците, които посещавате най-често.",
+  "settings_pane_topsites_options_showmore": "Показване на два реда",
+  "settings_pane_highlights_body2": "Намерете интересните неща, които скоро сте посетили или отметнали.",
+  "settings_pane_highlights_options_visited": "Посетени страници",
+  "settings_pane_snippets_body": "Четете кратки и радостни новини от Mozilla относно Firefox, интернет-културата и случайни мемета.",
+  "settings_pane_done_button": "Готово",
+  "settings_pane_topstories_options_sponsored": "Показване на платени статии",
+  "pocket_description": "Открийте висококачествено съдържание, което иначе може да пропуснете, с помощта на Pocket, вече част от Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ওয়েবে সন্ধান করুন</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ওয়েবে সন্ধান করুন" title="ওয়েবে সন্ধান করুন"/><button id="searchSubmit" class="search-button" title="অনুসন্ধান"><span class="sr-only"><span>অনুসন্ধান</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>শীর্ঘ সাইট</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket দ্বারা সুপারিশকৃত</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>জনপ্রিয় বিষয়:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>হাইলাইটস</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="আপনার নতুন ট্যাব পেজটি কাস্টমাইজ করুন"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "অনুসন্ধান",
   "search_header": "{search_engine_name} খুঁজুন",
   "search_web_placeholder": "ওয়েবে সন্ধান করুন",
   "section_disclaimer_topstories": "মজার মজার সব গল্প নির্বাচিত হয়েছে, আপনি যেমনটা পড়েন। Pocket এখন থেকে Mozilla এর অংশ।",
   "section_disclaimer_topstories_linktext": "কিভাবে কাজ করে জানুন।",
   "section_disclaimer_topstories_buttontext": "ঠিক আছে, বুঝেছি",
   "prefs_home_header": "Firefox Home কনটেন্ট",
   "prefs_home_description": "আপনার Firefox Home স্ক্রিনে যেসব কনটেন্ট রাখতে চান তা পছন্দ করুন।",
-  "prefs_restore_defaults_button": "ডিফল্ট পুনরুদ্ধার করুন",
   "prefs_section_rows_option": "{num} সারি; {num} সারিগুলি",
   "prefs_search_header": "ওয়েব অনুসন্ধান",
   "prefs_topsites_description": "যে সাইটগুলিতে আপনি বেশি যান",
   "prefs_topstories_description2": "ওয়েবের দারুন সব কন্টেন্ট, নিজের মত করে সাঁজিয়ে নিন",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "আরও জানুন",
   "prefs_highlights_description": "সাইটের একটি সেকশন যা আপনি সংরক্ষণ অথবা গিয়েছিলেন",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla and Firefox থেকে হালনাগাদ",
   "settings_pane_button_label": "আপনার নতুন ট্যাব পেজটি কাস্টমাইজ করুন",
-  "settings_pane_header": "নতুন ট্যাব পছন্দসমূহ",
-  "settings_pane_body2": "আপনি এই পৃষ্ঠায় যা দেখেন তা পছন্দ করুন।",
-  "settings_pane_search_header": "অনুসন্ধান",
-  "settings_pane_search_body": "আপনার নতুন ট্যাব থেকে ওয়েবে খুঁজুন।",
   "settings_pane_topsites_header": "শীর্ষ সাইট",
-  "settings_pane_topsites_body": "আপনি যেসব সাইটে বেশি যান সেসব সাইটে প্রবেশ করুন।",
-  "settings_pane_topsites_options_showmore": "দুটি সারি দেখান",
   "settings_pane_highlights_header": "হাইলাইটস",
-  "settings_pane_highlights_body2": "আপনি সম্প্রতি পরিদর্শন করেছেন বা বুকমার্ক করেছেন এমন আকর্ষণীয় বিষয়গুলিতে ফিরে যাবার পথ পান।",
   "settings_pane_highlights_options_bookmarks": "বুকমার্ক",
-  "settings_pane_highlights_options_visited": "পূর্বে পরিদর্শন করা সাইটগুলি",
   "settings_pane_snippets_header": "টুকিটাকি",
-  "settings_pane_snippets_body": "Mozilla থেকে Firefox, ইন্টারনেট সংস্কৃতি, এবং মাঝে মাঝে উদ্দেশ্যহীন মেমে সম্পর্কে ছোট এবং মিষ্টি আপডেটগুলি পড়ুন।",
-  "settings_pane_done_button": "হয়েছে",
-  "settings_pane_topstories_options_sponsored": "বিজ্ঞাপনী গল্প দেখাও",
   "edit_topsites_button_text": "সম্পাদনা",
   "edit_topsites_edit_button": "সাইটটি সম্পাদনা করুন",
   "topsites_form_add_header": "নতুন শীর্ষ সাইট",
   "topsites_form_edit_header": "শীর্ষ সাইট সম্পাদনা করুন",
   "topsites_form_title_label": "শিরোনাম",
   "topsites_form_title_placeholder": "নাম দিন",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "কাস্টম ছবির URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "প্রাকদর্শন",
   "topsites_form_add_button": "যোগ",
   "topsites_form_save_button": "সংরক্ষণ",
   "topsites_form_cancel_button": "বাতিল",
   "topsites_form_url_validation": "কার্যকর URL প্রয়োজন",
   "topsites_form_image_validation": "ছবি লোড করতে ব্যর্থ। ভিন্ন URL এ চেস্টা করুন।",
   "pocket_read_more": "জনপ্রিয় বিষয়:",
   "pocket_read_even_more": "আরও গল্প দেখুন",
-  "pocket_description": "Pocket এর সাহায্যে, যা এখন Mozilla এর অংশ, উচ্চ মানের বিষয়বস্তু আবিষ্কার করুন যা আপনি অন্যথায় পেতেন না।",
   "highlights_empty_state": "ব্রাউজি করা শুরু করুন, এবং কিছু গুরুত্বপূর্ণ নিবন্ধ, ভিডিও, এবং আপনি সম্প্রতি পরিদর্শন বা বুকমার্ক করেছেন এমন কিছু পৃষ্ঠা আমরা এখানে প্রদর্শন করব।",
   "topstories_empty_state": "কিছু একটা ঠিক নেই। {provider} এর শীর্ষ গল্পগুলো পেতে কিছুক্ষণ পর আবার দেখুন। অপেক্ষা করতে চান না? বিশ্বের সেরা গল্পগুলো পেতে কোন জনপ্রিয় বিষয় নির্বাচন করুন।",
   "manual_migration_explanation2": "অন্য ব্রাউজার থেকে আনা বুকমার্ক, ইতিহাস এবং পাসওয়ার্ডগুলির সাথে ফায়ারফক্স ব্যবহার করে দেখুন।",
   "manual_migration_cancel_button": "প্রয়োজন নেই",
   "manual_migration_import_button": "এখনই ইম্পোর্ট করুন",
   "error_fallback_default_info": "ওহো, কনটেন্টটি লোড করতে কিছু ভুল হয়েছে।",
   "error_fallback_default_refresh_suggestion": "পুনরায় চেস্টা করার জন্য পেজটি রিফ্রেশ করুন।",
   "section_menu_action_remove_section": "সেকশনটি সরান",
@@ -112,17 +99,30 @@ window.gActivityStreamStrings = {
   "search_settings": "সার্চ সেটিংস বদল করুন",
   "welcome_title": "নতুন ট্যাবে স্বাগতম",
   "welcome_body": "আপনার সাথে মিলে এমন বুর্কমার্ক, নিবন্ধ, ভিডিও এবং পাতা যেগুলো আপনি সম্প্রতি ভ্রমণ করেছে তা Firefox এই জায়গায় দেখাবে, যাতে আপনি সেগুলো দ্রুত খুঁজে পান।",
   "welcome_label": "আপনার হাইলাইট সমূহ চিহ্নিত করা হচ্ছে",
   "time_label_less_than_minute": "<1মিনিট",
   "time_label_minute": "{number} মিনিট",
   "time_label_hour": "{number} ঘন্টা",
   "time_label_day": "{number} দিন",
+  "settings_pane_header": "নতুন ট্যাব পছন্দসমূহ",
+  "settings_pane_search_header": "অনুসন্ধান",
+  "settings_pane_search_body": "আপনার নতুন ট্যাব থেকে ওয়েবে খুঁজুন।",
+  "settings_pane_topsites_body": "আপনি যেসব সাইটে বেশি যান সেসব সাইটে প্রবেশ করুন।",
+  "settings_pane_topsites_options_showmore": "দুটি সারি দেখান",
+  "settings_pane_done_button": "হয়েছে",
   "edit_topsites_button_label": "আপনার শীর্ষ সাইট সেকশন কাস্টমাইজ করুন",
   "edit_topsites_showmore_button": "আরও দেখান",
   "edit_topsites_showless_button": "কম দেখান",
   "edit_topsites_done_button": "হয়েছে",
   "edit_topsites_pin_button": "সাইটটি পিন করুন",
   "edit_topsites_dismiss_button": "সাইটটি মুছে দিন",
   "edit_topsites_add_button": "যুক্ত করুন",
-  "prefs_topstories_show_sponsored_label": "{provider} বিজ্ঞাপনী গল্প"
+  "prefs_restore_defaults_button": "ডিফল্ট পুনরুদ্ধার করুন",
+  "prefs_topstories_show_sponsored_label": "{provider} বিজ্ঞাপনী গল্প",
+  "settings_pane_body2": "আপনি এই পৃষ্ঠায় যা দেখেন তা পছন্দ করুন।",
+  "settings_pane_highlights_body2": "আপনি সম্প্রতি পরিদর্শন করেছেন বা বুকমার্ক করেছেন এমন আকর্ষণীয় বিষয়গুলিতে ফিরে যাবার পথ পান।",
+  "settings_pane_highlights_options_visited": "পূর্বে পরিদর্শন করা সাইটগুলি",
+  "settings_pane_snippets_body": "Mozilla থেকে Firefox, ইন্টারনেট সংস্কৃতি, এবং মাঝে মাঝে উদ্দেশ্যহীন মেমে সম্পর্কে ছোট এবং মিষ্টি আপডেটগুলি পড়ুন।",
+  "settings_pane_topstories_options_sponsored": "বিজ্ঞাপনী গল্প দেখাও",
+  "pocket_description": "Pocket এর সাহায্যে, যা এখন Mozilla এর অংশ, উচ্চ মানের বিষয়বস্তু আবিষ্কার করুন যা আপনি অন্যথায় পেতেন না।"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ওয়েবে সন্ধান করুন</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ওয়েবে সন্ধান করুন" title="ওয়েবে সন্ধান করুন"/><button id="searchSubmit" class="search-button" title="অনুসন্ধান"><span class="sr-only"><span>অনুসন্ধান</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>শীর্ষ সাইটগুলি</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="সাইটটি সম্পাদনা করুন"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket দ্বারা সুপারিশকৃত</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>জনপ্রিয় বিষয়:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>হাইলাইটস</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>কনটেক্স মেন্যু তে সেকশনটি খুলুন</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="আপনার নতুন ট্যাব পেজটি কাস্টমাইজ করুন"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "অনুসন্ধান",
   "search_header": "{search_engine_name} এ অনুসন্ধান করুন",
   "search_web_placeholder": "ওয়েবে সন্ধান করুন",
   "section_disclaimer_topstories": "মজার মজার সব গল্প নির্বাচিত হয়েছে, আপনি যেমনটা পড়েন। Pocket এখন থেকে Mozilla এর অংশ।",
   "section_disclaimer_topstories_linktext": "কিভাবে কাজ করে জানুন।",
   "section_disclaimer_topstories_buttontext": "ঠিক আছে, বুঝেছি",
   "prefs_home_header": "Firefox Home কনটেন্ট",
   "prefs_home_description": "আপনার Firefox Home স্ক্রিনে যেসব কনটেন্ট রাখতে চান তা পছন্দ করুন।",
-  "prefs_restore_defaults_button": "ডিফল্ট পুনরুদ্ধার করুন",
   "prefs_section_rows_option": "{num} সারি; {num} সারিগুলি",
   "prefs_search_header": "ওয়েব অনুসন্ধান",
   "prefs_topsites_description": "যে সাইটগুলিতে আপনি বেশি যান",
   "prefs_topstories_description2": "ওয়েবের দারুন সব কন্টেন্ট, নিজের মত করে সাঁজিয়ে নিন",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "আরও জানুন",
   "prefs_highlights_description": "সাইটের একটি সেকশন যা আপনি সংরক্ষণ অথবা গিয়েছিলেন",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla and Firefox থেকে হালনাগাদ",
   "settings_pane_button_label": "আপনার নতুন ট্যাব পেজটি কাস্টমাইজ করুন",
-  "settings_pane_header": "নতুন ট্যাব পছন্দসমূহ",
-  "settings_pane_body2": "আপনি এই পৃষ্ঠায় যা দেখেন তা পছন্দ করুন।",
-  "settings_pane_search_header": "অনুসন্ধান",
-  "settings_pane_search_body": "আপনার নতুন ট্যাব থেকে ওয়েবে খুঁজুন।",
   "settings_pane_topsites_header": "শীর্ষ সাইট",
-  "settings_pane_topsites_body": "আপনি যেসব সাইটে বেশি যান সেসব সাইটে প্রবেশ করুন।",
-  "settings_pane_topsites_options_showmore": "দুটি সারি দেখান",
   "settings_pane_highlights_header": "হাইলাইটস",
-  "settings_pane_highlights_body2": "আপনি সম্প্রতি পরিদর্শন করেছেন বা বুকমার্ক করেছেন এমন আকর্ষণীয় বিষয়গুলিতে ফিরে যাবার পথ পান।",
   "settings_pane_highlights_options_bookmarks": "বুকমার্ক",
-  "settings_pane_highlights_options_visited": "পূর্বে পরিদর্শন করা সাইটগুলি",
   "settings_pane_snippets_header": "টুকিটাকি",
-  "settings_pane_snippets_body": "Mozilla থেকে Firefox, ইন্টারনেট সংস্কৃতি, এবং মাঝে মাঝে উদ্দেশ্যহীন মেমে সম্পর্কে ছোট এবং মিষ্টি আপডেটগুলি পড়ুন।",
-  "settings_pane_done_button": "হয়েছে",
-  "settings_pane_topstories_options_sponsored": "বিজ্ঞাপনী গল্প দেখাও",
   "edit_topsites_button_text": "সম্পাদনা",
   "edit_topsites_edit_button": "সাইটটি সম্পাদনা করুন",
   "topsites_form_add_header": "নতুন শীর্ষ সাইট",
   "topsites_form_edit_header": "শীর্ষ সাইট সম্পাদনা করুন",
   "topsites_form_title_label": "শিরোনাম",
   "topsites_form_title_placeholder": "একটি শিরোনাম লিখুন",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "কাস্টম ছবির URL",
@@ -81,33 +69,45 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "প্রাকদর্শন",
   "topsites_form_add_button": "যোগ",
   "topsites_form_save_button": "সংরক্ষণ",
   "topsites_form_cancel_button": "বাতিল করুন",
   "topsites_form_url_validation": "কার্যকর URL প্রয়োজন",
   "topsites_form_image_validation": "ছবি লোড করতে ব্যর্থ। ভিন্ন URL এ চেস্টা করুন।",
   "pocket_read_more": "জনপ্রিয় বিষয়:",
   "pocket_read_even_more": "আরও গল্প দেখুন",
-  "pocket_description": "Pocket এর সাহায্যে, যা এখন Mozilla এর অংশ, উচ্চ মানের বিষয়বস্তু আবিষ্কার করুন যা আপনি অন্যথায় পেতেন না।",
   "highlights_empty_state": "ব্রাউজি করা শুরু করুন, এবং কিছু গুরুত্বপূর্ণ নিবন্ধ, ভিডিও, এবং আপনি সম্প্রতি পরিদর্শন বা বুকমার্ক করেছেন এমন কিছু পৃষ্ঠা আমরা এখানে প্রদর্শন করব।",
   "topstories_empty_state": "কিছু একটা ঠিক নেই। {provider} এর শীর্ষ গল্পগুলো পেতে কিছুক্ষণ পর আবার দেখুন। অপেক্ষা করতে চান না? বিশ্বের সেরা গল্পগুলো পেতে কোন জনপ্রিয় বিষয় নির্বাচন করুন।",
   "manual_migration_explanation2": "অন্য ব্রাউজার থেকে আনা বুকমার্ক, ইতিহাস এবং পাসওয়ার্ডগুলির সাথে ফায়ারফক্স ব্যবহার করে দেখুন।",
   "manual_migration_cancel_button": "প্রয়োজন নেই",
   "manual_migration_import_button": "এখনই ইম্পোর্ট করুন",
   "error_fallback_default_info": "ওহো, কনটেন্টটি লোড করতে কিছু ভুল হয়েছে।",
   "error_fallback_default_refresh_suggestion": "পুনরায় চেস্টা করার জন্য পেজটি রিফ্রেশ করুন।",
   "section_menu_action_remove_section": "সেকশনটি সরান",
   "section_menu_action_collapse_section": "সেকশনটি সংকোচন করুন",
   "section_menu_action_expand_section": "সেকশনটি প্রসারিত করুন",
   "section_menu_action_manage_section": "সেকশনটি পরিচালনা করুন",
   "section_menu_action_add_topsite": "টপ সাইট যোগ করুন",
   "section_menu_action_move_up": "উপরে উঠাও",
   "section_menu_action_move_down": "নীচে নামাও",
   "section_menu_action_privacy_notice": "গোপনীয়তা নীতি",
+  "prefs_restore_defaults_button": "ডিফল্ট পুনরুদ্ধার করুন",
   "prefs_topstories_show_sponsored_label": "{provider} বিজ্ঞাপনী গল্প",
+  "settings_pane_header": "নতুন ট্যাব পছন্দসমূহ",
+  "settings_pane_body2": "আপনি এই পৃষ্ঠায় যা দেখেন তা পছন্দ করুন।",
+  "settings_pane_search_header": "অনুসন্ধান",
+  "settings_pane_search_body": "আপনার নতুন ট্যাব থেকে ওয়েবে খুঁজুন।",
+  "settings_pane_topsites_body": "আপনি যেসব সাইটে বেশি যান সেসব সাইটে প্রবেশ করুন।",
+  "settings_pane_topsites_options_showmore": "দুটি সারি দেখান",
+  "settings_pane_highlights_body2": "আপনি সম্প্রতি পরিদর্শন করেছেন বা বুকমার্ক করেছেন এমন আকর্ষণীয় বিষয়গুলিতে ফিরে যাবার পথ পান।",
+  "settings_pane_highlights_options_visited": "পূর্বে পরিদর্শন করা সাইটগুলি",
+  "settings_pane_snippets_body": "Mozilla থেকে Firefox, ইন্টারনেট সংস্কৃতি, এবং মাঝে মাঝে উদ্দেশ্যহীন মেমে সম্পর্কে ছোট এবং মিষ্টি আপডেটগুলি পড়ুন।",
+  "settings_pane_done_button": "হয়েছে",
+  "settings_pane_topstories_options_sponsored": "বিজ্ঞাপনী গল্প দেখাও",
+  "pocket_description": "Pocket এর সাহায্যে, যা এখন Mozilla এর অংশ, উচ্চ মানের বিষয়বস্তু আবিষ্কার করুন যা আপনি অন্যথায় পেতেন না।",
   "default_label_loading": "লোড করা হচ্ছে…",
   "type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে",
   "type_label_open": "খুলুন",
   "type_label_topic": "বিষয়",
   "menu_action_copy_address": "ঠিকানা কপি করুন",
   "menu_action_email_link": "ই-মেইল লিংক…",
   "search_for_something_with": "{search_term} এর জন্য খুঁজুন সাথে:",
   "search_settings": "সার্চ সেটিংস বদল করুন",
--- a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Klask er web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Klask er web" title="Klask er web"/><button id="searchSubmit" class="search-button" title="Klask"><span class="sr-only"><span>Klask</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Lec&#x27;hiennoù pennañ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Digeriñ lañser kemperzhel al lodenn-mañ</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embann al lec&#x27;hienn-mañ"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Erbedet gant Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Digeriñ lañser kemperzhel al lodenn-mañ</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Danvezioù brudet:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Mareoù pouezus</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Digeriñ lañser kemperzhel al lodenn-mañ</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personelait ho pajenn Ivinell Nevez"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
@@ -5,74 +5,62 @@ window.gActivityStreamStrings = {
   "header_highlights": "Mareoù pouezus",
   "header_recommended_by": "Erbedet gant {provider}",
   "context_menu_button_sr": "Digeriñ al lañser kemperzhel evit {title}",
   "section_context_menu_button_sr": "Digeriñ lañser kemperzhel al lodenn-mañ",
   "type_label_visited": "Gweladennet",
   "type_label_bookmarked": "Lakaet er sinedoù",
   "type_label_recommended": "Brudet",
   "type_label_pocket": "Enrollet e Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Pellgarget",
   "menu_action_bookmark": "Sined",
   "menu_action_remove_bookmark": "Dilemel ar sined",
   "menu_action_open_new_window": "Digeriñ e-barzh ur prenestr nevez",
   "menu_action_open_private_window": "Digeriñ e-barzh ur prenestr merdeiñ prevez nevez",
   "menu_action_dismiss": "Argas",
   "menu_action_delete": "Dilemel eus ar roll istor",
   "menu_action_pin": "Spilhennañ",
   "menu_action_unpin": "Dispilhennañ",
   "confirm_history_delete_p1": "Sur oc'h e fell deoc'h dilemel kement eriol eus ar bajenn-mañ diouzh ho roll istor?",
   "confirm_history_delete_notice_p2": "Ne c'haller ket dizober ar gwezh-mañ.",
   "menu_action_save_to_pocket": "Enrollañ etrezek Pocket",
   "menu_action_delete_pocket": "Dilemel eus Pocket",
   "menu_action_archive_pocket": "Diellaouiñ e Pocket",
-  "menu_action_show_file_mac_os": "Show in Finder",
-  "menu_action_show_file_windows": "Open Containing Folder",
-  "menu_action_show_file_linux": "Open Containing Folder",
-  "menu_action_show_file_default": "Show File",
-  "menu_action_open_file": "Open File",
-  "menu_action_copy_download_link": "Copy Download Link",
-  "menu_action_go_to_download_page": "Go to Download Page",
-  "menu_action_remove_download": "Remove from History",
+  "menu_action_show_file_mac_os": "Diskouez e Finder",
+  "menu_action_show_file_windows": "Digeriñ an teuliad a endalc'h ar restr",
+  "menu_action_show_file_linux": "Digeriñ an teuliad a endalc'h ar restr",
+  "menu_action_show_file_default": "Diskouez ar restr",
+  "menu_action_open_file": "Digeriñ ar restr",
+  "menu_action_copy_download_link": "Eilañ ere ar pellgargadur",
+  "menu_action_go_to_download_page": "Mont da bajenn ar pellgargadur",
+  "menu_action_remove_download": "Dilemel diwar ar roll",
   "search_button": "Klask",
   "search_header": "Klask {search_engine_name}",
   "search_web_placeholder": "Klask er web",
   "section_disclaimer_topstories": "An istorioù dedennusañ er web, dibabet hervez ar pezh a lennit. Diwar Pocket, ul lodenn eus Mozilla.",
   "section_disclaimer_topstories_linktext": "Deskit penaos ec'h a en-dro.",
   "section_disclaimer_topstories_buttontext": "Mat eo, komprenet am eus",
   "prefs_home_header": "Endalc'had Degemer Firefox",
   "prefs_home_description": "Dibabit peseurt endalc'had a fell deoc'h kaout war ho skramm Firefox Degemer.",
-  "prefs_restore_defaults_button": "Assav an arventennoù dre ziouer",
   "prefs_section_rows_option": "{num} renk;{num} renk;{num} renk;{num} a renkoù;{num} renk",
   "prefs_search_header": "Klask web",
   "prefs_topsites_description": "Al lec'hiennoù a weladennit ar muiañ",
-  "prefs_topstories_description2": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "prefs_topstories_description2": "Danvez eus an dibab eus pep lec'h er web, personelaet evidoc'h",
+  "prefs_topstories_options_sponsored_label": "Istorioù kevelet",
   "prefs_topstories_sponsored_learn_more": "Gouzout hiroc'h",
   "prefs_highlights_description": "Un dibab a lec'hiennoù ho peus enrollet pe gweladennet",
-  "prefs_highlights_options_visited_label": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "prefs_highlights_options_visited_label": "Pajennoù gweladennet",
+  "prefs_highlights_options_download_label": "Pellgargadurioù nevez",
+  "prefs_highlights_options_pocket_label": "Pajennoù enrollet e Pocket",
   "prefs_snippets_description": "Keleier eus Mozilla ha Firefox",
   "settings_pane_button_label": "Personelait ho pajenn Ivinell Nevez",
-  "settings_pane_header": "Gwellvezioù an ivinell nevez",
-  "settings_pane_body2": "Dibabit petra a welit war ar bajenn-mañ.",
-  "settings_pane_search_header": "Klask",
-  "settings_pane_search_body": "Klask er web adalek an ivinell nevez.",
   "settings_pane_topsites_header": "Lec'hiennoù gwellañ",
-  "settings_pane_topsites_body": "Kit war al lec'hiennoù gweladennet ar muiañ ganeoc'h.",
-  "settings_pane_topsites_options_showmore": "Diskouez daou vann",
   "settings_pane_highlights_header": "Mareoù pouezus",
-  "settings_pane_highlights_body2": "Adkavit an traoù dedennus gweladennet pe lakaet er sinedoù nevez ’zo.",
   "settings_pane_highlights_options_bookmarks": "Sinedoù",
-  "settings_pane_highlights_options_visited": "Lec'hiennoù gweladennet",
   "settings_pane_snippets_header": "Notennigoù",
-  "settings_pane_snippets_body": "Lennit an hizivadurioù berr ha dous graet gant Mozilla evit Firefox, sevenadur ar genrouedad, hag ur mem dre-zegouezh ur wech an amzer.",
-  "settings_pane_done_button": "Graet",
-  "settings_pane_topstories_options_sponsored": "Diskouez an istorioù kevelet",
   "edit_topsites_button_text": "Embann",
   "edit_topsites_edit_button": "Embann al lec'hienn-mañ",
   "topsites_form_add_header": "Lec'hiennoù gwellañ nevez",
   "topsites_form_edit_header": "Embann al Lec'hiennoù Gwellañ",
   "topsites_form_title_label": "Titl",
   "topsites_form_title_placeholder": "Enankañ un titl",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL ar skeudenn personelaet",
@@ -81,27 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Alberz",
   "topsites_form_add_button": "Ouzhpennañ",
   "topsites_form_save_button": "Enrollañ",
   "topsites_form_cancel_button": "Nullañ",
   "topsites_form_url_validation": "URL talvoudek azgoulennet",
   "topsites_form_image_validation": "N'haller ket kargan ar skeudenn. Klaskit gant un URL disheñvel.",
   "pocket_read_more": "Danvezioù brudet:",
   "pocket_read_even_more": "Gwelet muioc'h a istorioù",
-  "pocket_description": "Dizoloit pennadoù eus an dibab ho pije gellout c'hwitout a-hent all warno, a-drugarez da bPocket, hag a zo bremañ ul lodenn deus Mozilla.",
   "highlights_empty_state": "Krogit da verdeiñ hag e tiskouezimp deoc’h pennadoù, videoioù ha pajennoù all gweladennet pe lakaet er sinedoù nevez ’zo.",
   "topstories_empty_state": "Aet oc'h betek penn. Distroit diwezhatoc'h evit muioc’h a istorioù digant {provider}. N’oc'h ket evit gortoz? Dibabit un danvez brudet evit klask muioc’h a bennadoù dedennus eus pep lec’h er web.",
   "manual_migration_explanation2": "Amprouit Firefox gant sinedoù, roll istor ha gerioù-tremen ur merdeer all.",
   "manual_migration_cancel_button": "N'am bo ket",
   "manual_migration_import_button": "Emporzhiañ bremañ",
   "error_fallback_default_info": "Chaous, un dra bennak a zo a-dreuz en ur gargañ an endalc'had.",
   "error_fallback_default_refresh_suggestion": "Adkargit ar bajenn evit klask en-dro.",
   "section_menu_action_remove_section": "Dilemel ar gevrenn",
   "section_menu_action_collapse_section": "Bihanaat ar gevrenn",
   "section_menu_action_expand_section": "Astenn ar gevrenn",
   "section_menu_action_manage_section": "Merañ ar gevrenn",
   "section_menu_action_add_topsite": "Ouzhpennañ ul lec'hienn gwellañ din",
   "section_menu_action_move_up": "Dilec'hiañ etrezek ar c'hrec'h",
   "section_menu_action_move_down": "Dilec'hiañ etrezek an traoñ",
   "section_menu_action_privacy_notice": "Evezhiadennoù a-fet buhez prevez",
-  "prefs_topstories_description": "Danvez eus an dibab a c'hallfec'h c'hwitout a-hend-all",
-  "prefs_topstories_show_sponsored_label": "Istorioù kevelet {provider}"
+  "prefs_restore_defaults_button": "Assav an arventennoù dre ziouer",
+  "settings_pane_header": "Gwellvezioù an ivinell nevez",
+  "settings_pane_body2": "Dibabit petra a welit war ar bajenn-mañ.",
+  "settings_pane_search_header": "Klask",
+  "settings_pane_search_body": "Klask er web adalek an ivinell nevez.",
+  "settings_pane_topsites_body": "Kit war al lec'hiennoù gweladennet ar muiañ ganeoc'h.",
+  "settings_pane_topsites_options_showmore": "Diskouez daou vann",
+  "settings_pane_highlights_body2": "Adkavit an traoù dedennus gweladennet pe lakaet er sinedoù nevez ’zo.",
+  "settings_pane_highlights_options_visited": "Lec'hiennoù gweladennet",
+  "settings_pane_snippets_body": "Lennit an hizivadurioù berr ha dous graet gant Mozilla evit Firefox, sevenadur ar genrouedad, hag ur mem dre-zegouezh ur wech an amzer.",
+  "settings_pane_done_button": "Graet",
+  "settings_pane_topstories_options_sponsored": "Diskouez an istorioù kevelet",
+  "pocket_description": "Dizoloit pennadoù eus an dibab ho pije gellout c'hwitout a-hent all warno, a-drugarez da bPocket, hag a zo bremañ ul lodenn deus Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Pretraži web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Pretraži web" title="Pretraži web"/><button id="searchSubmit" class="search-button" title="Traži"><span class="sr-only"><span>Traži</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Najposjećenije stranice</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorite kontekstni meni sekcije</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Preporučeno od Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorite kontekstni meni sekcije</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popularne teme:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Istaknuto</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorite kontekstni meni sekcije</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Prilagodite svoju početnu stranicu novog taba"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Traži",
   "search_header": "{search_engine_name} pretraga",
   "search_web_placeholder": "Pretraži web",
   "section_disclaimer_topstories": "Najinteresantnije priče na webu, odabrane na osnovu onoga što ste pročitali. Od Pocket-a, koji je sada dio Mozille.",
   "section_disclaimer_topstories_linktext": "Saznajte kako radi.",
   "section_disclaimer_topstories_buttontext": "U redu, razumijem",
   "prefs_home_header": "Firefox početni sadržaj",
   "prefs_home_description": "Odaberite koji sadržaj želite na vašem početnom ekranu Firefoxa.",
-  "prefs_restore_defaults_button": "Vrati na izvorne vrijednosti",
   "prefs_section_rows_option": "{num} red;{num} redovi",
   "prefs_search_header": "Web pretraga",
   "prefs_topsites_description": "Stranice koje najviše posjećujete",
   "prefs_topstories_description2": "Sjajan sadržaj s cijelog weba, personalizovan za vas",
   "prefs_topstories_options_sponsored_label": "Sponzorisane priče",
   "prefs_topstories_sponsored_learn_more": "Saznajte više",
   "prefs_highlights_description": "Izbor stranica koje ste sačuvali ili posjetili",
   "prefs_highlights_options_visited_label": "Posjećene stranice",
   "prefs_highlights_options_download_label": "Najnovija preuzimanja",
   "prefs_highlights_options_pocket_label": "Stranice spremljene u Pocket",
   "prefs_snippets_description": "Ažuriranja od Mozille i Firefoxa",
   "settings_pane_button_label": "Prilagodite svoju početnu stranicu novog taba",
-  "settings_pane_header": "Postavke novog taba",
-  "settings_pane_body2": "Izaberite šta želite vidjeti na ovoj stranici.",
-  "settings_pane_search_header": "Traži",
-  "settings_pane_search_body": "Pretražite web iz novog taba.",
   "settings_pane_topsites_header": "Najposjećenije stranice",
-  "settings_pane_topsites_body": "Pristupite stranicama koje najčešće posjećujete.",
-  "settings_pane_topsites_options_showmore": "Prikaži dva reda",
   "settings_pane_highlights_header": "Istaknuto",
-  "settings_pane_highlights_body2": "Pronađite put natrag do zanimljivih stvari koje ste nedavno posjetili ili zabilježili.",
   "settings_pane_highlights_options_bookmarks": "Zabilješke",
-  "settings_pane_highlights_options_visited": "Posjećene stranice",
   "settings_pane_snippets_header": "Isječci",
-  "settings_pane_snippets_body": "Pročitajte kratke i slatke obavijesti od Mozille o Firefoxu, internet kulturi i povremenim nasumičnim temama.",
-  "settings_pane_done_button": "Gotovo",
-  "settings_pane_topstories_options_sponsored": "Prikaži sponzorisane priče",
   "edit_topsites_button_text": "Uredi",
   "edit_topsites_edit_button": "Uredi ovu stranicu",
   "topsites_form_add_header": "Nova najbolja stranica",
   "topsites_form_edit_header": "Uredi najbolju stranicu",
   "topsites_form_title_label": "Naslov",
   "topsites_form_title_placeholder": "Unesi naslov",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Prilagođena URL slika",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Pregled",
   "topsites_form_add_button": "Dodaj",
   "topsites_form_save_button": "Sačuvaj",
   "topsites_form_cancel_button": "Otkaži",
   "topsites_form_url_validation": "Potrebno je unijeti ispravan URL",
   "topsites_form_image_validation": "Neuspjelo učitavanje slike. Probajte drugi URL.",
   "pocket_read_more": "Popularne teme:",
   "pocket_read_even_more": "Prikaži više priča",
-  "pocket_description": "Otkrijte visoko kvalitetan sadržaj koji ste možda propustili, uz pomoć Pocketa koji je sada dio Mozille.",
   "highlights_empty_state": "Započnite pretraživati i pokazat ćemo vam neke od izvrsnih članaka, videa i drugih web stranica prema vašim nedavno posjećenim stranicama ili zabilješkama.",
   "topstories_empty_state": "Provjerite kasnije za više najpopularnijih priča od {provider}. Ne možete čekati? Odaberite popularne teme kako biste pronašli više kvalitetnih priča s cijelog weba.",
   "manual_migration_explanation2": "Probajte Firefox s zabilješkama, historijom i lozinkama iz drugog pretraživača.",
   "manual_migration_cancel_button": "Ne, hvala",
   "manual_migration_import_button": "Uvezi sada",
   "error_fallback_default_info": "Ups, došlo je do greške pri učitavanju ovog sadržaja.",
   "error_fallback_default_refresh_suggestion": "Osvježite stranicu da biste pokušali ponovo.",
   "section_menu_action_remove_section": "Ukloni sekciju",
   "section_menu_action_collapse_section": "Skupi sekciju",
   "section_menu_action_expand_section": "Proširi sekciju",
   "section_menu_action_manage_section": "Upravljaj sekcijom",
   "section_menu_action_add_topsite": "Dodajte omiljenu stranicu",
   "section_menu_action_move_up": "Pomjeri gore",
   "section_menu_action_move_down": "Pomjeri dole",
-  "section_menu_action_privacy_notice": "Polica privatnosti"
+  "section_menu_action_privacy_notice": "Polica privatnosti",
+  "prefs_restore_defaults_button": "Vrati na izvorne vrijednosti",
+  "settings_pane_header": "Postavke novog taba",
+  "settings_pane_body2": "Izaberite šta želite vidjeti na ovoj stranici.",
+  "settings_pane_search_header": "Traži",
+  "settings_pane_search_body": "Pretražite web iz novog taba.",
+  "settings_pane_topsites_body": "Pristupite stranicama koje najčešće posjećujete.",
+  "settings_pane_topsites_options_showmore": "Prikaži dva reda",
+  "settings_pane_highlights_body2": "Pronađite put natrag do zanimljivih stvari koje ste nedavno posjetili ili zabilježili.",
+  "settings_pane_highlights_options_visited": "Posjećene stranice",
+  "settings_pane_snippets_body": "Pročitajte kratke i slatke obavijesti od Mozille o Firefoxu, internet kulturi i povremenim nasumičnim temama.",
+  "settings_pane_done_button": "Gotovo",
+  "settings_pane_topstories_options_sponsored": "Prikaži sponzorisane priče",
+  "pocket_description": "Otkrijte visoko kvalitetan sadržaj koji ste možda propustili, uz pomoć Pocketa koji je sada dio Mozille."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cerca al web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cerca al web" title="Cerca al web"/><button id="searchSubmit" class="search-button" title="Cerca"><span class="sr-only"><span>Cerca</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Llocs principals</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Obre el menú contextual de la secció</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edita aquest lloc"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomanat per Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Obre el menú contextual de la secció</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temes populars:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacats</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Obre el menú contextual de la secció</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalitzeu la pàgina de pestanya nova"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cerca",
   "search_header": "Cerca de {search_engine_name}",
   "search_web_placeholder": "Cerca al web",
   "section_disclaimer_topstories": "Els articles més interessants del web, seleccionats en funció d'allò que llegiu. Gràcies al Pocket, que ara és part de Mozilla.",
   "section_disclaimer_topstories_linktext": "Vegeu com funciona.",
   "section_disclaimer_topstories_buttontext": "Entesos",
   "prefs_home_header": "Contingut d'inici del Firefox",
   "prefs_home_description": "Trieu el contingut que voleu a la pantalla d'inici del Firefox.",
-  "prefs_restore_defaults_button": "Restaura els valors per defecte",
   "prefs_section_rows_option": "{num} fila;{num} files",
   "prefs_search_header": "Cerca web",
   "prefs_topsites_description": "El llocs que visiteu més sovint",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Més informació",
   "prefs_highlights_description": "Una selecció dels llocs que heu desat o visitat",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Actualitzacions de Mozilla i del Firefox",
   "settings_pane_button_label": "Personalitzeu la pàgina de pestanya nova",
-  "settings_pane_header": "Preferències de pestanya nova",
-  "settings_pane_body2": "Trieu què voleu veure en aquesta pàgina.",
-  "settings_pane_search_header": "Cerca",
-  "settings_pane_search_body": "Cerca al web des de la pestanya nova.",
   "settings_pane_topsites_header": "Llocs principals",
-  "settings_pane_topsites_body": "Accediu als llocs web que visiteu més sovint.",
-  "settings_pane_topsites_options_showmore": "Mostra dues files",
   "settings_pane_highlights_header": "Destacats",
-  "settings_pane_highlights_body2": "Torneu a trobar allò més interessant que recentment heu visitat o heu afegit a les adreces d'interès.",
   "settings_pane_highlights_options_bookmarks": "Adreces d'interès",
-  "settings_pane_highlights_options_visited": "Llocs visitats",
   "settings_pane_snippets_header": "Retalls",
-  "settings_pane_snippets_body": "Llegiu notícies curtes de Mozilla sobre el Firefox, la cultura d'internet i, de tant en tant, algun mem.",
-  "settings_pane_done_button": "Fet",
-  "settings_pane_topstories_options_sponsored": "Mostra articles patrocinats",
   "edit_topsites_button_text": "Edita",
   "edit_topsites_edit_button": "Edita aquest lloc",
   "topsites_form_add_header": "Lloc principal nou",
   "topsites_form_edit_header": "Edita el lloc principal",
   "topsites_form_title_label": "Títol",
   "topsites_form_title_placeholder": "Escriviu el títol",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL d'imatge personalitzada",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Previsualització",
   "topsites_form_add_button": "Afegeix",
   "topsites_form_save_button": "Desa",
   "topsites_form_cancel_button": "Cancel·la",
   "topsites_form_url_validation": "Es necessita un URL vàlid",
   "topsites_form_image_validation": "S'ha produït un error en carregar la imatge. Proveu un altre URL.",
   "pocket_read_more": "Temes populars:",
   "pocket_read_even_more": "Mostra més articles",
-  "pocket_description": "Gràcies al Pocket, que ara és part de Mozilla, podeu descobrir contingut d'alta qualitat que d'altra manera potser us passaria per alt.",
   "highlights_empty_state": "Comenceu a navegar i aquí us mostrarem els millors articles, vídeos i altres pàgines que hàgiu visitat o afegit a les adreces d'interès recentment.",
   "topstories_empty_state": "Ja esteu al dia. Torneu més tard per veure més articles populars de {provider}. No podeu esperar? Trieu un tema popular per descobrir els articles més interessants de tot el web.",
   "manual_migration_explanation2": "Proveu el Firefox amb les adreces d'interès, l'historial i les contrasenyes d'un altre navegador.",
   "manual_migration_cancel_button": "No, gràcies",
   "manual_migration_import_button": "Importa-ho ara",
   "error_fallback_default_info": "Vaja, s'ha produït un error en carregar aquest contingut.",
   "error_fallback_default_refresh_suggestion": "Actualitzeu la pàgina per tornar-ho a provar.",
   "section_menu_action_remove_section": "Elimina la secció",
   "section_menu_action_collapse_section": "Redueix la secció",
   "section_menu_action_expand_section": "Amplia la secció",
   "section_menu_action_manage_section": "Gestiona la secció",
   "section_menu_action_add_topsite": "Afegeix com a lloc principal",
   "section_menu_action_move_up": "Mou cap amunt",
   "section_menu_action_move_down": "Mou cap avall",
   "section_menu_action_privacy_notice": "Avís de privadesa",
+  "prefs_restore_defaults_button": "Restaura els valors per defecte",
   "prefs_topstories_description": "Contingut d'alta qualitat que d'altra manera potser us passaria per alt",
-  "prefs_topstories_show_sponsored_label": "Articles patrocinats per {provider}"
+  "prefs_topstories_show_sponsored_label": "Articles patrocinats per {provider}",
+  "settings_pane_header": "Preferències de pestanya nova",
+  "settings_pane_body2": "Trieu què voleu veure en aquesta pàgina.",
+  "settings_pane_search_header": "Cerca",
+  "settings_pane_search_body": "Cerca al web des de la pestanya nova.",
+  "settings_pane_topsites_body": "Accediu als llocs web que visiteu més sovint.",
+  "settings_pane_topsites_options_showmore": "Mostra dues files",
+  "settings_pane_highlights_body2": "Torneu a trobar allò més interessant que recentment heu visitat o heu afegit a les adreces d'interès.",
+  "settings_pane_highlights_options_visited": "Llocs visitats",
+  "settings_pane_snippets_body": "Llegiu notícies curtes de Mozilla sobre el Firefox, la cultura d'internet i, de tant en tant, algun mem.",
+  "settings_pane_done_button": "Fet",
+  "settings_pane_topstories_options_sponsored": "Mostra articles patrocinats",
+  "pocket_description": "Gràcies al Pocket, que ara és part de Mozilla, podeu descobrir contingut d'alta qualitat que d'altra manera potser us passaria per alt."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Tikanöx pa Ajk&#x27;amaya&#x27;l</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Tikanöx pa Ajk&#x27;amaya&#x27;l" title="Tikanöx pa Ajk&#x27;amaya&#x27;l"/><button id="searchSubmit" class="search-button" title="Tikanöx"><span class="sr-only"><span>Tikanöx</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Utziläj taq Ruxaq K&#x27;amaya&#x27;l</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Tijaq ruperaj rokem k&#x27;utsamaj</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tinuk&#x27; re ruxaq k&#x27;amaya&#x27;l re&#x27;"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Chilab&#x27;en ruma Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Tijaq ruperaj rokem k&#x27;utsamaj</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Nima&#x27;q taq Na&#x27;oj:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Taq k&#x27;ewachinïk</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Tijaq ruperaj rokem k&#x27;utsamaj</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tawichinaj ri ruxaq richin K&#x27;ak&#x27;a&#x27; Ruwi&#x27;"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Tikanöx",
   "search_header": "{search_engine_name} Tikanöx",
   "search_web_placeholder": "Tikanöx pa Ajk'amaya'l",
   "section_disclaimer_topstories": "Ri nimaläj taq b'anob'äl pan ajk'amaya'l, cha'on rik'in ri ruxe'el ri nasik'ij. Matyox chi re ri Pocket, wakami k'o rik'in ri Mozilla.",
   "section_disclaimer_topstories_linktext": "Tetamäx rub'eyal nisamäj.",
   "section_disclaimer_topstories_buttontext": "Ütz, xno' pa nuwi'",
   "prefs_home_header": "Etamab'äl pa ri Rutikirib'al Firefox",
   "prefs_home_description": "Tacha' achike etamab'äl nawajo' pa ri Rutikirib'al Firefox ruwäch.",
-  "prefs_restore_defaults_button": "Ketzolïx ri e K'o wi",
   "prefs_section_rows_option": "{num} cholaj:{num} taq cholaj",
   "prefs_search_header": "Ajk'amaya'l Kanoxïk",
   "prefs_topsites_description": "Taq ruxaq yalan ye'atz'ët",
   "prefs_topstories_description2": "Nïm rupam chijun ri ajk'amaya'l, ichinan awuma rat",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Tetamäx ch'aqa' chik",
   "prefs_highlights_description": "Jun rucha'onem ruxaq, ri xayäk o xatz'ët",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Kik'exoj Mozilla chuqa' Firefox",
   "settings_pane_button_label": "Tawichinaj ri ruxaq richin K'ak'a' Ruwi'",
-  "settings_pane_header": "K'ak'a' Ruwi' Taq Ajowab'äl",
-  "settings_pane_body2": "Tacha' ri natzu' pa re ruxaq re'.",
-  "settings_pane_search_header": "Tikanöx",
-  "settings_pane_search_body": "Tikanoj ri k'ak'a' taq ruwi' pa ri K'amaya'l.",
   "settings_pane_topsites_header": "Utziläj taq ruxaq K'amaya'l",
-  "settings_pane_topsites_body": "Katok pa ri taq ajk'amaya'l yalan ye'atz'ët.",
-  "settings_pane_topsites_options_showmore": "Kek'ut pe ka'i' cholaj",
   "settings_pane_highlights_header": "Taq k'ewachinïk",
-  "settings_pane_highlights_body2": "Ke'awila' chik ri jeb'ël taq wachinäq e'atz'eton chuqa' aya'on ketal.",
   "settings_pane_highlights_options_bookmarks": "Taq yaketal",
-  "settings_pane_highlights_options_visited": "Ruxaq k'amaya'l etz'eton",
   "settings_pane_snippets_header": "Taq pir",
-  "settings_pane_snippets_body": "Ke'asik'ij koköj taq rutzijol Mozilla chi rij Firefox, rub'anob'al k'amaya'l, chuqa' jantäq q'olonel wachib'äl.",
-  "settings_pane_done_button": "Xk'is",
-  "settings_pane_topstories_options_sponsored": "Kek'ut pe To'on taq B'anob'äl",
   "edit_topsites_button_text": "Tinuk'",
   "edit_topsites_edit_button": "Tinuk' re ruxaq k'amaya'l re'",
   "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_label": "B'i'aj",
   "topsites_form_title_placeholder": "Tatz'ib'aj jun b'i'aj",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Ichinan Ruwachib'al URL",
@@ -81,26 +69,38 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Nab'ey tzub'al",
   "topsites_form_add_button": "Titz'aqatisäx",
   "topsites_form_save_button": "Tiyak",
   "topsites_form_cancel_button": "Tiq'at",
   "topsites_form_url_validation": "Ütz URL k'atzinel",
   "topsites_form_image_validation": "Man xsamajib'ëx ta ri wachib'äl. Titojtob'ëx rik'in jun chik URL.",
   "pocket_read_more": "Nima'q taq Na'oj:",
   "pocket_read_even_more": "Ketz'et ch'aqa' chik taq B'anob'äl",
-  "pocket_description": "Ke'awila' utziläj taq rupam pa Pocket, wakami ruch'akulan ri' rik'in Mozilla, ri rik'in jub'a' xtasäch rutz'etik.",
   "highlights_empty_state": "Katok pa k'amaya'l richin niqak'üt chawäch jeb'ël taq cholna'oj, taq silowachib'äl, chuqa' ch'aqa' chik taq ruxaq k'a b'a' ke'atz'ët o aya'on kan ketal wawe'.",
   "topstories_empty_state": "Xaq'i'. Katzolin chik pe richin ye'ak'ül ri utziläj taq rub'anob'al {provider}. ¿La man noyob'en ta? Tacha' jun ütz na'oj richin nawïl ch'aqa' chik taq b'anob'äl e k'o chi rij ri ajk'amaya'l.",
   "manual_migration_explanation2": "Tatojtob'ej Firefox kik'in ri taq ruyaketal, runatab'äl chuqa' taq ewan rutzij jun chik okik'amaya'l.",
   "manual_migration_cancel_button": "Mani matyox",
   "manual_migration_import_button": "Tijik' pe",
   "error_fallback_default_info": "Uy, k'o jun itzel xel toq nisamajib'ëx re rupam re'.",
   "error_fallback_default_refresh_suggestion": "Titzolïx ruxaq richin nitojtob'ëx chik.",
   "section_menu_action_remove_section": "Tiyuj Tanaj",
   "section_menu_action_collapse_section": "Tiwulüx Peraj",
   "section_menu_action_expand_section": "Tirik' Peraj",
   "section_menu_action_manage_section": "Tinuk'samajïx Peraj",
   "section_menu_action_add_topsite": "Titz'aqatisäx K'ïy Ruwinaq Ruxaq K'amaya'l",
   "section_menu_action_move_up": "Tijotob'äx",
   "section_menu_action_move_down": "Tiqasäx qa",
   "section_menu_action_privacy_notice": "Ichinan na'oj",
-  "prefs_topstories_show_sponsored_label": "{provider} To'on taq B'anob'äl"
+  "prefs_restore_defaults_button": "Ketzolïx ri e K'o wi",
+  "prefs_topstories_show_sponsored_label": "{provider} To'on taq B'anob'äl",
+  "settings_pane_header": "K'ak'a' Ruwi' Taq Ajowab'äl",
+  "settings_pane_body2": "Tacha' ri natzu' pa re ruxaq re'.",
+  "settings_pane_search_header": "Tikanöx",
+  "settings_pane_search_body": "Tikanoj ri k'ak'a' taq ruwi' pa ri K'amaya'l.",
+  "settings_pane_topsites_body": "Katok pa ri taq ajk'amaya'l yalan ye'atz'ët.",
+  "settings_pane_topsites_options_showmore": "Kek'ut pe ka'i' cholaj",
+  "settings_pane_highlights_body2": "Ke'awila' chik ri jeb'ël taq wachinäq e'atz'eton chuqa' aya'on ketal.",
+  "settings_pane_highlights_options_visited": "Ruxaq k'amaya'l etz'eton",
+  "settings_pane_snippets_body": "Ke'asik'ij koköj taq rutzijol Mozilla chi rij Firefox, rub'anob'al k'amaya'l, chuqa' jantäq q'olonel wachib'äl.",
+  "settings_pane_done_button": "Xk'is",
+  "settings_pane_topstories_options_sponsored": "Kek'ut pe To'on taq B'anob'äl",
+  "pocket_description": "Ke'awila' utziläj taq rupam pa Pocket, wakami ruch'akulan ri' rik'in Mozilla, ri rik'in jub'a' xtasäch rutz'etik."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Ağ&#x27;da qıdır</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Ağ&#x27;da qıdır" title="Ağ&#x27;da qıdır"/><button id="searchSubmit" class="search-button" title="Qıdır"><span class="sr-only"><span>Qıdır</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Zirvedeki Saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket tevsiyeli</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Yüksek-ışıtmalar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsini aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Qıdır",
   "search_header": "{search_engine_name} Qıdırması",
   "search_web_placeholder": "Ağ'da qıdır",
   "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": "Tamam, añladım",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Ağ Qıdırması",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Daha çoq ögren",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Qıdır",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the websites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Tahrir Et",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "New Top Site",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Serlevha",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,25 +69,25 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ögbaqış",
   "topsites_form_add_button": "Ekle",
   "topsites_form_save_button": "Saqla",
   "topsites_form_cancel_button": "Vazgeç",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
-  "section_menu_action_privacy_notice": "Hususiyat Tebliği"
+  "section_menu_action_privacy_notice": "Hususiyat Tebliği",
+  "settings_pane_search_header": "Qıdır"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Vyhledat na webu</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Vyhledat na webu" title="Vyhledat na webu"/><button id="searchSubmit" class="search-button" title="Vyhledat"><span class="sr-only"><span>Vyhledat</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top stránky</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otevřít kontextovou nabídku sekce</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upravit tuto stránku"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Doporučení ze služby Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otevřít kontextovou nabídku sekce</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populární témata:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Vybrané</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otevřít kontextovou nabídku sekce</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Přizpůsobení stránky nového panelu"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Vyhledat",
   "search_header": "Vyhledat pomocí {search_engine_name}",
   "search_web_placeholder": "Vyhledat na webu",
   "section_disclaimer_topstories": "Nejzajímavější příběhy na webu vybrané podle toho, co sami čtete. To je služba Pocket od Mozilly.",
   "section_disclaimer_topstories_linktext": "Zjistit, jak to funguje.",
   "section_disclaimer_topstories_buttontext": "Ok, rozumím",
   "prefs_home_header": "Obsah domovské stránky Firefoxu",
   "prefs_home_description": "Vyberte obsah, který chcete mít na výchozí domovské stránce Firefoxu.",
-  "prefs_restore_defaults_button": "Obnovit výchozí",
   "prefs_section_rows_option": "{num} řádek;{num} řádky;{num} řádků",
   "prefs_search_header": "Vyhledávání na webu",
   "prefs_topsites_description": "Nejnavštěvovanější stránky",
   "prefs_topstories_description2": "Skvělý obsah z celého webu, vybraný speciálně pro vás",
   "prefs_topstories_options_sponsored_label": "Sponzorované příběhy",
   "prefs_topstories_sponsored_learn_more": "Zjistit více",
   "prefs_highlights_description": "Výběr z uložených nebo navštívených stránek",
   "prefs_highlights_options_visited_label": "Navštívené stránky",
   "prefs_highlights_options_download_label": "Nedávná stahování",
   "prefs_highlights_options_pocket_label": "Stránky uložené do služby Pocket",
   "prefs_snippets_description": "Informace od Mozilly a o Firefoxu",
   "settings_pane_button_label": "Přizpůsobení stránky nového panelu",
-  "settings_pane_header": "Předvolby nového panelu",
-  "settings_pane_body2": "Vyberte, co chcete na této stránce vidět.",
-  "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 k nejčastěji navštěvovaným stránkám.",
-  "settings_pane_topsites_options_showmore": "Zobrazit dva řádky",
   "settings_pane_highlights_header": "Vybrané",
-  "settings_pane_highlights_body2": "Najděte cestu zpět k zajímavým věcem, které jste nedávno viděli nebo uložili do záložek.",
   "settings_pane_highlights_options_bookmarks": "Záložky",
-  "settings_pane_highlights_options_visited": "Navštívené stránky",
   "settings_pane_snippets_header": "Útržky",
-  "settings_pane_snippets_body": "Přečtěte si krátké zprávy od Mozilly o Firefoxu, internetu a občas i náhodné memy a hlášky.",
-  "settings_pane_done_button": "Hotovo",
-  "settings_pane_topstories_options_sponsored": "Zobrazit sponzorované příběhy",
   "edit_topsites_button_text": "Upravit",
   "edit_topsites_edit_button": "Upravit tuto stránku",
   "topsites_form_add_header": "Nová top stránka",
   "topsites_form_edit_header": "Upravit top stránku",
   "topsites_form_title_label": "Nadpis",
   "topsites_form_title_placeholder": "Zadejte název",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL adresa vlastního obrázku",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Náhled",
   "topsites_form_add_button": "Přidat",
   "topsites_form_save_button": "Uložit",
   "topsites_form_cancel_button": "Zrušit",
   "topsites_form_url_validation": "Je vyžadována platná URL",
   "topsites_form_image_validation": "Obrázek se nepodařilo načíst. Zkuste jinou URL adresu.",
   "pocket_read_more": "Populární témata:",
   "pocket_read_even_more": "Zobrazit více příběhů",
-  "pocket_description": "Objevte obsah s vysokou kvalitou, který byste mohli jinak propásnout. Pomůže vám služby Pocket od Mozilly.",
   "highlights_empty_state": "Začněte prohlížet a my vám zde ukážeme některé skvělé články, videa a další stránky, které jste nedávno viděli nebo uložili do záložek.",
   "topstories_empty_state": "Už jste všechno přečetli. Další příběhy ze služby {provider} tu najdete zase později. Ale pokud se nemůžete dočkat, vyberte své oblíbené téma a podívejte se na další velké příběhy z celého webu.",
   "manual_migration_explanation2": "Vyzkoušejte Firefox se záložkami, historií a hesly z jiného vašeho prohlížeče.",
   "manual_migration_cancel_button": "Ne, děkuji",
   "manual_migration_import_button": "Importovat nyní",
   "error_fallback_default_info": "Jejda, při načítání tohoto obsahu se něco pokazilo.",
   "error_fallback_default_refresh_suggestion": "Obnovte prosím stránku a zkuste to znovu.",
   "section_menu_action_remove_section": "Odebrat sekci",
   "section_menu_action_collapse_section": "Sbalit sekci",
   "section_menu_action_expand_section": "Rozbalit sekci",
   "section_menu_action_manage_section": "Nastavení sekce",
   "section_menu_action_add_topsite": "Přidat mezi top stránky",
   "section_menu_action_move_up": "Posunout nahoru",
   "section_menu_action_move_down": "Posunout dolů",
-  "section_menu_action_privacy_notice": "Zásady ochrany osobních údajů"
+  "section_menu_action_privacy_notice": "Zásady ochrany osobních údajů",
+  "prefs_restore_defaults_button": "Obnovit výchozí",
+  "settings_pane_header": "Předvolby nového panelu",
+  "settings_pane_body2": "Vyberte, co chcete na této stránce vidět.",
+  "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_body": "Přístup k nejčastěji navštěvovaným stránkám.",
+  "settings_pane_topsites_options_showmore": "Zobrazit dva řádky",
+  "settings_pane_highlights_body2": "Najděte cestu zpět k zajímavým věcem, které jste nedávno viděli nebo uložili do záložek.",
+  "settings_pane_highlights_options_visited": "Navštívené stránky",
+  "settings_pane_snippets_body": "Přečtěte si krátké zprávy od Mozilly o Firefoxu, internetu a občas i náhodné memy a hlášky.",
+  "settings_pane_done_button": "Hotovo",
+  "settings_pane_topstories_options_sponsored": "Zobrazit sponzorované příběhy",
+  "pocket_description": "Objevte obsah s vysokou kvalitou, který byste mohli jinak propásnout. Pomůže vám služby Pocket od Mozilly."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Chwilio&#x27;r We</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Chwilio&#x27;r We" title="Chwilio&#x27;r We"/><button id="searchSubmit" class="search-button" title="Chwilio"><span class="sr-only"><span>Chwilio</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Hoff Wefannau</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Agor dewislen cyd-destun yr adran</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Golygu&#x27;r wefan"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Argymhellwyd gan Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Agor dewislen cyd-destun yr adran</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Pynciau Poblogaidd:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Goreuon</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Agor dewislen cyd-destun yr adran</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Cyfaddasu eich tudalen Tab Newydd"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Chwilio",
   "search_header": "{search_engine_name} Chwilio",
   "search_web_placeholder": "Chwilio'r We",
   "section_disclaimer_topstories": "Y straeon mwyaf diddorol ar y we, wedi eu dewis ar sail yr hyn rydych yn eu darllen. Gan Pocket, sydd nawr yn rhan o Mozilla.",
   "section_disclaimer_topstories_linktext": "Dyma sut mae'n gweithio...",
   "section_disclaimer_topstories_buttontext": "Iawn, deall",
   "prefs_home_header": "Cynnwys Cartref Firefox",
   "prefs_home_description": "Dewis pa gynnwys rydych eisiau ar eich sgrin Firefox Cartref.",
-  "prefs_restore_defaults_button": "Adfer y Rhagosodedig",
   "prefs_section_rows_option": "{num} rhes;{num} rhes",
   "prefs_search_header": "Chwilio'r We",
   "prefs_topsites_description": "Y gwefannau rydych yn ymweld â nhw amlaf",
   "prefs_topstories_description2": "Cynnwys gwych o ar draws y we, wedi ei ddewis yn arbennig i chi",
   "prefs_topstories_options_sponsored_label": "Straeon wedi eu Noddi",
   "prefs_topstories_sponsored_learn_more": "Dysgu rhagor",
   "prefs_highlights_description": "Detholiad o wefannau rydych wedi eu cadw neu ymweld â nhw",
   "prefs_highlights_options_visited_label": "Tudalennau Ymwelwyd â Nhw",
   "prefs_highlights_options_download_label": "Llwytho i Lawr Mwyaf Diweddar",
   "prefs_highlights_options_pocket_label": "Tudalennau wedi eu Cadw i Pocket",
   "prefs_snippets_description": "Diweddariadau gan Mozilla a Firefox",
   "settings_pane_button_label": "Cyfaddasu eich tudalen Tab Newydd",
-  "settings_pane_header": "Dewisiadau Tab Newydd",
-  "settings_pane_body2": "Dewis beth fyddwch yn ei weld ar y dudalen hon.",
-  "settings_pane_search_header": "Chwilio",
-  "settings_pane_search_body": "Chwilio'r We o'ch tab newydd.",
   "settings_pane_topsites_header": "Hoff Wefannau",
-  "settings_pane_topsites_body": "Cael mynediad at y gwefannau rydych yn ymweld â nhw amlaf.",
-  "settings_pane_topsites_options_showmore": "Dangos dwy res",
   "settings_pane_highlights_header": "Goreuon",
-  "settings_pane_highlights_body2": "Mynd yn ôl at bethau diddorol rydych wedi ymweld â nhw neu osod nod tudalen iddyn nhw.",
   "settings_pane_highlights_options_bookmarks": "Nodau Tudalen",
-  "settings_pane_highlights_options_visited": "Gwefannau Ymwelwyd â Nhw",
   "settings_pane_snippets_header": "Tameidiau",
-  "settings_pane_snippets_body": "Darllenwch ddiweddariadau cryno gan Mozilla am Firefox, diwylliant y Rhyngrwyd ac weithiau meme ar hap.",
-  "settings_pane_done_button": "Gorffen",
-  "settings_pane_topstories_options_sponsored": "Dangos Straeon wedi eu Noddi",
   "edit_topsites_button_text": "Golygu",
   "edit_topsites_edit_button": "Golygu'r wefan",
   "topsites_form_add_header": "Hoff Wefan Newydd",
   "topsites_form_edit_header": "Golygu'r Hoff Wefan",
   "topsites_form_title_label": "Teitl",
   "topsites_form_title_placeholder": "Rhoi teitl",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL Delwedd Gyfaddas",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Rhagolwg",
   "topsites_form_add_button": "Ychwanegu",
   "topsites_form_save_button": "Cadw",
   "topsites_form_cancel_button": "Diddymu",
   "topsites_form_url_validation": "Mae angen URL Ddilys",
   "topsites_form_image_validation": "Methodd y ddelwedd â llwytho. Defnyddiwch URL gwahanol.",
   "pocket_read_more": "Pynciau Poblogaidd:",
   "pocket_read_even_more": "Gweld Rhagor o Straeon",
-  "pocket_description": "Darganfyddwch gynnwys o ansawdd uchel y byddech o bosib yn eu colli, gyda chymorth gan Pocket, sy nawr yn rhan o Mozilla.",
   "highlights_empty_state": "Cychwynnwch bori ac fe ddangoswn rhai erthyglau, fideos a thudalennau eraill difyr rydych wedi ymweld â nhw'n ddiweddar neu wedi gosod nod tudalen arnyn nhw yma.",
   "topstories_empty_state": "Rydych wedi dal i fynDewch nôl rhywbryd eto am fwy o'r straeon pwysicaf gan {provider}. Methu aros? Dewiswch bwnc poblogaidd i ganfod straeon da o ar draws y we. ",
   "manual_migration_explanation2": "Profwch Firefox gyda nodau tudalen, hanes a chyfrineiriau o borwr arall.",
   "manual_migration_cancel_button": "Dim Diolch",
   "manual_migration_import_button": "Mewnforio Nawr",
   "error_fallback_default_info": "Wps, aeth rhywbeth o'i le wrth llwytho'r cynnwys hwn.",
   "error_fallback_default_refresh_suggestion": "Adnewyddu'r dudalen i geisio eto.",
   "section_menu_action_remove_section": "Tynnu'r Adran",
   "section_menu_action_collapse_section": "Cau'r Adran",
   "section_menu_action_expand_section": "Estyn yr Adran",
   "section_menu_action_manage_section": "Rheoli'r Adran",
   "section_menu_action_add_topsite": "Ychwanegu Hoff Wefan",
   "section_menu_action_move_up": "Symud i Fyny",
   "section_menu_action_move_down": "Symud i Lawr",
-  "section_menu_action_privacy_notice": "Hysbysiad Preifatrwydd"
+  "section_menu_action_privacy_notice": "Hysbysiad Preifatrwydd",
+  "prefs_restore_defaults_button": "Adfer y Rhagosodedig",
+  "settings_pane_header": "Dewisiadau Tab Newydd",
+  "settings_pane_body2": "Dewis beth fyddwch yn ei weld ar y dudalen hon.",
+  "settings_pane_search_header": "Chwilio",
+  "settings_pane_search_body": "Chwilio'r We o'ch tab newydd.",
+  "settings_pane_topsites_body": "Cael mynediad at y gwefannau rydych yn ymweld â nhw amlaf.",
+  "settings_pane_topsites_options_showmore": "Dangos dwy res",
+  "settings_pane_highlights_body2": "Mynd yn ôl at bethau diddorol rydych wedi ymweld â nhw neu osod nod tudalen iddyn nhw.",
+  "settings_pane_highlights_options_visited": "Gwefannau Ymwelwyd â Nhw",
+  "settings_pane_snippets_body": "Darllenwch ddiweddariadau cryno gan Mozilla am Firefox, diwylliant y Rhyngrwyd ac weithiau meme ar hap.",
+  "settings_pane_done_button": "Gorffen",
+  "settings_pane_topstories_options_sponsored": "Dangos Straeon wedi eu Noddi",
+  "pocket_description": "Darganfyddwch gynnwys o ansawdd uchel y byddech o bosib yn eu colli, gyda chymorth gan Pocket, sy nawr yn rhan o Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Søg på internettet</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Søg på internettet" title="Søg på internettet"/><button id="searchSubmit" class="search-button" title="Søg"><span class="sr-only"><span>Søg</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Mest besøgte websider</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åbn genvejsmenuen afsnit</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne webside"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Anbefalet af Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åbn genvejsmenuen afsnit</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populære emner:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Fremhævede</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åbn genvejsmenuen afsnit</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tilpas siden Nyt faneblad"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Søg",
   "search_header": "{search_engine_name}-søgning",
   "search_web_placeholder": "Søg på internettet",
   "section_disclaimer_topstories": "De mest interessante historier på nettet, udvalgt på baggrund af det, du læser. Fra Pocket, nu en del af Mozilla.",
   "section_disclaimer_topstories_linktext": "Læs hvordan det fungerer.",
   "section_disclaimer_topstories_buttontext": "Ok, forstået",
   "prefs_home_header": "Indhold på Firefox' startside",
   "prefs_home_description": "Vælg det indhold, du vil have vist på din startside i Firefox.",
-  "prefs_restore_defaults_button": "Gendan standarder",
   "prefs_section_rows_option": "{num} række;{num} rækker",
   "prefs_search_header": "Søgning på internettet",
   "prefs_topsites_description": "Mest besøgte websider",
   "prefs_topstories_description2": "Spændende indhold fra nettet, specielt udvalgt til dig",
   "prefs_topstories_options_sponsored_label": "Sponsorerede historier",
   "prefs_topstories_sponsored_learn_more": "Læs mere",
   "prefs_highlights_description": "Et afsnit med sider, du har gemt eller besøgt",
   "prefs_highlights_options_visited_label": "Besøgte sider",
   "prefs_highlights_options_download_label": "Seneste filhentninger",
   "prefs_highlights_options_pocket_label": "Sider gemt til Pocket",
   "prefs_snippets_description": "Nyheder fra Mozilla og Firefox",
   "settings_pane_button_label": "Tilpas siden Nyt faneblad",
-  "settings_pane_header": "Indstillinger for Nyt faneblad",
-  "settings_pane_body2": "Vælg, hvad du vil se på denne side.",
-  "settings_pane_search_header": "Søgning",
-  "settings_pane_search_body": "Søg på nettet fra Nyt faneblad.",
   "settings_pane_topsites_header": "Mest besøgte websider",
-  "settings_pane_topsites_body": "Adgang til de websider, du besøger oftest.",
-  "settings_pane_topsites_options_showmore": "Vis to rækker",
   "settings_pane_highlights_header": "Fremhævede",
-  "settings_pane_highlights_body2": "Find tilbage til interessant indhold, du har besøgt eller gemt et bogmærke til for nylig.",
   "settings_pane_highlights_options_bookmarks": "Bogmærker",
-  "settings_pane_highlights_options_visited": "Besøgte websider",
   "settings_pane_snippets_header": "Notitser",
-  "settings_pane_snippets_body": "Læs korte opdateringer fra Mozilla om Firefox, internet-kultur og lidt underholdning fra tid til anden.",
-  "settings_pane_done_button": "Færdig",
-  "settings_pane_topstories_options_sponsored": "Vis sponsorerede historier",
   "edit_topsites_button_text": "Rediger",
   "edit_topsites_edit_button": "Rediger denne webside",
   "topsites_form_add_header": "Ny webside",
   "topsites_form_edit_header": "Rediger mest besøgte webside",
   "topsites_form_title_label": "Titel",
   "topsites_form_title_placeholder": "Indtast en titel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL til selvvalgt billede",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vis prøve",
   "topsites_form_add_button": "Tilføj",
   "topsites_form_save_button": "Gem",
   "topsites_form_cancel_button": "Annuller",
   "topsites_form_url_validation": "Gyldig URL påkrævet",
   "topsites_form_image_validation": "Kunne ikke indlæse billede. Prøv en anden URL.",
   "pocket_read_more": "Populære emner:",
   "pocket_read_even_more": "Se flere historier",
-  "pocket_description": "Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla.",
   "highlights_empty_state": "Gå i gang med at browse, så vil vi vise dig nogle af de artikler, videoer og andre sider, du har besøgt eller gemt et bogmærke til for nylig.",
   "topstories_empty_state": "Der er ikke flere nye historier. Kom tilbage senere for at se flere tophistorier fra {provider}. Kan du ikke vente? Vælg et populært emne og find flere spændende historier fra hele verden.",
   "manual_migration_explanation2": "Prøv Firefox med bogmærkerne, historikken og adgangskoderne fra en anden browser.",
   "manual_migration_cancel_button": "Nej tak",
   "manual_migration_import_button": "Importer nu",
   "error_fallback_default_info": "Hovsa. Noget gik galt ved indlæsning af indholdet.",
   "error_fallback_default_refresh_suggestion": "Genindlæs siden og prøv igen.",
   "section_menu_action_remove_section": "Fjern afsnit",
   "section_menu_action_collapse_section": "Sammenfold afsnit",
   "section_menu_action_expand_section": "Udvid afsnit",
   "section_menu_action_manage_section": "Håndter afsnit",
   "section_menu_action_add_topsite": "Tilføj ny webside",
   "section_menu_action_move_up": "Flyt op",
   "section_menu_action_move_down": "Flyt ned",
-  "section_menu_action_privacy_notice": "Privatlivspolitik"
+  "section_menu_action_privacy_notice": "Privatlivspolitik",
+  "prefs_restore_defaults_button": "Gendan standarder",
+  "settings_pane_header": "Indstillinger for Nyt faneblad",
+  "settings_pane_body2": "Vælg, hvad du vil se på denne side.",
+  "settings_pane_search_header": "Søgning",
+  "settings_pane_search_body": "Søg på nettet fra Nyt faneblad.",
+  "settings_pane_topsites_body": "Adgang til de websider, du besøger oftest.",
+  "settings_pane_topsites_options_showmore": "Vis to rækker",
+  "settings_pane_highlights_body2": "Find tilbage til interessant indhold, du har besøgt eller gemt et bogmærke til for nylig.",
+  "settings_pane_highlights_options_visited": "Besøgte websider",
+  "settings_pane_snippets_body": "Læs korte opdateringer fra Mozilla om Firefox, internet-kultur og lidt underholdning fra tid til anden.",
+  "settings_pane_done_button": "Færdig",
+  "settings_pane_topstories_options_sponsored": "Vis sponsorerede historier",
+  "pocket_description": "Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Das Web durchsuchen</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Das Web durchsuchen" title="Das Web durchsuchen"/><button id="searchSubmit" class="search-button" title="Suchen"><span class="sr-only"><span>Suchen</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Wichtige Seiten</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontextmenü des Abschnitts öffnen</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Diese Website bearbeiten"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Empfohlen von Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontextmenü des Abschnitts öffnen</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Beliebte Themen:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Überblick</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontextmenü des Abschnitts öffnen</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Einstellungen für neue Tabs anpassen"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Suchen",
   "search_header": "{search_engine_name}-Suche",
   "search_web_placeholder": "Das Web durchsuchen",
   "section_disclaimer_topstories": "Die interessanten Geschichten im Internet, ausgewählt nach Ihrem Geschmack. Von Pocket, jetzt Teil von Mozilla.",
   "section_disclaimer_topstories_linktext": "Erfahren Sie, wie es funktioniert.",
   "section_disclaimer_topstories_buttontext": "Ok, verstanden",
   "prefs_home_header": "Inhalte des Firefox-Startbildschirms",
   "prefs_home_description": "Wählen Sie, welche Inhalte auf Ihrem Firefox-Startbildschirm angezeigt werden sollen.",
-  "prefs_restore_defaults_button": "Standard wiederherstellen",
   "prefs_section_rows_option": "{num} Zeile;{num} Zeilen",
   "prefs_search_header": "Internetsuche",
   "prefs_topsites_description": "Die von die Ihnen am meisten besuchten Websites",
   "prefs_topstories_description2": "Tolle Inhalte aus dem ganzen Internet, für Sie personalisiert",
   "prefs_topstories_options_sponsored_label": "Gesponserte Geschichten",
   "prefs_topstories_sponsored_learn_more": "Weitere Informationen",
   "prefs_highlights_description": "Eine Auswahl von Websites, die Sie gespeichert oder besucht haben",
   "prefs_highlights_options_visited_label": "Besuchte Seiten",
   "prefs_highlights_options_download_label": "Neueste Downloads",
   "prefs_highlights_options_pocket_label": "Bei Pocket gespeicherte Seiten",
   "prefs_snippets_description": "Neuigkeiten von Mozilla und Firefox",
   "settings_pane_button_label": "Einstellungen für neue Tabs anpassen",
-  "settings_pane_header": "Einstellungen für neue Tabs",
-  "settings_pane_body2": "Wählen Sie aus, was auf dieser Seite angezeigt wird.",
-  "settings_pane_search_header": "Suche",
-  "settings_pane_search_body": "Suchen Sie aus einem neuen Tab im Internet.",
   "settings_pane_topsites_header": "Wichtige Seiten",
-  "settings_pane_topsites_body": "Schneller Zugriff auf Ihre meistbesuchten Websites.",
-  "settings_pane_topsites_options_showmore": "Zwei Reihen anzeigen",
   "settings_pane_highlights_header": "Überblick",
-  "settings_pane_highlights_body2": "Finden Sie schnell wieder zu den wichtigen Seiten zurück, die Sie kürzlich besucht oder als Lesezeichen gespeichert haben.",
   "settings_pane_highlights_options_bookmarks": "Lesezeichen",
-  "settings_pane_highlights_options_visited": "Besuchte Websites",
   "settings_pane_snippets_header": "Kurzinformationen",
-  "settings_pane_snippets_body": "Lesen Sie kurze Neuigkeiten von Mozilla über Firefox, die Internetkultur und gelegentlich mal ein Meme.",
-  "settings_pane_done_button": "Fertig",
-  "settings_pane_topstories_options_sponsored": "Gesponserte Geschichten anzeigen",
   "edit_topsites_button_text": "Bearbeiten",
   "edit_topsites_edit_button": "Diese Website bearbeiten",
   "topsites_form_add_header": "Neue wichtige Seite",
   "topsites_form_edit_header": "Wichtige Seite bearbeiten",
   "topsites_form_title_label": "Titel",
   "topsites_form_title_placeholder": "Name eingeben",
   "topsites_form_url_label": "Adresse",
   "topsites_form_image_url_label": "URL von benutzerdefinierter Grafik",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vorschau",
   "topsites_form_add_button": "Hinzufügen",
   "topsites_form_save_button": "Speichern",
   "topsites_form_cancel_button": "Abbrechen",
   "topsites_form_url_validation": "Gültige URL erforderlich",
   "topsites_form_image_validation": "Grafik konnte nicht geladen werden. Verwenden Sie eine andere URL.",
   "pocket_read_more": "Beliebte Themen:",
   "pocket_read_even_more": "Weitere Nachrichten ansehen",
-  "pocket_description": "Entdecken Sie qualitativ hochwertige Inhalte mithilfe von Pocket (jetzt Teil von Mozilla), die Sie ansonsten verpassen würden.",
   "highlights_empty_state": "Surfen Sie los und wir zeigen Ihnen hier einige der interessanten Artikel, Videos und anderen Seiten, die Sie kürzlich besucht oder als Lesezeichen gespeichert haben.",
   "topstories_empty_state": "Jetzt kennen Sie die Neuigkeiten. Schauen Sie später wieder vorbei, um neue Informationen von {provider} zu erhalten. Können Sie nicht warten? Wählen Sie ein beliebtes Thema und lesen Sie weitere interessante Geschichten aus dem Internet.",
   "manual_migration_explanation2": "Probieren Sie Firefox aus und importieren Sie die Lesezeichen, Chronik und Passwörter eines anderen Browsers.",
   "manual_migration_cancel_button": "Nein, danke",
   "manual_migration_import_button": "Jetzt importieren",
   "error_fallback_default_info": "Beim Laden dieses Inhalts ist ein Fehler aufgetreten.",
   "error_fallback_default_refresh_suggestion": "Aktualisieren Sie die Seite, um es erneut zu versuchen.",
   "section_menu_action_remove_section": "Abschnitt entfernen",
   "section_menu_action_collapse_section": "Abschnitt einklappen",
   "section_menu_action_expand_section": "Abschnitt ausklappen",
   "section_menu_action_manage_section": "Abschnitt verwalten",
   "section_menu_action_add_topsite": "Wichtige Seite hinzufügen",
   "section_menu_action_move_up": "Nach oben schieben",
   "section_menu_action_move_down": "Nach unten schieben",
-  "section_menu_action_privacy_notice": "Datenschutzhinweis"
+  "section_menu_action_privacy_notice": "Datenschutzhinweis",
+  "prefs_restore_defaults_button": "Standard wiederherstellen",
+  "settings_pane_header": "Einstellungen für neue Tabs",
+  "settings_pane_body2": "Wählen Sie aus, was auf dieser Seite angezeigt wird.",
+  "settings_pane_search_header": "Suche",
+  "settings_pane_search_body": "Suchen Sie aus einem neuen Tab im Internet.",
+  "settings_pane_topsites_body": "Schneller Zugriff auf Ihre meistbesuchten Websites.",
+  "settings_pane_topsites_options_showmore": "Zwei Reihen anzeigen",
+  "settings_pane_highlights_body2": "Finden Sie schnell wieder zu den wichtigen Seiten zurück, die Sie kürzlich besucht oder als Lesezeichen gespeichert haben.",
+  "settings_pane_highlights_options_visited": "Besuchte Websites",
+  "settings_pane_snippets_body": "Lesen Sie kurze Neuigkeiten von Mozilla über Firefox, die Internetkultur und gelegentlich mal ein Meme.",
+  "settings_pane_done_button": "Fertig",
+  "settings_pane_topstories_options_sponsored": "Gesponserte Geschichten anzeigen",
+  "pocket_description": "Entdecken Sie qualitativ hochwertige Inhalte mithilfe von Pocket (jetzt Teil von Mozilla), die Sie ansonsten verpassen würden."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Web pśepytaś</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Web pśepytaś" title="Web pśepytaś"/><button id="searchSubmit" class="search-button" title="Pytaś"><span class="sr-only"><span>Pytaś</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Nejcesćej woglědane sedła</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wótrězka wócyniś</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Toś to sedło wobźěłaś"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Wót Pocket dopórucony</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wótrězka wócyniś</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Woblubowane temy:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Wjerški</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wótrězka wócyniś</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Bok wašogo nowego rejtarka pśiměriś"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Pytaś",
   "search_header": "Z {search_engine_name} pytaś",
   "search_web_placeholder": "Web pśepytaś",
   "section_disclaimer_topstories": "Nejzajmnjejše tšojenja we webje, wubrane na zakłaźe togo, což sćo cytał. Z Pocket, něnto źěl Mozilla.",
   "section_disclaimer_topstories_linktext": "Zgóńśo, kak to funkcioněrujo.",
   "section_disclaimer_topstories_buttontext": "W pórěźe, som zrozměł",
   "prefs_home_header": "Wopśimjeśe startowego boka Firefox",
   "prefs_home_description": "Wubjeŕśo, kótare wopśimjeśe cośo na swójej startowej wobrazowce Firefox měś.",
-  "prefs_restore_defaults_button": "Standard wótnowiś",
   "prefs_section_rows_option": "{num} smužka;{num} smužce;{num}smužki;{num} smužkow",
   "prefs_search_header": "Webpytanje",
   "prefs_topsites_description": "Sedła, ku kótarymž se nejcesćej woglědujośo",
   "prefs_topstories_description2": "Wjelicne wopśimjeśe z cełego weba, wubrane specielnje za was",
   "prefs_topstories_options_sponsored_label": "Sponsorowane tšojenja pokazaś",
   "prefs_topstories_sponsored_learn_more": "Dalšne informacije",
   "prefs_highlights_description": "Wuběrk websedłow, kótarež sćo składował abo se woglědał",
   "prefs_highlights_options_visited_label": "Woglědane boki",
   "prefs_highlights_options_download_label": "Nejnowše ześěgnjenje",
   "prefs_highlights_options_pocket_label": "Boki skłaźone do Pocket",
   "prefs_snippets_description": "Aktualizacije wót Mozilla a Firefox",
   "settings_pane_button_label": "Bok wašogo nowego rejtarka pśiměriś",
-  "settings_pane_header": "Nastajenja nowego rejtarka składowaś",
-  "settings_pane_body2": "Wubjeŕśo, což se na toś tom boku pokazujo.",
-  "settings_pane_search_header": "Pytaś",
-  "settings_pane_search_body": "Pśepytajśo web ze swójogo nowego rejtarka.",
   "settings_pane_topsites_header": "Nejcesćej woglědane sedła",
-  "settings_pane_topsites_body": "Wócyńśo websedła, kótarež sćo se nejcesćej woglědał.",
-  "settings_pane_topsites_options_showmore": "Dwě smužki pokazaś",
   "settings_pane_highlights_header": "Wjerški",
-  "settings_pane_highlights_body2": "Namakajśo swóju drogu slědk k zajmnym bokam, kótarež sćo se njedawno woglědał abo ako cytańske znamjenja składł.",
   "settings_pane_highlights_options_bookmarks": "Cytańske znamjenja",
-  "settings_pane_highlights_options_visited": "Woglědane sedła",
   "settings_pane_snippets_header": "Kuski",
-  "settings_pane_snippets_body": "Cytajśo krotke aktualizacije wót Mozilla wó Firefox, internetnej kulturje a casy meme.",
-  "settings_pane_done_button": "Gótowo",
-  "settings_pane_topstories_options_sponsored": "Sponsorowane tšojenja pokazaś",
   "edit_topsites_button_text": "Wobźěłaś",
   "edit_topsites_edit_button": "Toś to sedło wobźěłaś",
   "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_label": "Titel",
   "topsites_form_title_placeholder": "Titel zapódaś",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL swójskego wobraza",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Pśeglěd",
   "topsites_form_add_button": "Pśidaś",
   "topsites_form_save_button": "Składowaś",
   "topsites_form_cancel_button": "Pśetergnuś",
   "topsites_form_url_validation": "Płaśiwy URL trěbny",
   "topsites_form_image_validation": "Wobraz njedajo se zacytaś. Wopytajśo drugi URL.",
   "pocket_read_more": "Woblubowane temy:",
   "pocket_read_even_more": "Dalšne powěźeńki se woglědaś",
-  "pocket_description": "Namakajśo wopśimjeśe wusokeje kwality, kótarež by hować wjelgin felowało, z pomocu Pocket, kótaryž jo něnto źěl Mozilla.",
   "highlights_empty_state": "Zachopśo pśeglědowaś, a pokažomy někotare wjelicne nastawki, wideo a druge boki, kótarež sćo se njedawno woglědał abo how ako cytańske znamjenja składował.",
   "topstories_empty_state": "To jo nachylu wšykno. Wrośćo se pózdźej wjelicnych tšojeńkow dla wót {provider}. Njamóžośo cakaś? Wubjeŕśo woblubowanu temu, aby dalšne wjelicne tšojeńka we webje namakał.",
   "manual_migration_explanation2": "Wopytajśo Firefox z cytanskimi znamjenjami, historiju a gronidłami z drugego wobglědowaka.",
   "manual_migration_cancel_button": "Ně, źěkujom se",
   "manual_migration_import_button": "Něnto importěrowaś",
   "error_fallback_default_info": "Hopla, pśi cytanju toś togo wopśimjeśa njejo se něco raźiło.",
   "error_fallback_default_refresh_suggestion": "Aktualizěrujśo bok, aby hyšći raz wopytał.",
   "section_menu_action_remove_section": "Wótrězk wótwónoźeś",
   "section_menu_action_collapse_section": "Wótrězk schowaś",
   "section_menu_action_expand_section": "Wótrězk pokazaś",
   "section_menu_action_manage_section": "Wótrězk zastojaś",
   "section_menu_action_add_topsite": "Woblubowane sedło pśidaś",
   "section_menu_action_move_up": "Górjej",
   "section_menu_action_move_down": "Dołoj",
-  "section_menu_action_privacy_notice": "Powěźeńka priwatnosći"
+  "section_menu_action_privacy_notice": "Powěźeńka priwatnosći",
+  "prefs_restore_defaults_button": "Standard wótnowiś",
+  "settings_pane_header": "Nastajenja nowego rejtarka składowaś",
+  "settings_pane_body2": "Wubjeŕśo, což se na toś tom boku pokazujo.",
+  "settings_pane_search_header": "Pytaś",
+  "settings_pane_search_body": "Pśepytajśo web ze swójogo nowego rejtarka.",
+  "settings_pane_topsites_body": "Wócyńśo websedła, kótarež sćo se nejcesćej woglědał.",
+  "settings_pane_topsites_options_showmore": "Dwě smužki pokazaś",
+  "settings_pane_highlights_body2": "Namakajśo swóju drogu slědk k zajmnym bokam, kótarež sćo se njedawno woglědał abo ako cytańske znamjenja składł.",
+  "settings_pane_highlights_options_visited": "Woglědane sedła",
+  "settings_pane_snippets_body": "Cytajśo krotke aktualizacije wót Mozilla wó Firefox, internetnej kulturje a casy meme.",
+  "settings_pane_done_button": "Gótowo",
+  "settings_pane_topstories_options_sponsored": "Sponsorowane tšojenja pokazaś",
+  "pocket_description": "Namakajśo wopśimjeśe wusokeje kwality, kótarež by hować wjelgin felowało, z pomocu Pocket, kótaryž jo něnto źěl Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Αναζήτηση στον ιστό</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Αναζήτηση στον ιστό" title="Αναζήτηση στον ιστό"/><button id="searchSubmit" class="search-button" title="Αναζήτηση"><span class="sr-only"><span>Αναζήτηση</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Κορυφαίες ιστοσελίδες</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Επεξεργασία ιστοσελίδας"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Προτεινόμενο από τον πάροχο Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Δημοφιλή θέματα:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Κορυφαίες στιγμές</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Προσαρμογή της σελίδας Νέας Καρτέλας"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Αναζήτηση",
   "search_header": "Αναζήτηση {search_engine_name}",
   "search_web_placeholder": "Αναζήτηση στον ιστό",
   "section_disclaimer_topstories": "Οι πιο ενδιαφέρουσες ιστορίες στο διαδίκτυο, επιλεγμένες βάσει όσων διαβάζετε. Από το Pocket, πλέον μέλος της Mozilla.",
   "section_disclaimer_topstories_linktext": "Μάθετε πώς λειτουργεί.",
   "section_disclaimer_topstories_buttontext": "Εντάξει, το 'πιασα",
   "prefs_home_header": "Περιεχόμενο αρχικής σελίδας Firefox",
   "prefs_home_description": "Επιλέξτε τι περιεχόμενο θέλετε στην αρχική σελίδα του Firefox σας.",
-  "prefs_restore_defaults_button": "Επαναφορά προεπιλογών",
   "prefs_section_rows_option": "{num} σειρά;{num} σειρές",
   "prefs_search_header": "Αναζήτηση ιστού",
   "prefs_topsites_description": "Οι ιστοσελίδες που επισκέπτεστε περισσότερο",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Μάθετε περισσότερα",
   "prefs_highlights_description": "Μια συλλογή ιστοσελίδων που έχετε αποθηκεύσει ή επισκεφθεί",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Ενημερώσεις από τη Mozilla και το Firefox",
   "settings_pane_button_label": "Προσαρμογή της σελίδας Νέας Καρτέλας",
-  "settings_pane_header": "Προτιμήσεις νέας καρτέλας",
-  "settings_pane_body2": "Επιλέξτε τι θα βλέπετε σε αυτή τη σελίδα.",
-  "settings_pane_search_header": "Αναζήτηση",
-  "settings_pane_search_body": "Αναζήτηση στο διαδίκτυο από τη νέα σας καρτέλα.",
   "settings_pane_topsites_header": "Κορυφαίες ιστοσελίδες",
-  "settings_pane_topsites_body": "Πρόσβαση στις ιστοσελίδες που επισκέπτεστε περισσότερο.",
-  "settings_pane_topsites_options_showmore": "Εμφάνιση δύο σειρών",
   "settings_pane_highlights_header": "Κορυφαίες στιγμές",
-  "settings_pane_highlights_body2": "Βρείτε ξανά κάτι ενδιαφέρον που έχετε επισκεφθεί πρόσφατα ή έχετε αποθηκεύσει στους σελιδοδείκτες σας.",
   "settings_pane_highlights_options_bookmarks": "Σελιδοδείκτες",
-  "settings_pane_highlights_options_visited": "Πρόσφατες ιστοσελίδες",
   "settings_pane_snippets_header": "Αποσπάσματα",
-  "settings_pane_snippets_body": "Διαβάστε σύντομες και όμορφες ενημερώσεις από τη Mozilla σχετικά με το Firefox, το διαδικτυακό πολιτισμό και τα περιστασιακά, τυχαία memes.",
-  "settings_pane_done_button": "Τέλος",
-  "settings_pane_topstories_options_sponsored": "Εμφάνιση χορηγούμενων ιστοριών",
   "edit_topsites_button_text": "Επεξεργασία",
   "edit_topsites_edit_button": "Επεξεργασία ιστοσελίδας",
   "topsites_form_add_header": "Νέα κορυφαία ιστοσελίδα",
   "topsites_form_edit_header": "Επεξεργασία κορυφαίας ιστοσελίδας",
   "topsites_form_title_label": "Τίτλος",
   "topsites_form_title_placeholder": "Εισάγετε έναν τίτλο",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL προσαρμοσμένης εικόνας",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Προεπισκόπηση",
   "topsites_form_add_button": "Προσθήκη",
   "topsites_form_save_button": "Αποθήκευση",
   "topsites_form_cancel_button": "Ακύρωση",
   "topsites_form_url_validation": "Απαιτείται έγκυρο URL",
   "topsites_form_image_validation": "Αποτυχία φόρτωσης εικόνας. Δοκιμάστε ένα διαφορετικό URL.",
   "pocket_read_more": "Δημοφιλή θέματα:",
   "pocket_read_even_more": "Προβολή περισσότερων ιστοριών",
-  "pocket_description": "Ανακαλύψτε περιεχόμενο υψηλής ακρίβειας που ίσως να χάνατε διαφορετικά, με τη βοήθεια του Pocket, μέλους της Mozilla.",
   "highlights_empty_state": "Ξεκινήστε την περιήγηση και θα σάς δείξουμε μερικά υπέροχα άρθρα, βίντεο και άλλες σελίδες που έχετε επισκεφθεί πρόσφατα ή έχετε προσθέσει στους σελιδοδείκτες σας.",
   "topstories_empty_state": "Δεν υπάρχει κάτι νεότερο. Ελέγξτε αργότερα για περισσότερες ιστορίες από τον πάροχο {provider}. Δεν μπορείτε να περιμένετε; Διαλέξτε κάποιο από τα δημοφιλή θέματα και ανακαλύψτε ενδιαφέρουσες ιστορίες από όλο τον Ιστό.",
   "manual_migration_explanation2": "Δοκιμάστε το Firefox με τους σελιδοδείκτες, το ιστορικό και τους κωδικούς πρόσβασης από ένα άλλο πρόγραμμα περιήγησης.",
   "manual_migration_cancel_button": "Όχι ευχαριστώ",
   "manual_migration_import_button": "Εισαγωγή τώρα",
   "error_fallback_default_info": "Ωχ, κάτι πήγε στραβά κατά τη φόρτωση του περιεχομένου.",
   "error_fallback_default_refresh_suggestion": "Ανανεώστε τη σελίδα για να δοκιμάσετε ξανά.",
   "section_menu_action_remove_section": "Αφαίρεση ενότητας",
   "section_menu_action_collapse_section": "Σύμπτυξη ενότητας",
   "section_menu_action_expand_section": "Επέκταση ενότητας",
   "section_menu_action_manage_section": "Διαχείριση ενότητας",
   "section_menu_action_add_topsite": "Προσθήκη κορυφαίας ιστοσελίδας",
   "section_menu_action_move_up": "Μετακίνηση επάνω",
   "section_menu_action_move_down": "Μετακίνηση κάτω",
   "section_menu_action_privacy_notice": "Σημείωση απορρήτου",
+  "prefs_restore_defaults_button": "Επαναφορά προεπιλογών",
   "prefs_topstories_description": "Υψηλής ποιότητας περιεχόμενο που ίσως έχετε χάσει",
-  "prefs_topstories_show_sponsored_label": "Χορηγούμενες ιστορίες του {provider}"
+  "prefs_topstories_show_sponsored_label": "Χορηγούμενες ιστορίες του {provider}",
+  "settings_pane_header": "Προτιμήσεις νέας καρτέλας",
+  "settings_pane_body2": "Επιλέξτε τι θα βλέπετε σε αυτή τη σελίδα.",
+  "settings_pane_search_header": "Αναζήτηση",
+  "settings_pane_search_body": "Αναζήτηση στο διαδίκτυο από τη νέα σας καρτέλα.",
+  "settings_pane_topsites_body": "Πρόσβαση στις ιστοσελίδες που επισκέπτεστε περισσότερο.",
+  "settings_pane_topsites_options_showmore": "Εμφάνιση δύο σειρών",
+  "settings_pane_highlights_body2": "Βρείτε ξανά κάτι ενδιαφέρον που έχετε επισκεφθεί πρόσφατα ή έχετε αποθηκεύσει στους σελιδοδείκτες σας.",
+  "settings_pane_highlights_options_visited": "Πρόσφατες ιστοσελίδες",
+  "settings_pane_snippets_body": "Διαβάστε σύντομες και όμορφες ενημερώσεις από τη Mozilla σχετικά με το Firefox, το διαδικτυακό πολιτισμό και τα περιστασιακά, τυχαία memes.",
+  "settings_pane_done_button": "Τέλος",
+  "settings_pane_topstories_options_sponsored": "Εμφάνιση χορηγούμενων ιστοριών",
+  "pocket_description": "Ανακαλύψτε περιεχόμενο υψηλής ακρίβειας που ίσως να χάνατε διαφορετικά, με τη βοήθεια του Pocket, μέλους της Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Search the Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Search the Web" title="Search the Web"/><button id="searchSubmit" class="search-button" title="Search"><span class="sr-only"><span>Search</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top Sites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customise your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Search",
   "search_header": "{search_engine_name} Search",
   "search_web_placeholder": "Search the Web",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customise your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the web sites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "Top Sites",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Add",
   "topsites_form_save_button": "Save",
   "topsites_form_cancel_button": "Cancel",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
   "section_menu_action_privacy_notice": "Privacy Notice",
+  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_topstories_description": "High-quality content you might otherwise miss",
-  "prefs_topstories_show_sponsored_label": "{provider} Sponsored Stories"
+  "prefs_topstories_show_sponsored_label": "{provider} Sponsored Stories",
+  "settings_pane_header": "New Tab Preferences",
+  "settings_pane_body2": "Choose what you see on this page.",
+  "settings_pane_search_header": "Search",
+  "settings_pane_search_body": "Search the Web from your new tab.",
+  "settings_pane_topsites_body": "Access the web sites you visit most.",
+  "settings_pane_topsites_options_showmore": "Show two rows",
+  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
+  "settings_pane_highlights_options_visited": "Visited Sites",
+  "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",
+  "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Search the Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Search the Web" title="Search the Web"/><button id="searchSubmit" class="search-button" title="Search"><span class="sr-only"><span>Search</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top Sites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customise your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Search",
   "search_header": "{search_engine_name} Search",
   "search_web_placeholder": "Search the Web",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customise your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the web sites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "Top Sites",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Add",
   "topsites_form_save_button": "Save",
   "topsites_form_cancel_button": "Cancel",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
   "section_menu_action_privacy_notice": "Privacy Notice",
+  "prefs_restore_defaults_button": "Restore Defaults",
+  "settings_pane_header": "New Tab Preferences",
+  "settings_pane_body2": "Choose what you see on this page.",
+  "settings_pane_search_header": "Search",
+  "settings_pane_search_body": "Search the Web from your new tab.",
+  "settings_pane_topsites_body": "Access the web sites you visit most.",
+  "settings_pane_topsites_options_showmore": "Show two rows",
+  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
+  "settings_pane_highlights_options_visited": "Visited Sites",
+  "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",
+  "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
   "prefs_topstories_description": "High-quality content you might otherwise miss",
   "prefs_topstories_show_sponsored_label": "{provider} Sponsored Stories"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Search the Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Search the Web" title="Search the Web"/><button id="searchSubmit" class="search-button" title="Search"><span class="sr-only"><span>Search</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top Sites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Search",
   "search_header": "{search_engine_name} Search",
   "search_web_placeholder": "Search the Web",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the websites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "New Top Site",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Add",
   "topsites_form_save_button": "Save",
   "topsites_form_cancel_button": "Cancel",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
   "section_menu_action_privacy_notice": "Privacy Notice",
+  "prefs_restore_defaults_button": "Restore Defaults",
+  "settings_pane_header": "New Tab Preferences",
+  "settings_pane_body2": "Choose what you see on this page.",
+  "settings_pane_search_header": "Search",
+  "settings_pane_search_body": "Search the Web from your new tab.",
+  "settings_pane_topsites_body": "Access the web sites you visit most.",
+  "settings_pane_topsites_options_showmore": "Show two rows",
+  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
+  "settings_pane_highlights_options_visited": "Visited Sites",
+  "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",
+  "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
   "prefs_topstories_description": "High-quality content you might otherwise miss",
   "prefs_topstories_show_sponsored_label": "{provider} Sponsored Stories"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Serĉi la reton</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Serĉi la reton" title="Serĉi la reton"/><button id="searchSubmit" class="search-button" title="Serĉi"><span class="sr-only"><span>Serĉi</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Plej vizititaj</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Malfermi sekcion de kunteksta menuo</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redakti ĉi tiun retejon"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Rekomendita de Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Malfermi sekcion de kunteksta menuo</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Ĉefaj temoj:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Elstaraĵoj</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Malfermi sekcion de kunteksta menuo</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personecigi la paĝon por novaj langetoj"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Serĉi",
   "search_header": "Serĉo de {search_engine_name}",
   "search_web_placeholder": "Serĉi la reton",
   "section_disclaimer_topstories": "La plej interesaj artikoloj en la reto, elektitaj surbaze de tio, kion vi legas. Hecho por Pocket, kiu estas nun parto de Mozilla.",
   "section_disclaimer_topstories_linktext": "Vidi kiel tio funkcias.",
   "section_disclaimer_topstories_buttontext": "En ordo, mi komprenis",
   "prefs_home_header": "Enhavo de la hejmekrano de Firefox",
   "prefs_home_description": "Elektu la enhavon, kiun vi volas en via hejmekrano de Firefox.",
-  "prefs_restore_defaults_button": "Remeti normojn",
   "prefs_section_rows_option": "{num} vico;{num} vicoj",
   "prefs_search_header": "Serĉo en la reto",
   "prefs_topsites_description": "Viaj plej vizititaj retejoj",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Pli da informo",
   "prefs_highlights_description": "Retejoj elektitaj inter tiuj, kiun vi vizitis aŭ konservis",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Ĝisdatigoj de Mozilla kaj Firefox",
   "settings_pane_button_label": "Personecigi la paĝon por novaj langetoj",
-  "settings_pane_header": "Preferoj pri nova langeto",
-  "settings_pane_body2": "Elektu tion, kion vi vidas en tiu ĉi paĝo.",
-  "settings_pane_search_header": "Serĉi",
-  "settings_pane_search_body": "Serĉi la Teksaĵon el via nova langeto.",
   "settings_pane_topsites_header": "Plej vizitaj",
-  "settings_pane_topsites_body": "Aliri la plej ofte vizitajn retejojn.",
-  "settings_pane_topsites_options_showmore": "Montri en du vicoj",
   "settings_pane_highlights_header": "Elstaraĵoj",
-  "settings_pane_highlights_body2": "Retrovu la vojon reen al interesaj aferoj, kiujn vi antaŭ nelonge vizitis aŭ por kiuj vi aldonis legosignon.",
   "settings_pane_highlights_options_bookmarks": "Legosignoj",
-  "settings_pane_highlights_options_visited": "Vizititaj retejoj",
   "settings_pane_snippets_header": "Fragmentoj",
-  "settings_pane_snippets_body": "Legu mallongaj novaĵojn de Mozila pri Firefox, interreta kulturo kaj, de tempo al tempo, hazarda «meme».",
-  "settings_pane_done_button": "Farita",
-  "settings_pane_topstories_options_sponsored": "Montri patronitajn artikolojn",
   "edit_topsites_button_text": "Redakti",
   "edit_topsites_edit_button": "Redakti ĉi tiun retejon",
   "topsites_form_add_header": "Nova ofta retejo",
   "topsites_form_edit_header": "Redakti oftan retejon",
   "topsites_form_title_label": "Titolo",
   "topsites_form_title_placeholder": "Tajpu titolon",
   "topsites_form_url_label": "Retadreso",
   "topsites_form_image_url_label": "Personecitiga retadreso de bildo",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Antaŭvidi",
   "topsites_form_add_button": "Aldoni",
   "topsites_form_save_button": "Konservi",
   "topsites_form_cancel_button": "Nuligi",
   "topsites_form_url_validation": "Valida retadreso estas postulata",
   "topsites_form_image_validation": "Ne eblis ŝargi la bildon. Klopodu alian retadreson.",
   "pocket_read_more": "Ĉefaj temoj:",
   "pocket_read_even_more": "Montri pli da artikoloj",
-  "pocket_description": "Malkovru altkvalitan enhavon, kiun vi povus aliokaze neniam trovi, per helpo de Pocket, kiu nun estas parto de Mozilla.",
   "highlights_empty_state": "Komencu retumi kaj ĉi tie ni montros al vi kelkajn el la plej bonaj artikoloj, filmetoj kaj aliaj paĝoj, kiujn vi antaŭ nelonge vizits aŭ por kiuj vi aldonis legosignon.",
   "topstories_empty_state": "Vi legis ĉion. Kontrolu denove poste ĉu estas pli da novaĵon de {provider}. Ĉu vi ne povas atendi? Elektu popularan temon por trovi pli da interesaj artikoloj en la tuta teksaĵo.",
   "manual_migration_explanation2": "Provu Firefox kun la legosignoj, historio kaj pasvortoj de alia retumilo.",
   "manual_migration_cancel_button": "Ne, dankon",
   "manual_migration_import_button": "Importi nun",
   "error_fallback_default_info": "Fuŝ', io malbona okazis dum ŝargo de tiu ĉi enhavo.",
   "error_fallback_default_refresh_suggestion": "Refreŝigi paĝon por klopodi denove.",
   "section_menu_action_remove_section": "Forigi sekcion",
   "section_menu_action_collapse_section": "Faldi sekcion",
   "section_menu_action_expand_section": "Malfaldi sekcion",
   "section_menu_action_manage_section": "Administri sekcion",
   "section_menu_action_add_topsite": "Aldoni oftan retejon",
   "section_menu_action_move_up": "Movi supren",
   "section_menu_action_move_down": "Movi malsupren",
   "section_menu_action_privacy_notice": "Rimarko pri privateco",
+  "prefs_restore_defaults_button": "Remeti normojn",
   "prefs_topstories_description": "Altkvalita enhavo, kiun aliokaze vi povus maltrafi",
-  "prefs_topstories_show_sponsored_label": "Patronitaj artikoloj de {provider}"
+  "prefs_topstories_show_sponsored_label": "Patronitaj artikoloj de {provider}",
+  "settings_pane_header": "Preferoj pri nova langeto",
+  "settings_pane_body2": "Elektu tion, kion vi vidas en tiu ĉi paĝo.",
+  "settings_pane_search_header": "Serĉi",
+  "settings_pane_search_body": "Serĉi la Teksaĵon el via nova langeto.",
+  "settings_pane_topsites_body": "Aliri la plej ofte vizitajn retejojn.",
+  "settings_pane_topsites_options_showmore": "Montri en du vicoj",
+  "settings_pane_highlights_body2": "Retrovu la vojon reen al interesaj aferoj, kiujn vi antaŭ nelonge vizitis aŭ por kiuj vi aldonis legosignon.",
+  "settings_pane_highlights_options_visited": "Vizititaj retejoj",
+  "settings_pane_snippets_body": "Legu mallongaj novaĵojn de Mozila pri Firefox, interreta kulturo kaj, de tempo al tempo, hazarda «meme».",
+  "settings_pane_done_button": "Farita",
+  "settings_pane_topstories_options_sponsored": "Montri patronitajn artikolojn",
+  "pocket_description": "Malkovru altkvalitan enhavon, kiun vi povus aliokaze neniam trovi, per helpo de Pocket, kiu nun estas parto de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Buscar en la web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Buscar en la web" title="Buscar en la web"/><button id="searchSubmit" class="search-button" title="Buscar"><span class="sr-only"><span>Buscar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Más visitados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir el menú contextual de la sección</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir el menú contextual de la sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Tópicos populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir el menú contextual de la sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar la página nueva pestaña"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Buscar",
   "search_header": "Buscar con {search_engine_name}",
   "search_web_placeholder": "Buscar en la web",
   "section_disclaimer_topstories": "Las historias más interesantes en la web, seleccionadas en base a lo que lees. Gracias a Pocket, ahora parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Aprendé cómo funciona.",
   "section_disclaimer_topstories_buttontext": "Listo, lo entendí",
   "prefs_home_header": "Contenido de la página de inicio de Firefox",
   "prefs_home_description": "Elija qué contenido desea en la Pantalla de inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar Predeterminados",
   "prefs_section_rows_option": "fila de {num}; filas de {num}",
   "prefs_search_header": "Búsqueda en la web",
   "prefs_topsites_description": "Los sitios que más visita",
   "prefs_topstories_description2": "El mejor contenido de toda la web, personalizado para usted",
   "prefs_topstories_options_sponsored_label": "Historias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Conocer más",
   "prefs_highlights_description": "Una selección de sitios que guardó o visitó",
   "prefs_highlights_options_visited_label": "Sitios visitados",
   "prefs_highlights_options_download_label": "Descargado recientemente",
   "prefs_highlights_options_pocket_label": "Páginas guardadas en Pocket",
   "prefs_snippets_description": "Actualizaciones de Mozilla y Firefox",
   "settings_pane_button_label": "Personalizar la página nueva pestaña",
-  "settings_pane_header": "Preferencia de nueva pestaña",
-  "settings_pane_body2": "Seleccionar lo que se ve en esta página.",
-  "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Buscar en la Web desde nueva pestaña.",
   "settings_pane_topsites_header": "Más visitados",
-  "settings_pane_topsites_body": "Acceder a los sitios web más visitados.",
-  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
   "settings_pane_highlights_header": "Destacados",
-  "settings_pane_highlights_body2": "Encuentre el camino de vuelta a las páginas interesantes que visitó o que marcó como favorito.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitados",
   "settings_pane_snippets_header": "Recortes",
-  "settings_pane_snippets_body": "Leer dulces actualizaciones cortas de Mozilla sobre Firefox, cultura de Internet y algún meme ocasional al azar.",
-  "settings_pane_done_button": "Listo",
-  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este sitio",
   "topsites_form_add_header": "Nuevo sitio más visitado",
   "topsites_form_edit_header": "Editar sitio más visitado",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Ingresar un título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de Imagen personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vista previa",
   "topsites_form_add_button": "Agregar",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "Se requiere URL válida",
   "topsites_form_image_validation": "La imagen no se pudo cargar. Pruebe una URL diferente.",
   "pocket_read_more": "Tópicos populares:",
   "pocket_read_even_more": "Ver más historias",
-  "pocket_description": "Descubrir contenido de alta calidad que se podría perder de otra forma, con la ayuda de Pocket, ahora parte de Mozilla.",
   "highlights_empty_state": "Comenzá a navegar y te mostraremos algunos de los mejores artículos, videos y otras páginas que hayás visitado o marcado acá.",
   "topstories_empty_state": "Ya te pusiste al día. Volvé más tarde para más historias de {provider}. ¿No podés esperar? Seleccioná un tema popular para encontrar más historias de todo el mundo.",
   "manual_migration_explanation2": "Probá Firefox con los marcadores, historial y contraseñas de otro navegador.",
   "manual_migration_cancel_button": "No gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Epa, algo salió mal al cargar este contenido.",
   "error_fallback_default_refresh_suggestion": "Refrescar la página para reintentar.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Colapsar sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Administrar sección",
   "section_menu_action_add_topsite": "Agregar Sitio más visitado",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
-  "section_menu_action_privacy_notice": "Nota de privacidad"
+  "section_menu_action_privacy_notice": "Nota de privacidad",
+  "prefs_restore_defaults_button": "Restaurar Predeterminados",
+  "settings_pane_header": "Preferencia de nueva pestaña",
+  "settings_pane_body2": "Seleccionar lo que se ve en esta página.",
+  "settings_pane_search_header": "Buscar",
+  "settings_pane_search_body": "Buscar en la Web desde nueva pestaña.",
+  "settings_pane_topsites_body": "Acceder a los sitios web más visitados.",
+  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
+  "settings_pane_highlights_body2": "Encuentre el camino de vuelta a las páginas interesantes que visitó o que marcó como favorito.",
+  "settings_pane_highlights_options_visited": "Sitios visitados",
+  "settings_pane_snippets_body": "Leer dulces actualizaciones cortas de Mozilla sobre Firefox, cultura de Internet y algún meme ocasional al azar.",
+  "settings_pane_done_button": "Listo",
+  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
+  "pocket_description": "Descubrir contenido de alta calidad que se podría perder de otra forma, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Buscar en la Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Buscar en la Web" title="Buscar en la Web"/><button id="searchSubmit" class="search-button" title="Buscar"><span class="sr-only"><span>Buscar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sitios frecuentes</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir sección del menú contextual</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir sección del menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir sección del menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personaliza tu página de Nueva pestaña"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Buscar",
   "search_header": "Búsqueda de {search_engine_name}",
   "search_web_placeholder": "Buscar en la Web",
   "section_disclaimer_topstories": "Las historias más interesantes en la web, seleccionadas en base a lo que tu lees. Por Pocket, ahora parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Aprender cómo funciona.",
   "section_disclaimer_topstories_buttontext": "Ok, ¡ya caché!",
   "prefs_home_header": "Contenido de la página de inicio de Firefox",
   "prefs_home_description": "Elige qué contenido quieres en tu pantalla de inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar predeterminados",
   "prefs_section_rows_option": "{num} fila;{num} filas",
   "prefs_search_header": "Búsqueda web",
   "prefs_topsites_description": "Los sitios que más visitas",
   "prefs_topstories_description2": "El mejor contenido de toda la web, seleccionado para ti",
   "prefs_topstories_options_sponsored_label": "Historias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Aprender más",
   "prefs_highlights_description": "Una selección de sitios que guardaste o visitaste",
   "prefs_highlights_options_visited_label": "Páginas visitadas",
   "prefs_highlights_options_download_label": "Descarga más reciente",
   "prefs_highlights_options_pocket_label": "Páginas guardadas en Pocket",
   "prefs_snippets_description": "Actualizaciones de Mozilla y Firefox",
   "settings_pane_button_label": "Personaliza tu página de Nueva pestaña",
-  "settings_pane_header": "Preferencias de Nueva pestaña",
-  "settings_pane_body2": "Elige qué es lo que ves en esta página.",
-  "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Busca en la Web desde tu nueva pestaña.",
   "settings_pane_topsites_header": "Sitios frecuentes",
-  "settings_pane_topsites_body": "Accede a los sitios que más visitas.",
-  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
   "settings_pane_highlights_header": "Destacados",
-  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que ya has visitado o marcado.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitados",
   "settings_pane_snippets_header": "Fragmentos",
-  "settings_pane_snippets_body": "Lee breves y dulces actualizaciones de Mozilla sobre Firefox, la cultura de internet y un meme aleatorio ocasional.",
-  "settings_pane_done_button": "Hecho",
-  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este sitio",
   "topsites_form_add_header": "Nuevo sitio frecuente",
   "topsites_form_edit_header": "Editar sitio frecuente",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Ingresar un título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagen personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vista previa",
   "topsites_form_add_button": "Añadir",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "URL válida requerida",
   "topsites_form_image_validation": "Falló la carga de la imagen. Prueba una URL diferente.",
   "pocket_read_more": "Temas populares:",
   "pocket_read_even_more": "Ver más historias",
-  "pocket_description": "Descubre contenido de alta calidad que de otra forma te perderías, con la ayuda de Pocket, ahora parte de Mozilla.",
   "highlights_empty_state": "Empieza a navegar, y nosotros te mostraremos aquí algunos de los mejores artículos, videos y otras páginas que hayas visitado recientemente o marcado.",
   "topstories_empty_state": "Te has puesto al día. Revisa más tarde para ver más historias de {provider}. ¿No puedes esperar? Selecciona un tema popular para encontrar más historias de todo el mundo.",
   "manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Chuta, algo se fue a las pailas al cargar este contenido.",
   "error_fallback_default_refresh_suggestion": "Recarga la página para volver a intentarlo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Contraer sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Gestionar sección",
   "section_menu_action_add_topsite": "Añadir sitio frecuente",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
-  "section_menu_action_privacy_notice": "Aviso de privacidad"
+  "section_menu_action_privacy_notice": "Aviso de privacidad",
+  "prefs_restore_defaults_button": "Restaurar predeterminados",
+  "settings_pane_header": "Preferencias de Nueva pestaña",
+  "settings_pane_body2": "Elige qué es lo que ves en esta página.",
+  "settings_pane_search_header": "Buscar",
+  "settings_pane_search_body": "Busca en la Web desde tu nueva pestaña.",
+  "settings_pane_topsites_body": "Accede a los sitios que más visitas.",
+  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
+  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que ya has visitado o marcado.",
+  "settings_pane_highlights_options_visited": "Sitios visitados",
+  "settings_pane_snippets_body": "Lee breves y dulces actualizaciones de Mozilla sobre Firefox, la cultura de internet y un meme aleatorio ocasional.",
+  "settings_pane_done_button": "Hecho",
+  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
+  "pocket_description": "Descubre contenido de alta calidad que de otra forma te perderías, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Buscar en la Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Buscar en la Web" title="Buscar en la Web"/><button id="searchSubmit" class="search-button" title="Buscar"><span class="sr-only"><span>Buscar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sitios favoritos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar la página Nueva pestaña"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Buscar",
   "search_header": "Búsqueda de {search_engine_name}",
   "search_web_placeholder": "Buscar en la Web",
   "section_disclaimer_topstories": "Las historias más interesantes de la web, seleccionadas en base a lo que lee. Gracias a Pocket , ahora parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Aprenda cómo funciona.",
   "section_disclaimer_topstories_buttontext": "Ok, entendido",
   "prefs_home_header": "Contenido de la página de inicio de Firefox",
   "prefs_home_description": "Seleccione el contenido que desea en la pantalla de inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar predeterminados",
   "prefs_section_rows_option": "{num} fila;{num} filas",
   "prefs_search_header": "Búsqueda web",
   "prefs_topsites_description": "Los sitios que más visita",
   "prefs_topstories_description2": "El mejor contenido de toda la web, personalizado para usted",
   "prefs_topstories_options_sponsored_label": "Historias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Más información",
   "prefs_highlights_description": "Una selección de sitios que ha guardado o visitado",
   "prefs_highlights_options_visited_label": "Páginas visitadas",
   "prefs_highlights_options_download_label": "Descargas recientes",
   "prefs_highlights_options_pocket_label": "Páginas guardadas en Pocket",
   "prefs_snippets_description": "Actualizaciones de Mozilla y Firefox",
   "settings_pane_button_label": "Personalizar la página Nueva pestaña",
-  "settings_pane_header": "Preferencias de nueva pestaña",
-  "settings_pane_body2": "Elija lo quiera ver en esta página.",
-  "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Busque en la Web desde su nueva pestaña.",
   "settings_pane_topsites_header": "Sitios populares",
-  "settings_pane_topsites_body": "Acceda a las páginas que más visita.",
-  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
   "settings_pane_highlights_header": "Destacados",
-  "settings_pane_highlights_body2": "Vuelva a encontrar todas las cosas interesantes que haya visitado o marcado recientemente.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitados",
   "settings_pane_snippets_header": "Fragmentos de código",
-  "settings_pane_snippets_body": "Lea actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y el típico meme aleatorio.",
-  "settings_pane_done_button": "Hecho",
-  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este sitio",
   "topsites_form_add_header": "Nuevo sitio popular",
   "topsites_form_edit_header": "Editar sitio popular",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Introducir título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagen personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vista preliminar",
   "topsites_form_add_button": "Agregar",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "Se requiere una URL válida",
   "topsites_form_image_validation": "No se ha podido cargar la imagen. Pruebe con una URL diferente.",
   "pocket_read_more": "Temas populares:",
   "pocket_read_even_more": "Ver más historias",
-  "pocket_description": "Gracias a Pocket, que ahora forma parte de Mozilla, podrá descubrir contenido de alta calidad que de otra forma se perdería.",
   "highlights_empty_state": "Empiece a navegar y nosotros le mostraremos aquí algunos de los mejores artículos, videos y otras páginas que haya visitado recientemente o agregado a marcadores.",
   "topstories_empty_state": "Ya está al día. Vuelva luego y busque más historias de {provider}. ¿No puede esperar? Seleccione un tema popular y encontrará más historias alucinantes por toda la web.",
   "manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
   "error_fallback_default_refresh_suggestion": "Recargue la página e inténtelo de nuevo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Contraer sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Gestionar sección",
   "section_menu_action_add_topsite": "Añadir sitio popular",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Bajar",
-  "section_menu_action_privacy_notice": "Aviso de privacidad"
+  "section_menu_action_privacy_notice": "Aviso de privacidad",
+  "prefs_restore_defaults_button": "Restaurar predeterminados",
+  "settings_pane_header": "Preferencias de nueva pestaña",
+  "settings_pane_body2": "Elija lo quiera ver en esta página.",
+  "settings_pane_search_header": "Buscar",
+  "settings_pane_search_body": "Busque en la Web desde su nueva pestaña.",
+  "settings_pane_topsites_body": "Acceda a las páginas que más visita.",
+  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
+  "settings_pane_highlights_body2": "Vuelva a encontrar todas las cosas interesantes que haya visitado o marcado recientemente.",
+  "settings_pane_highlights_options_visited": "Sitios visitados",
+  "settings_pane_snippets_body": "Lea actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y el típico meme aleatorio.",
+  "settings_pane_done_button": "Hecho",
+  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
+  "pocket_description": "Gracias a Pocket, que ahora forma parte de Mozilla, podrá descubrir contenido de alta calidad que de otra forma se perdería."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Buscar en la Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Buscar en la Web" title="Buscar en la Web"/><button id="searchSubmit" class="search-button" title="Buscar"><span class="sr-only"><span>Buscar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sitios favoritos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir la sección menú contextual</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar tu página de nueva pestaña"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Buscar",
   "search_header": "Buscar {search_engine_name}",
   "search_web_placeholder": "Buscar en la Web",
   "section_disclaimer_topstories": "Las más interesantes historias en la web, seleccionadas basándonos en los que lees. Desde Pocket, ahora parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Saber como trabaja.",
   "section_disclaimer_topstories_buttontext": "Está bien, lo entiendo",
   "prefs_home_header": "Contenido de la página de inicio de Firefox",
   "prefs_home_description": "Selecciona el contenido que desea en la pantalla de inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar valores predeterminados",
   "prefs_section_rows_option": "{num} fila;{num} filas",
   "prefs_search_header": "Búsqueda web",
   "prefs_topsites_description": "Los sitios que más visitas",
   "prefs_topstories_description2": "El mejor contenido de la web, personalizado para ti",
   "prefs_topstories_options_sponsored_label": "Artículos patrocinados",
   "prefs_topstories_sponsored_learn_more": "Saber más",
   "prefs_highlights_description": "Una selección de sitios que has guardado o visitado",
   "prefs_highlights_options_visited_label": "Páginas visitadas",
   "prefs_highlights_options_download_label": "Descargado recientemente",
   "prefs_highlights_options_pocket_label": "Páginas guardadas en Pocket",
   "prefs_snippets_description": "Actualizaciones de Mozilla y Firefox",
   "settings_pane_button_label": "Personalizar tu página de nueva pestaña",
-  "settings_pane_header": "Preferencias de nueva pestaña",
-  "settings_pane_body2": "Elige lo que ves en esta página.",
-  "settings_pane_search_header": "Buscar",
-  "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
   "settings_pane_topsites_header": "Sitios populares",
-  "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
-  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
   "settings_pane_highlights_header": "Destacados",
-  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitados",
   "settings_pane_snippets_header": "Fragmentos",
-  "settings_pane_snippets_body": "Lee actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y de repente un meme de vez en cuando.",
-  "settings_pane_done_button": "Listo",
-  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este sitio",
   "topsites_form_add_header": "Nuevo sitio popular",
   "topsites_form_edit_header": "Editar sitio popular",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Introducir un título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagen personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vista previa",
   "topsites_form_add_button": "Agregar",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "Se requiere una URL válida",
   "topsites_form_image_validation": "La imagen no se pudo cargar. Intente una URL diferente.",
   "pocket_read_more": "Temas populares:",
   "pocket_read_even_more": "Ver más historias",
-  "pocket_description": "Descubre contenido de alta calidad que de otra forma te podrías perder, con la ayuda de Pocket, ahora parte de Mozilla.",
   "highlights_empty_state": "Empieza a navegar, y nosotros te mostraremos aquí algunos de los mejores artículos, videos y otras páginas que hayas visitado recientemente o marcado.",
   "topstories_empty_state": "Ya estás al día. Vuelve luego y busca más historias de {provider}. ¿No puedes esperar? Selecciona un tema popular y encontrarás más historias interesantes por toda la web.",
   "manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
   "manual_migration_cancel_button": "No, gracias",
   "manual_migration_import_button": "Importar ahora",
   "error_fallback_default_info": "Ups, algo salió mal mientras se cargaba el contenido.",
   "error_fallback_default_refresh_suggestion": "Actualiza la página e intenta de nuevo.",
   "section_menu_action_remove_section": "Eliminar sección",
   "section_menu_action_collapse_section": "Sección de colapso",
   "section_menu_action_expand_section": "Ampliar la sección",
   "section_menu_action_manage_section": "Administrar sección",
   "section_menu_action_add_topsite": "Agregar sitio popular",
   "section_menu_action_move_up": "Más",
   "section_menu_action_move_down": "Bajar",
-  "section_menu_action_privacy_notice": "Política de privacidad"
+  "section_menu_action_privacy_notice": "Política de privacidad",
+  "prefs_restore_defaults_button": "Restaurar valores predeterminados",
+  "settings_pane_header": "Preferencias de nueva pestaña",
+  "settings_pane_body2": "Elige lo que ves en esta página.",
+  "settings_pane_search_header": "Buscar",
+  "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
+  "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
+  "settings_pane_topsites_options_showmore": "Mostrar dos filas",
+  "settings_pane_highlights_body2": "Encuentra tu camino de regreso a las cosas interesantes que has visitado o marcado recientemente.",
+  "settings_pane_highlights_options_visited": "Sitios visitados",
+  "settings_pane_snippets_body": "Lee actualizaciones breves de Mozilla sobre Firefox, la cultura de internet y de repente un meme de vez en cuando.",
+  "settings_pane_done_button": "Listo",
+  "settings_pane_topstories_options_sponsored": "Mostrar historias patrocinadas",
+  "pocket_description": "Descubre contenido de alta calidad que de otra forma te podrías perder, con la ayuda de Pocket, ahora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Otsi veebist</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Otsi veebist" title="Otsi veebist"/><button id="searchSubmit" class="search-button" title="Otsi"><span class="sr-only"><span>Otsi</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top saidid</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ava osa kontekstimenüü</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muuda seda saiti"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket soovitab</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ava osa kontekstimenüü</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populaarsed teemad:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Esiletõstetud</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ava osa kontekstimenüü</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Kohanda uue kaardi lehte"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Otsi",
   "search_header": "{search_engine_name}",
   "search_web_placeholder": "Otsi veebist",
   "section_disclaimer_topstories": "Huvitavamad veebilood, mis on valitud sinu loetu põhjal. Pocketilt, mis on nüüd Mozilla osa.",
   "section_disclaimer_topstories_linktext": "Vaata, kuidas see töötab.",
   "section_disclaimer_topstories_buttontext": "Olgu, sain aru",
   "prefs_home_header": "Firefoxi avalehe sisu",
   "prefs_home_description": "Vali sisu, mida soovid Firefoxi avalehel näha.",
-  "prefs_restore_defaults_button": "Taasta vaikeväärtused",
   "prefs_section_rows_option": "{num} rida;{num} rida",
   "prefs_search_header": "Veebiotsing",
   "prefs_topsites_description": "Enim külastatud saidid",
   "prefs_topstories_description2": "Parim veebisisu sinu huvidest lähtuvalt",
   "prefs_topstories_options_sponsored_label": "Sponsitud postitused",
   "prefs_topstories_sponsored_learn_more": "Rohkem teavet",
   "prefs_highlights_description": "Valik saitidest, mille oled salvestanud või mida oled külastanud",
   "prefs_highlights_options_visited_label": "Külastatud lehed",
   "prefs_highlights_options_download_label": "Viimane allalaadimine",
   "prefs_highlights_options_pocket_label": "Pocketisse salvestatud lehed",
   "prefs_snippets_description": "Uuendused Mozillalt ja Firefoxilt",
   "settings_pane_button_label": "Kohanda uue kaardi lehte",
-  "settings_pane_header": "Uue kaardi sätted",
-  "settings_pane_body2": "Vali asjad, mida soovid sellel lehel näha.",
-  "settings_pane_search_header": "Otsing",
-  "settings_pane_search_body": "Veebis otsimine uuel kaardil.",
   "settings_pane_topsites_header": "Top saidid",
-  "settings_pane_topsites_body": "Ligipääs enim külastatud veebilehtedele.",
-  "settings_pane_topsites_options_showmore": "Kuvatakse kahel real",
   "settings_pane_highlights_header": "Esiletõstetud",
-  "settings_pane_highlights_body2": "Leia tee tagasi asjade juurde, mida hiljuti külastasid või järjehoidjatesse lisasid.",
   "settings_pane_highlights_options_bookmarks": "Järjehoidjad",
-  "settings_pane_highlights_options_visited": "Külastatud saidid",
   "settings_pane_snippets_header": "Infokillud",
-  "settings_pane_snippets_body": "Loe lühikesi ja mõnusaid infokilde Mozillalt Firefoxi, interneti kultuuri ja vahel ka juhuslike netimeemide kohta.",
-  "settings_pane_done_button": "Valmis",
-  "settings_pane_topstories_options_sponsored": "Kuvatakse sponsitud postitusi",
   "edit_topsites_button_text": "Muuda",
   "edit_topsites_edit_button": "Muuda seda saiti",
   "topsites_form_add_header": "Uue top saidi lisamine",
   "topsites_form_edit_header": "Top saidi muutmine",
   "topsites_form_title_label": "Pealkiri",
   "topsites_form_title_placeholder": "Sisesta pealkiri",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Kohandatud pildi URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Eelvaade",
   "topsites_form_add_button": "Lisa",
   "topsites_form_save_button": "Salvesta",
   "topsites_form_cancel_button": "Tühista",
   "topsites_form_url_validation": "URL peab olema korrektne",
   "topsites_form_image_validation": "Pildi laadimine ebaõnnestus. Proovi teistsugust URLi.",
   "pocket_read_more": "Populaarsed teemad:",
   "pocket_read_even_more": "Rohkem lugusid",
-  "pocket_description": "Avasta Pocketi (nüüd osa Mozillast) abiga kõrgkvaliteetset sisu, mis muidu võib märkamata jääda.",
   "highlights_empty_state": "Alusta veebilehitsemist ja me näitame siin häid artikleid, videoid ja muid lehti, mida hiljuti külastasid või järjehoidjatesse lisasid.",
   "topstories_empty_state": "Vaata hiljem uuesti, et näha parimaid postitusi teenusepakkujalt {provider}. Ei suuda oodata? Vali populaarne teema, et leida veel suurepärast sisu internetist.",
   "manual_migration_explanation2": "Proovi Firefoxi teisest brauserist pärinevate järjehoidjate, ajaloo ja paroolidega.",
   "manual_migration_cancel_button": "Ei soovi",
   "manual_migration_import_button": "Impordi kohe",
   "error_fallback_default_info": "Ups, selle sisu laadimisel läks midagi viltu.",
   "error_fallback_default_refresh_suggestion": "Uuesti proovimiseks laadi leht uuesti.",
   "section_menu_action_remove_section": "Eemalda osa",
   "section_menu_action_collapse_section": "Ahenda osa",
   "section_menu_action_expand_section": "Laienda osa",
   "section_menu_action_manage_section": "Halda osa",
   "section_menu_action_add_topsite": "Lisa top sait",
   "section_menu_action_move_up": "Liiguta üles",
   "section_menu_action_move_down": "Liiguta alla",
-  "section_menu_action_privacy_notice": "Privaatsuspoliitika"
+  "section_menu_action_privacy_notice": "Privaatsuspoliitika",
+  "prefs_restore_defaults_button": "Taasta vaikeväärtused",
+  "settings_pane_header": "Uue kaardi sätted",
+  "settings_pane_body2": "Vali asjad, mida soovid sellel lehel näha.",
+  "settings_pane_search_header": "Otsing",
+  "settings_pane_search_body": "Veebis otsimine uuel kaardil.",
+  "settings_pane_topsites_body": "Ligipääs enim külastatud veebilehtedele.",
+  "settings_pane_topsites_options_showmore": "Kuvatakse kahel real",
+  "settings_pane_highlights_body2": "Leia tee tagasi asjade juurde, mida hiljuti külastasid või järjehoidjatesse lisasid.",
+  "settings_pane_highlights_options_visited": "Külastatud saidid",
+  "settings_pane_snippets_body": "Loe lühikesi ja mõnusaid infokilde Mozillalt Firefoxi, interneti kultuuri ja vahel ka juhuslike netimeemide kohta.",
+  "settings_pane_done_button": "Valmis",
+  "settings_pane_topstories_options_sponsored": "Kuvatakse sponsitud postitusi",
+  "pocket_description": "Avasta Pocketi (nüüd osa Mozillast) abiga kõrgkvaliteetset sisu, mis muidu võib märkamata jääda."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Bilatu webean</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Bilatu webean" title="Bilatu webean"/><button id="searchSubmit" class="search-button" title="Bilatu"><span class="sr-only"><span>Bilatu</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Gune erabilienak</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ireki atalaren testuinguru-menua</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editatu gune hau"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket hornitzaileak gomendatuta</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ireki atalaren testuinguru-menua</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Gai ezagunak:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Nabarmendutakoak</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ireki atalaren testuinguru-menua</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Pertsonalizatu fitxa berriaren orria"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Bilatu",
   "search_header": "{search_engine_name} bilaketa",
   "search_web_placeholder": "Bilatu webean",
   "section_disclaimer_topstories": "Webeko istorio interesgarrienen hautapena, irakurtzen duzunean oinarrituta. Orain Mozillaren zati den Pocket bidez datoz.",
   "section_disclaimer_topstories_linktext": "Ikasi nola dabilen.",
   "section_disclaimer_topstories_buttontext": "Ulertuta",
   "prefs_home_header": "Firefoxen hasiera-orriko edukia",
   "prefs_home_description": "Aukeratu zein eduki nahi duzun Firefoxen hasiera-orriko pantailan.",
-  "prefs_restore_defaults_button": "Berrezarri lehenespenak",
   "prefs_section_rows_option": "Errenkada bat;{num} errenkada",
   "prefs_search_header": "Web bilaketa",
   "prefs_topsites_description": "Gehien bisitatzen dituzun guneak",
   "prefs_topstories_description2": "Webeko eduki baliotsua, zuretzat pertsonalizatuta",
   "prefs_topstories_options_sponsored_label": "Babesleen istorioak",
   "prefs_topstories_sponsored_learn_more": "Argibide gehiago",
   "prefs_highlights_description": "Gorde edo bisitatu dituzun guneen hautapena",
   "prefs_highlights_options_visited_label": "Bisitatutako orriak",
   "prefs_highlights_options_download_label": "Azken deskarga",
   "prefs_highlights_options_pocket_label": "Pocket-en gordetako orriak",
   "prefs_snippets_description": "Mozilla eta Firefoxi buruzko eguneraketak",
   "settings_pane_button_label": "Pertsonalizatu fitxa berriaren orria",
-  "settings_pane_header": "Fitxa berriaren hobespenak",
-  "settings_pane_body2": "Aukeratu orri honetan ikusiko duzuna.",
-  "settings_pane_search_header": "Bilaketa",
-  "settings_pane_search_body": "Bilatu webean zure fitxa berritik.",
   "settings_pane_topsites_header": "Gune erabilienak",
-  "settings_pane_topsites_body": "Sartu gehien bisitatzen dituzun webguneetara.",
-  "settings_pane_topsites_options_showmore": "Erakutsi bi errenkada",
   "settings_pane_highlights_header": "Nabarmendutakoak",
-  "settings_pane_highlights_body2": "Aurkitu itzultzeko bidea azkenaldian bisitatutako edo laster-marka egindako gauza interesgarrietara.",
   "settings_pane_highlights_options_bookmarks": "Laster-markak",
-  "settings_pane_highlights_options_visited": "Bisitatutako guneak",
   "settings_pane_snippets_header": "Mezu-zatiak",
-  "settings_pane_snippets_body": "Irakurri Firefoxi eta interneteko kulturari buruzko Mozillaren eguneraketa laburrak, hala nola tartekako ausazko memeak.",
-  "settings_pane_done_button": "Eginda",
-  "settings_pane_topstories_options_sponsored": "Erakutsi babesleen istorioak",
   "edit_topsites_button_text": "Editatu",
   "edit_topsites_edit_button": "Editatu gune hau",
   "topsites_form_add_header": "Maiz erabilitako gune berria",
   "topsites_form_edit_header": "Editatu maiz erabilitako gunea",
   "topsites_form_title_label": "Izenburua",
   "topsites_form_title_placeholder": "Idatzi izenburua",
   "topsites_form_url_label": "URLa",
   "topsites_form_image_url_label": "Irudi pertsonalizatuaren URLa",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Aurrebista",
   "topsites_form_add_button": "Gehitu",
   "topsites_form_save_button": "Gorde",
   "topsites_form_cancel_button": "Utzi",
   "topsites_form_url_validation": "Baliozko URLa behar da",
   "topsites_form_image_validation": "Ezin da irudia kargatu. Saiatu beste URL batekin.",
   "pocket_read_more": "Gai ezagunak:",
   "pocket_read_even_more": "Ikusi istorio gehiago",
-  "pocket_description": "Deskubritu orain Mozillaren zati den Pocket-en laguntzari esker bestela gal zenitzakeen kalitatezko edukiak.",
   "highlights_empty_state": "Hasi nabigatzen eta azkenaldian bisitatutako edo laster-marka egindako aparteko artikulu, bideo eta orriak erakutsiko ditugu.",
   "topstories_empty_state": "Egunean zaude jada. Etorri berriro geroago {provider} hornitzailearen istorio ezagun gehiagorako. Ezin duzu itxaron? Hautatu gai ezagun bat webeko istorio gehiago aurkitzeko.",
   "manual_migration_explanation2": "Probatu Firefox beste nabigatzaile batetik ekarritako laster-marka, historia eta pasahitzekin.",
   "manual_migration_cancel_button": "Ez, eskerrik asko",
   "manual_migration_import_button": "Inportatu orain",
   "error_fallback_default_info": "Kontxo, zerbait gaizki joan da edukia kargatzerakoan.",
   "error_fallback_default_refresh_suggestion": "Berritu orria berriro saiatzeko.",
   "section_menu_action_remove_section": "Kendu atala",
   "section_menu_action_collapse_section": "Tolestu atala",
   "section_menu_action_expand_section": "Zabaldu atala",
   "section_menu_action_manage_section": "Kudeatu atala",
   "section_menu_action_add_topsite": "Gehitu maiz erabilitako gunea",
   "section_menu_action_move_up": "Eraman gora",
   "section_menu_action_move_down": "Eraman behera",
-  "section_menu_action_privacy_notice": "Pribatutasun-oharra"
+  "section_menu_action_privacy_notice": "Pribatutasun-oharra",
+  "prefs_restore_defaults_button": "Berrezarri lehenespenak",
+  "settings_pane_header": "Fitxa berriaren hobespenak",
+  "settings_pane_body2": "Aukeratu orri honetan ikusiko duzuna.",
+  "settings_pane_search_header": "Bilaketa",
+  "settings_pane_search_body": "Bilatu webean zure fitxa berritik.",
+  "settings_pane_topsites_body": "Sartu gehien bisitatzen dituzun webguneetara.",
+  "settings_pane_topsites_options_showmore": "Erakutsi bi errenkada",
+  "settings_pane_highlights_body2": "Aurkitu itzultzeko bidea azkenaldian bisitatutako edo laster-marka egindako gauza interesgarrietara.",
+  "settings_pane_highlights_options_visited": "Bisitatutako guneak",
+  "settings_pane_snippets_body": "Irakurri Firefoxi eta interneteko kulturari buruzko Mozillaren eguneraketa laburrak, hala nola tartekako ausazko memeak.",
+  "settings_pane_done_button": "Eginda",
+  "settings_pane_topstories_options_sponsored": "Erakutsi babesleen istorioak",
+  "pocket_description": "Deskubritu orain Mozillaren zati den Pocket-en laguntzari esker bestela gal zenitzakeen kalitatezko edukiak."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>جست‌وجوی وب</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="جست‌وجوی وب" title="جست‌وجوی وب"/><button id="searchSubmit" class="search-button" title="جست‌وجو"><span class="sr-only"><span>جست‌وجو</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>سایت‌های برتر</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>پیشنهاد شده توسط Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>موضوع‌های محبوب:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>برجسته‌ها</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="صفحهٔ زبانه جدید را سفارشی کنید"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "جست‌وجو",
   "search_header": "جست‌وجو {search_engine_name}",
   "search_web_placeholder": "جست‌وجوی وب",
   "section_disclaimer_topstories": "جالب‌ترین داستان‌ها در وب، بر اساس آنچه شما خواندید انتخاب شده است. از Pocket، که حالا بخشی از Mozilla است.",
   "section_disclaimer_topstories_linktext": "ببینید چگونه کار می‌کند.",
   "section_disclaimer_topstories_buttontext": "باشه، گرفتم",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "صفحهٔ زبانه جدید را سفارشی کنید",
-  "settings_pane_header": "تنظیمات زبانه جدید",
-  "settings_pane_body2": "انتخاب کنید چیزی را که مایل هستید در این صفحه مشاهده کنید.",
-  "settings_pane_search_header": "جست‌وجو",
-  "settings_pane_search_body": "وب را از زبانه جدید خود جست‌وجو کنید.",
   "settings_pane_topsites_header": "سایت‌های برتر",
-  "settings_pane_topsites_body": "به وب‌سایت‌هایی که بیشترین بازدید از آنها را داشتید دسترسی داشته باشید.",
-  "settings_pane_topsites_options_showmore": "نمایش دو ردیفی",
   "settings_pane_highlights_header": "برجسته‌ها",
-  "settings_pane_highlights_body2": "راه خود را در میان چیزهایی که دوست دارید پیدا کنید.چیزهایی که اخیرا مشاهده کرده اید یا نشانک ها.",
   "settings_pane_highlights_options_bookmarks": "نشانک‌ها",
-  "settings_pane_highlights_options_visited": "سایت‌های بازدید شده",
   "settings_pane_snippets_header": "قطعه‌ها",
-  "settings_pane_snippets_body": "بروزرسانی های شیرین و کوتاه موزیلا در مورد فایرفاکس،‌ فرهنگ اینترنت، و تصاویر تصادفی مناسبتی مطالعه کنید.",
-  "settings_pane_done_button": "انجام شد",
-  "settings_pane_topstories_options_sponsored": "نمایش داستان‌های حمایت شده",
   "edit_topsites_button_text": "ويرايش",
   "edit_topsites_edit_button": "ویرایش این سایت",
   "topsites_form_add_header": "سایت برتر جدید",
   "topsites_form_edit_header": "ویرایش سایت برتر",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "عنوان را وارد کنید",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "افزودن",
   "topsites_form_save_button": "ذخیره",
   "topsites_form_cancel_button": "انصراف",
   "topsites_form_url_validation": "URL معتبر الزامی است",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "موضوع‌های محبوب:",
   "pocket_read_even_more": "مشاهده داستان‌های بیشتر",
-  "pocket_description": "محتواهای با کیفیتی را پیدا کنید که ممکن است از دست داده باشید، به کمک Pocket که اکنون بخشی از موزیلا است.",
   "highlights_empty_state": "مرور کردن را شروع کنید و شاهد تعداد زیادی مقاله، فیلم و صفحات خوبی باشید که اخیر مشاهده کرده اید یا نشانگ گذاری کرده اید.",
   "topstories_empty_state": "فعلا تموم شد. بعدا دوباره سر بزن تا مطالب جدید از {provider} ببینی. نمی‌تونی صبر کنی؟ یک موضوع محبوب رو انتخاب کن تا مطالب جالب مرتبط از سراسر دنیا رو پیدا کنی.",
   "manual_migration_explanation2": "فایرفاکس را با نشانک‌ها،‌ تاریخچه‌ها و کلمات عبور از سایر مرورگر ها تجربه کنید.",
   "manual_migration_cancel_button": "نه ممنون",
   "manual_migration_import_button": "هم‌اکنون وارد شوند",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,23 +108,35 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "نکات حفظ حریم خصوصی",
   "welcome_title": "به زبانه جدید خوش‌آمدید",
   "welcome_body": "فایرفاکس از این فضا برای نمایش نشانک‌ها، مقالات، ویدئوها و صفحات مرتبطی که به‌تازگی مشاهده کرده‌اید استفاده می‌کند، تا شما به راحتی دوباره به آنها دسترسی داشته باشید.",
   "welcome_label": "شناسایی گزینه‌های برجسته شما",
   "time_label_less_than_minute": "> ۱ دقیقه",
   "time_label_minute": "{number} د",
   "time_label_hour": "{number} س",
   "time_label_day": "{number} ر",
+  "settings_pane_header": "تنظیمات زبانه جدید",
+  "settings_pane_body2": "انتخاب کنید چیزی را که مایل هستید در این صفحه مشاهده کنید.",
+  "settings_pane_search_header": "جست‌وجو",
+  "settings_pane_search_body": "وب را از زبانه جدید خود جست‌وجو کنید.",
+  "settings_pane_topsites_body": "به وب‌سایت‌هایی که بیشترین بازدید از آنها را داشتید دسترسی داشته باشید.",
+  "settings_pane_topsites_options_showmore": "نمایش دو ردیفی",
   "settings_pane_bookmarks_header": "نشانک‌های اخیر",
   "settings_pane_bookmarks_body": "به‌تازگی شما نشانک‌هایی را در یک محل مناسب ساخته‌اید.",
   "settings_pane_visit_again_header": "مشاهده دوباره",
   "settings_pane_visit_again_body": "فایرفاکس بخش‌هایی از تاریخ‌چه مرورتان را که ممکن است بخواهید به یاد داشته باشید یا به آن‌ها بازگردید به شما نشان خواهد داد.",
+  "settings_pane_highlights_body2": "راه خود را در میان چیزهایی که دوست دارید پیدا کنید.چیزهایی که اخیرا مشاهده کرده اید یا نشانک ها.",
+  "settings_pane_highlights_options_visited": "سایت‌های بازدید شده",
+  "settings_pane_snippets_body": "بروزرسانی های شیرین و کوتاه موزیلا در مورد فایرفاکس،‌ فرهنگ اینترنت، و تصاویر تصادفی مناسبتی مطالعه کنید.",
+  "settings_pane_done_button": "انجام شد",
+  "settings_pane_topstories_options_sponsored": "نمایش داستان‌های حمایت شده",
   "edit_topsites_button_label": "قسمت سایت‌های برتر را سفارشی کنید",
   "edit_topsites_showmore_button": "نمایش بیشتر",
   "edit_topsites_showless_button": "نمایش کمتر",
   "edit_topsites_done_button": "انجام شد",
   "edit_topsites_pin_button": "چسباندن این سایت",
   "edit_topsites_unpin_button": "لغو سنجاق کردن این پایگاه اینترنتی",
   "edit_topsites_dismiss_button": "نادیده گرفتن این سایت",
   "edit_topsites_add_button": "افزودن",
   "edit_topsites_add_button_tooltip": "اضافه کردن به سایت های برتر",
-  "pocket_feedback_header": "بهترین‌های وب، گزینش شده توسط بیش از ۲۵ میلیون نفر."
+  "pocket_feedback_header": "بهترین‌های وب، گزینش شده توسط بیش از ۲۵ میلیون نفر.",
+  "pocket_description": "محتواهای با کیفیتی را پیدا کنید که ممکن است از دست داده باشید، به کمک Pocket که اکنون بخشی از موزیلا است."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Yiylo geese</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Yiylo geese" title="Yiylo geese"/><button id="searchSubmit" class="search-button" title="Yiylo"><span class="sr-only"><span>Yiylo</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Lowe dowrowe</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Uddit taƴre dosol ngonka</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Uddit taƴre dosol ngonka</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Loowdiiji lolluɗi:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Jalbine</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Uddit taƴre dosol ngonka</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
@@ -5,74 +5,62 @@ window.gActivityStreamStrings = {
   "header_highlights": "Jalbine",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Uddit dosol ngonka wonande {title}",
   "section_context_menu_button_sr": "Uddit taƴre dosol ngonka",
   "type_label_visited": "Yilliima",
   "type_label_bookmarked": "Bookmarked",
   "type_label_recommended": "Ina tiindii",
   "type_label_pocket": "Danndaama e Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Awtaama",
   "menu_action_bookmark": "Maanto ɗerewol",
   "menu_action_remove_bookmark": "Momtu maanto ɗerewol",
   "menu_action_open_new_window": "Open in a New Window",
   "menu_action_open_private_window": "Uddit e Henorde Suturo Hesere",
   "menu_action_dismiss": "Salo",
   "menu_action_delete": "Delete from History",
   "menu_action_pin": "Ñippu",
   "menu_action_unpin": "Ñippit",
   "confirm_history_delete_p1": "Aɗa yananaa yiɗde momtude kala cilol ngoo hello e to aslol maa?",
   "confirm_history_delete_notice_p2": "Ngal baɗal waawaa firteede.",
   "menu_action_save_to_pocket": "Danndu e Pocket",
   "menu_action_delete_pocket": "Momtu e Pocket",
   "menu_action_archive_pocket": "Mooftu nder Pocket",
-  "menu_action_show_file_mac_os": "Show in Finder",
-  "menu_action_show_file_windows": "Open Containing Folder",
-  "menu_action_show_file_linux": "Open Containing Folder",
-  "menu_action_show_file_default": "Show File",
-  "menu_action_open_file": "Open File",
-  "menu_action_copy_download_link": "Copy Download Link",
-  "menu_action_go_to_download_page": "Go to Download Page",
-  "menu_action_remove_download": "Remove from History",
+  "menu_action_show_file_mac_os": "Hollit e Finder",
+  "menu_action_show_file_windows": "Uddit loowdi doosiyee",
+  "menu_action_show_file_linux": "Uddit loowdi doosiyee",
+  "menu_action_show_file_default": "Hollit fiilde",
+  "menu_action_open_file": "Uddit Fiilde",
+  "menu_action_copy_download_link": "Natto jokkorde awtaande ndee",
+  "menu_action_go_to_download_page": "Yah to hello awtaango ngoo",
+  "menu_action_remove_download": "Momtu ɗum e kewol hee",
   "search_button": "Yiylo",
   "search_header": "{search_engine_name} Yiylo",
   "search_web_placeholder": "Yiylo geese",
   "section_disclaimer_topstories": "Daarti ɓurɗi teeŋtude e geese ɗee, cuɓaaɗi e yowitaade e ko tarɗaa. Ummoraade e Pocket, jeyaaɗo jooni e Mozilla.",
   "section_disclaimer_topstories_linktext": "Humpito hol no ɗum gollortoo.",
   "section_disclaimer_topstories_buttontext": "Eey, mi faamii",
   "prefs_home_header": "Loowdi Jaɓɓorgo Firefox",
   "prefs_home_description": "Suɓo hol loowdi njiɗɗaa e yaynirde jaɓɓorgo Firefox maa.",
-  "prefs_restore_defaults_button": "Artir goowaaɗe",
-  "prefs_section_rows_option": "{num} row;{num} rows",
+  "prefs_section_rows_option": "{num} gorol;{num} gorol",
   "prefs_search_header": "Njiilaw Geese",
   "prefs_topsites_description": "Lowe ɗe ɓurɗaa waawde yillaade",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Ɓeydu humpito",
   "prefs_highlights_description": "Suɓngo lowe ɗe ndannduɗaa walla ɗe njilliɗaa",
-  "prefs_highlights_options_visited_label": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "prefs_highlights_options_visited_label": "Kelle jiyaaɗe",
+  "prefs_highlights_options_download_label": "Cakkitiiɗe awteede",
+  "prefs_highlights_options_pocket_label": "Kelle kisnaaɗe e Pocket",
   "prefs_snippets_description": "Kesɗitineiwde e Mozilla kañum e Firefox",
   "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Suɓo ko njiyataa e ngoo hello.",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the websites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Jalbine",
-  "settings_pane_highlights_body2": "Yiytu laawol maa ruttaade e geɗe maantinɗe jilliɗaa ko ɓooyaani walla maantoraaɗe.",
   "settings_pane_highlights_options_bookmarks": "Maantore",
-  "settings_pane_highlights_options_visited": "Lowe Jillaaɗe",
   "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": "Hollu Daarti Tammbitaaɗi",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "Lowre Dowrowre Hesere",
   "topsites_form_edit_header": "Taƴto Lowre Dowrowre",
   "topsites_form_title_label": "Tiitoonde",
   "topsites_form_title_placeholder": "Naatnu tiitoonde",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,27 +69,30 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Ɓeydu",
   "topsites_form_save_button": "Danndu",
   "topsites_form_cancel_button": "Haaytu",
   "topsites_form_url_validation": "URL Moƴƴo ina naamnaa",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Loowdiiji lolluɗi:",
   "pocket_read_even_more": "Yiy Daarti Goɗɗi",
-  "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": "Ƴ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",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
   "section_menu_action_privacy_notice": "Privacy Notice",
-  "prefs_topstories_description": "Loowdiiji baɗɗi faayiida ɗi mbaawɗaa ŋakkireede",
-  "prefs_topstories_show_sponsored_label": "{provider} daarti tammbitaaɗi"
+  "prefs_restore_defaults_button": "Artir goowaaɗe",
+  "settings_pane_body2": "Suɓo ko njiyataa e ngoo hello.",
+  "settings_pane_highlights_body2": "Yiytu laawol maa ruttaade e geɗe maantinɗe jilliɗaa ko ɓooyaani walla maantoraaɗe.",
+  "settings_pane_highlights_options_visited": "Lowe Jillaaɗe",
+  "settings_pane_topstories_options_sponsored": "Hollu Daarti Tammbitaaɗi",
+  "pocket_description": "Yiytu loowdi waɗndi faayiida ndi ina gasa luppuɗaa, wonndude e ballal ummoraade e Pocket, jeyaaɗo jooni e Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Verkkohaku</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Verkkohaku" title="Verkkohaku"/><button id="searchSubmit" class="search-button" title="Haku"><span class="sr-only"><span>Haku</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Ykkössivustot</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avaa osion ponnahdusvalikko</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Muokkaa tätä sivustoa"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Suositukset lähteestä Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avaa osion ponnahdusvalikko</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Suositut aiheet:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Nostot</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avaa osion ponnahdusvalikko</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Muokkaa Uusi välilehti -sivua"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Haku",
   "search_header": "{search_engine_name}-haku",
   "search_web_placeholder": "Verkkohaku",
   "section_disclaimer_topstories": "Verkon kiinnostavimmat jutut, lukemasi perusteella valittuna. Pocketilta, joka on nyt osa Mozillaa.",
   "section_disclaimer_topstories_linktext": "Lue, miten tämä toimii.",
   "section_disclaimer_topstories_buttontext": "Selvä",
   "prefs_home_header": "Firefoxin aloitussivun sisältö",
   "prefs_home_description": "Valitse Firefoxin aloitussivulle haluamasi sisältö.",
-  "prefs_restore_defaults_button": "Palauta oletukset",
   "prefs_section_rows_option": "{num} rivi;{num} riviä",
   "prefs_search_header": "Verkkohaku",
   "prefs_topsites_description": "Useimmin vierailemasi sivustot",
   "prefs_topstories_description2": "Hyvää sisältöä kaikkialta verkosta, juuri sinulle",
   "prefs_topstories_options_sponsored_label": "Sponsoroidut tarinat",
   "prefs_topstories_sponsored_learn_more": "Lue lisää",
   "prefs_highlights_description": "Valikoima sivustoja, joilla olet käynyt tai jotka olet tallentanut",
   "prefs_highlights_options_visited_label": "Vieraillut sivustot",
   "prefs_highlights_options_download_label": "Viimeisimmät lataukset",
   "prefs_highlights_options_pocket_label": "Pocketiin tallennetut sivut",
   "prefs_snippets_description": "Päivitykset Mozillalta ja Firefoxilta",
   "settings_pane_button_label": "Muokkaa Uusi välilehti -sivua",
-  "settings_pane_header": "Uuden välilehden asetukset",
-  "settings_pane_body2": "Valitse, mitä haluat nähdä tällä sivulla.",
-  "settings_pane_search_header": "Haku",
-  "settings_pane_search_body": "Tee verkkohakuja uudesta välilehdestä.",
   "settings_pane_topsites_header": "Ykkössivustot",
-  "settings_pane_topsites_body": "Näe eniten vierailemasi sivustot.",
-  "settings_pane_topsites_options_showmore": "Näytä kaksi riviä",
   "settings_pane_highlights_header": "Nostot",
-  "settings_pane_highlights_body2": "Löydä tiesi takaisin kiinnostaviin juttuihin, joissa olet käynyt tai jotka olet lisännyt kirjanmerkkeihin viime aikoina.",
   "settings_pane_highlights_options_bookmarks": "Kirjanmerkit",
-  "settings_pane_highlights_options_visited": "Vieraillut sivustot",
   "settings_pane_snippets_header": "Tiedonmuruset",
-  "settings_pane_snippets_body": "Lue Mozillan lyhyitä päivityksiä liittyen Firefoxiin, internetkulttuuriin ja satunnaisiin meemeihin.",
-  "settings_pane_done_button": "Valmis",
-  "settings_pane_topstories_options_sponsored": "Näytä sponsoroidut jutut",
   "edit_topsites_button_text": "Muokkaa",
   "edit_topsites_edit_button": "Muokkaa tätä sivustoa",
   "topsites_form_add_header": "Uusi ykkössivusto",
   "topsites_form_edit_header": "Muokkaa ykkössivustoa",
   "topsites_form_title_label": "Otsikko",
   "topsites_form_title_placeholder": "Kirjoita otsikko",
   "topsites_form_url_label": "Osoite",
   "topsites_form_image_url_label": "Oman kuvan osoite",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Esikatsele",
   "topsites_form_add_button": "Lisää",
   "topsites_form_save_button": "Tallenna",
   "topsites_form_cancel_button": "Peruuta",
   "topsites_form_url_validation": "Kelvollinen osoite vaaditaan",
   "topsites_form_image_validation": "Kuvan lataaminen epäonnistui. Kokeile toista osoitetta.",
   "pocket_read_more": "Suositut aiheet:",
   "pocket_read_even_more": "Katso lisää juttuja",
-  "pocket_description": "Löydä laadukasta sisältöä, josta olisit muutoin ehkä jäänyt paitsi. Pocketilta, joka on nyt osa Mozillaa.",
   "highlights_empty_state": "Ala selata, niin tässä alkaa näkyä hyviä juttuja, videoita ja muita sivuja, joilla olet käynyt hiljattain tai jotka olet lisännyt kirjanmerkkeihin.",
   "topstories_empty_state": "Ei enempää suosituksia juuri nyt. Katso myöhemmin uudestaan lisää ykkösjuttuja lähteestä {provider}. Etkö malta odottaa? Valitse suosittu aihe ja löydä lisää hyviä juttuja ympäri verkkoa.",
   "manual_migration_explanation2": "Kokeile Firefoxia toisesta selaimesta tuotujen kirjanmerkkien, historian ja salasanojen kanssa.",
   "manual_migration_cancel_button": "Ei kiitos",
   "manual_migration_import_button": "Tuo nyt",
   "error_fallback_default_info": "Hups, jotain meni vikaan tätä sisältöä ladattaessa.",
   "error_fallback_default_refresh_suggestion": "Yritä uudestaan päivittämällä sivu.",
   "section_menu_action_remove_section": "Poista osio",
   "section_menu_action_collapse_section": "Pienennä osio",
   "section_menu_action_expand_section": "Laajenna osio",
   "section_menu_action_manage_section": "Muokkaa osiota",
   "section_menu_action_add_topsite": "Lisää ykkössivusto",
   "section_menu_action_move_up": "Siirrä ylös",
   "section_menu_action_move_down": "Siirrä alas",
-  "section_menu_action_privacy_notice": "Tietosuojakäytäntö"
+  "section_menu_action_privacy_notice": "Tietosuojakäytäntö",
+  "prefs_restore_defaults_button": "Palauta oletukset",
+  "settings_pane_header": "Uuden välilehden asetukset",
+  "settings_pane_body2": "Valitse, mitä haluat nähdä tällä sivulla.",
+  "settings_pane_search_header": "Haku",
+  "settings_pane_search_body": "Tee verkkohakuja uudesta välilehdestä.",
+  "settings_pane_topsites_body": "Näe eniten vierailemasi sivustot.",
+  "settings_pane_topsites_options_showmore": "Näytä kaksi riviä",
+  "settings_pane_highlights_body2": "Löydä tiesi takaisin kiinnostaviin juttuihin, joissa olet käynyt tai jotka olet lisännyt kirjanmerkkeihin viime aikoina.",
+  "settings_pane_highlights_options_visited": "Vieraillut sivustot",
+  "settings_pane_snippets_body": "Lue Mozillan lyhyitä päivityksiä liittyen Firefoxiin, internetkulttuuriin ja satunnaisiin meemeihin.",
+  "settings_pane_done_button": "Valmis",
+  "settings_pane_topstories_options_sponsored": "Näytä sponsoroidut jutut",
+  "pocket_description": "Löydä laadukasta sisältöä, josta olisit muutoin ehkä jäänyt paitsi. Pocketilta, joka on nyt osa Mozillaa."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Rechercher sur le Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Rechercher sur le Web" title="Rechercher sur le Web"/><button id="searchSubmit" class="search-button" title="Rechercher"><span class="sr-only"><span>Rechercher</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sites les plus visités</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ouvrir le menu contextuel de cette section</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifier ce site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommandations par Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ouvrir le menu contextuel de cette section</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Sujets populaires :</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Éléments-clés</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ouvrir le menu contextuel de cette section</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personnaliser la page Nouvel onglet"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Rechercher",
   "search_header": "Recherche {search_engine_name}",
   "search_web_placeholder": "Rechercher sur le Web",
   "section_disclaimer_topstories": "Les articles les plus intéressants du Web, sélectionnés selon ce que vous lisez. Et ceci grâce à Pocket, qui fait désormais partie de Mozilla.",
   "section_disclaimer_topstories_linktext": "Découvrez comment cela fonctionne.",
   "section_disclaimer_topstories_buttontext": "J’ai compris",
   "prefs_home_header": "Contenu de la page d’accueil de Firefox",
   "prefs_home_description": "Choisissez le contenu que vous souhaitez pour la page d’accueil de Firefox.",
-  "prefs_restore_defaults_button": "Configuration par défaut",
   "prefs_section_rows_option": "{num} ligne;{num} lignes",
   "prefs_search_header": "Recherche web",
   "prefs_topsites_description": "Les sites que vous visitez le plus",
   "prefs_topstories_description2": "Du contenu intéressant en provenance du Web, personnalisé pour vous",
   "prefs_topstories_options_sponsored_label": "Articles sponsorisés",
   "prefs_topstories_sponsored_learn_more": "En savoir plus",
   "prefs_highlights_description": "Une sélection de sites que vous avez sauvegardés ou visités",
   "prefs_highlights_options_visited_label": "Pages visitées",
   "prefs_highlights_options_download_label": "Dernier téléchargement",
   "prefs_highlights_options_pocket_label": "Pages enregistrées dans Pocket",
   "prefs_snippets_description": "Actualité de Mozilla et Firefox",
   "settings_pane_button_label": "Personnaliser la page Nouvel onglet",
-  "settings_pane_header": "Préférences Nouvel onglet",
-  "settings_pane_body2": "Choisissez les éléments à afficher sur la page.",
-  "settings_pane_search_header": "Recherche",
-  "settings_pane_search_body": "Effectuez une recherche sur le Web depuis le nouvel onglet.",
   "settings_pane_topsites_header": "Sites les plus visités",
-  "settings_pane_topsites_body": "Accédez aux sites que vous consultez le plus.",
-  "settings_pane_topsites_options_showmore": "Afficher deux lignes",
   "settings_pane_highlights_header": "Éléments-clés",
-  "settings_pane_highlights_body2": "Retrouvez des pages intéressantes que vous avez visitées récemment ou ajoutées aux marque-pages.",
   "settings_pane_highlights_options_bookmarks": "Marque-pages",
-  "settings_pane_highlights_options_visited": "Sites visités",
   "settings_pane_snippets_header": "Brèves",
-  "settings_pane_snippets_body": "Consultez les brèves de Mozilla à propos de Firefox, la culture Internet, mais aussi quelques mèmes Internet de temps en temps.",
-  "settings_pane_done_button": "Terminé",
-  "settings_pane_topstories_options_sponsored": "Afficher les articles sponsorisés",
   "edit_topsites_button_text": "Modifier",
   "edit_topsites_edit_button": "Modifier ce site",
   "topsites_form_add_header": "Nouveau site populaire",
   "topsites_form_edit_header": "Modifier le site populaire",
   "topsites_form_title_label": "Titre",
   "topsites_form_title_placeholder": "Saisir un titre",
   "topsites_form_url_label": "Adresse web",
   "topsites_form_image_url_label": "URL de l’image personnalisée",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Aperçu",
   "topsites_form_add_button": "Ajouter",
   "topsites_form_save_button": "Enregistrer",
   "topsites_form_cancel_button": "Annuler",
   "topsites_form_url_validation": "Adresse web valide requise",
   "topsites_form_image_validation": "Échec du chargement de l’image. Essayez avec une autre URL.",
   "pocket_read_more": "Sujets populaires :",
   "pocket_read_even_more": "Afficher plus d’articles",
-  "pocket_description": "Grâce à Pocket, faisant désormais partie de Mozilla, découvrez du contenu de grande qualité que vous auriez pu manquer dans le cas contraire.",
   "highlights_empty_state": "Commencez à naviguer puis nous afficherons des articles, des vidéos ou d’autres pages que vous avez récemment visités ou ajoutés aux marque-pages.",
   "topstories_empty_state": "Il n’y en a pas d’autres. Revenez plus tard pour plus d’articles de {provider}. Vous ne voulez pas attendre ? Choisissez un sujet parmi les plus populaires pour découvrir d’autres articles intéressants sur le Web.",
   "manual_migration_explanation2": "Essayez Firefox en important les marque-pages, l’historique et les mots de passe depuis un autre navigateur.",
   "manual_migration_cancel_button": "Non merci",
   "manual_migration_import_button": "Importer",
   "error_fallback_default_info": "Oups, une erreur s’est produite lors du chargement du contenu.",
   "error_fallback_default_refresh_suggestion": "Actualisez la page pour réessayer.",
   "section_menu_action_remove_section": "Supprimer la section",
   "section_menu_action_collapse_section": "Réduire la section",
   "section_menu_action_expand_section": "Développer la section",
   "section_menu_action_manage_section": "Gérer la section",
   "section_menu_action_add_topsite": "Ajouter un site populaire",
   "section_menu_action_move_up": "Déplacer vers le haut",
   "section_menu_action_move_down": "Déplacer vers le bas",
-  "section_menu_action_privacy_notice": "Politique de confidentialité"
+  "section_menu_action_privacy_notice": "Politique de confidentialité",
+  "prefs_restore_defaults_button": "Configuration par défaut",
+  "settings_pane_header": "Préférences Nouvel onglet",
+  "settings_pane_body2": "Choisissez les éléments à afficher sur la page.",
+  "settings_pane_search_header": "Recherche",
+  "settings_pane_search_body": "Effectuez une recherche sur le Web depuis le nouvel onglet.",
+  "settings_pane_topsites_body": "Accédez aux sites que vous consultez le plus.",
+  "settings_pane_topsites_options_showmore": "Afficher deux lignes",
+  "settings_pane_highlights_body2": "Retrouvez des pages intéressantes que vous avez visitées récemment ou ajoutées aux marque-pages.",
+  "settings_pane_highlights_options_visited": "Sites visités",
+  "settings_pane_snippets_body": "Consultez les brèves de Mozilla à propos de Firefox, la culture Internet, mais aussi quelques mèmes Internet de temps en temps.",
+  "settings_pane_done_button": "Terminé",
+  "settings_pane_topstories_options_sponsored": "Afficher les articles sponsorisés",
+  "pocket_description": "Grâce à Pocket, faisant désormais partie de Mozilla, découvrez du contenu de grande qualité que vous auriez pu manquer dans le cas contraire."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Sykje op it web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Sykje op it web" title="Sykje op it web"/><button id="searchSubmit" class="search-button" title="Sykje"><span class="sr-only"><span>Sykje</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Topwebsites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstmenu fan seksje iepenje</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Dizze side bewurkje"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Oanrekommandearre troch Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstmenu fan seksje iepenje</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populêre ûnderwerpen:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Hichtepunten</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstmenu fan seksje iepenje</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Jo side foar nije ljepblêden oanpasse"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Sykje",
   "search_header": "{search_engine_name} trochsykje",
   "search_web_placeholder": "Sykje op it web",
   "section_disclaimer_topstories": "De meast ynteressante ferhalen op it web, selektearre op basis fan wat jo lêzen hawwe. Fan Pocket, no ûnderdiel fan Mozilla.",
   "section_disclaimer_topstories_linktext": "Lês hoe't it wurket.",
   "section_disclaimer_topstories_buttontext": "Oké, begrepen",
   "prefs_home_header": "Ynhâld fan Firefox-startside",
   "prefs_home_description": "Kies hokker ynhâld jo op jo Firefox-startside werjaan wolle.",
-  "prefs_restore_defaults_button": "Standertwearden opnij ynstelle",
   "prefs_section_rows_option": "{num} rige;{num} rigen",
   "prefs_search_header": "Sykje op it web",
   "prefs_topsites_description": "De troch jo meast besochte websites",
   "prefs_topstories_description2": "Bjusterbaarlike ynhâld fan it ynternet, oanpast foar jo",
   "prefs_topstories_options_sponsored_label": "Sponsore ferhalen",
   "prefs_topstories_sponsored_learn_more": "Mear ynfo",
   "prefs_highlights_description": "In seleksje fan websites dy't jo bewarre of besocht hawwe",
   "prefs_highlights_options_visited_label": "Besochte siden",
   "prefs_highlights_options_download_label": "Meast resinte download",
   "prefs_highlights_options_pocket_label": "Siden bewarre nei Pocket",
   "prefs_snippets_description": "Fernijingen fan Mozilla en Firefox",
   "settings_pane_button_label": "Jo side foar nije ljepblêden oanpasse",
-  "settings_pane_header": "Nij ljepblêdfoarkarren",
-  "settings_pane_body2": "Kies wat jo op dizze side sjogge.",
-  "settings_pane_search_header": "Sykje",
-  "settings_pane_search_body": "Sykje op it web fan jo nije ljepblêd út.",
   "settings_pane_topsites_header": "Topwebsites",
-  "settings_pane_topsites_body": "Benaderje de websites dy't jo it meast besykje.",
-  "settings_pane_topsites_options_showmore": "Twa rigen toane",
   "settings_pane_highlights_header": "Hichtepunten",
-  "settings_pane_highlights_body2": "Fyn fluch ynteressante saken út jo blêdwizers en resint besocht siden werom.",
   "settings_pane_highlights_options_bookmarks": "Blêdwizers",
-  "settings_pane_highlights_options_visited": "Besochte websites",
   "settings_pane_snippets_header": "Koarte ynformaasje",
-  "settings_pane_snippets_body": "Lês koart nijs fan Mozilla oer Firefox, ynternetkultuer en somtiden in meme.",
-  "settings_pane_done_button": "Dien",
-  "settings_pane_topstories_options_sponsored": "Sponsore ferhalen toane",
   "edit_topsites_button_text": "Bewurkje",
   "edit_topsites_edit_button": "Dizze side bewurkje",
   "topsites_form_add_header": "Nije topwebsite",
   "topsites_form_edit_header": "Topwebsite tafoegje",
   "topsites_form_title_label": "Titel",
   "topsites_form_title_placeholder": "Titel ynfiere",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL fan oanpaste ôfbylding",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Foarbyld",
   "topsites_form_add_button": "Tafoegje",
   "topsites_form_save_button": "Bewarje",
   "topsites_form_cancel_button": "Annulearje",
   "topsites_form_url_validation": "Jildige URL fereaske",
   "topsites_form_image_validation": "Ofbylding koe net laden wurde. Probearje in oare URL.",
   "pocket_read_more": "Populêre ûnderwerpen:",
   "pocket_read_even_more": "Mear ferhalen besjen",
-  "pocket_description": "Untdek ynhâld fan hege kwaliteit mei help fan Pocket (no ûnderdiel fan Mozilla), dy't jo oars misten.",
   "highlights_empty_state": "Start mei sneupen en wy toane jo guon moaie artikelen, fideo's en oare siden dy't jo resint besocht hawwe of in blêdwizer fan makke hawwe.",
   "topstories_empty_state": "Jo binne by. Kom letter werom foar mear ferhalen fan {provider}. Kin jo net wachtsje? Selektearje in populêr ûnderwerp om mear ferhalen fan it ynternet te finen.",
   "manual_migration_explanation2": "Probearje Firefox en ymportearje de blêdwizers, skiednis en wachtwurden fan oare browsers.",
   "manual_migration_cancel_button": "Nee tankewol",
   "manual_migration_import_button": "No ymportearje",
   "error_fallback_default_info": "Oeps, der is wat misgien by it laden fan dizze ynhâld.",
   "error_fallback_default_refresh_suggestion": "Fernij de side om it opnij te probearjen.",
   "section_menu_action_remove_section": "Seksje fuortsmite",
   "section_menu_action_collapse_section": "Seksje ynklappe",
   "section_menu_action_expand_section": "Seksje útklappe",
   "section_menu_action_manage_section": "Seksje beheare",
   "section_menu_action_add_topsite": "Topwebsite tafoegje",
   "section_menu_action_move_up": "Omheech ferpleatse",
   "section_menu_action_move_down": "Omleech ferpleatse",
-  "section_menu_action_privacy_notice": "Privacyferklearring"
+  "section_menu_action_privacy_notice": "Privacyferklearring",
+  "prefs_restore_defaults_button": "Standertwearden opnij ynstelle",
+  "settings_pane_header": "Nij ljepblêdfoarkarren",
+  "settings_pane_body2": "Kies wat jo op dizze side sjogge.",
+  "settings_pane_search_header": "Sykje",
+  "settings_pane_search_body": "Sykje op it web fan jo nije ljepblêd út.",
+  "settings_pane_topsites_body": "Benaderje de websites dy't jo it meast besykje.",
+  "settings_pane_topsites_options_showmore": "Twa rigen toane",
+  "settings_pane_highlights_body2": "Fyn fluch ynteressante saken út jo blêdwizers en resint besocht siden werom.",
+  "settings_pane_highlights_options_visited": "Besochte websites",
+  "settings_pane_snippets_body": "Lês koart nijs fan Mozilla oer Firefox, ynternetkultuer en somtiden in meme.",
+  "settings_pane_done_button": "Dien",
+  "settings_pane_topstories_options_sponsored": "Sponsore ferhalen toane",
+  "pocket_description": "Untdek ynhâld fan hege kwaliteit mei help fan Pocket (no ûnderdiel fan Mozilla), dy't jo oars misten."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cuardaigh an Gréasán</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cuardaigh an Gréasán" title="Cuardaigh an Gréasán"/><button id="searchSubmit" class="search-button" title="Cuardach"><span class="sr-only"><span>Cuardach</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Barrshuímh</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cuir an suíomh seo in eagar"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Topaicí i mbéal an phobail:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Saincheap an Leathanach do Chluaisín Nua"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cuardach",
   "search_header": "Cuardach {search_engine_name}",
   "search_web_placeholder": "Cuardaigh an Gréasán",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Saincheap an Leathanach do Chluaisín Nua",
-  "settings_pane_header": "Sainroghanna do Chluaisín Nua",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Cuardach",
-  "settings_pane_search_body": "Cuardaigh an Gréasán go díreach ón gcluaisín nua.",
   "settings_pane_topsites_header": "Barrshuímh",
-  "settings_pane_topsites_body": "Na suímh Ghréasáin a dtugann tú cuairt orthu is minice.",
-  "settings_pane_topsites_options_showmore": "Taispeáin dhá shraith",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "Déanta",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "Eagar",
   "edit_topsites_edit_button": "Cuir an suíomh seo in eagar",
   "topsites_form_add_header": "Barrshuíomh Nua",
   "topsites_form_edit_header": "Cuir an Barrshuíomh in Eagar",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Cuir teideal isteach",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Cuir leis",
   "topsites_form_save_button": "Sábháil",
   "topsites_form_cancel_button": "Cealaigh",
   "topsites_form_url_validation": "URL neamhbhailí",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Topaicí i mbéal an phobail:",
   "pocket_read_even_more": "Tuilleadh Scéalta",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -117,23 +104,29 @@ window.gActivityStreamStrings = {
   "search_settings": "Socruithe Cuardaigh",
   "welcome_title": "Fáilte go dtí cluaisín nua",
   "welcome_body": "Úsáidfidh Firefox an spás seo chun na leabharmharcanna, ailt, físeáin, agus leathanaigh is tábhachtaí a thaispeáint duit, ionas go mbeidh tú in ann filleadh orthu gan stró.",
   "welcome_label": "Buaicphointí á lorg",
   "time_label_less_than_minute": "< 1 n",
   "time_label_minute": "{number}n",
   "time_label_hour": "{number}u",
   "time_label_day": "{number}l",
+  "settings_pane_header": "Sainroghanna do Chluaisín Nua",
   "settings_pane_body": "Roghnaigh na rudaí a fheicfidh tú nuair a osclóidh tú cluaisín nua.",
+  "settings_pane_search_header": "Cuardach",
+  "settings_pane_search_body": "Cuardaigh an Gréasán go díreach ón gcluaisín nua.",
+  "settings_pane_topsites_body": "Na suímh Ghréasáin a dtugann tú cuairt orthu is minice.",
+  "settings_pane_topsites_options_showmore": "Taispeáin dhá shraith",
   "settings_pane_bookmarks_header": "Leabharmharcanna Le Déanaí",
   "settings_pane_bookmarks_body": "Do chuid leabharmharcanna nua in áit amháin.",
   "settings_pane_visit_again_header": "Cuairt Arís",
   "settings_pane_visit_again_body": "Taispeánann Firefox nascanna ó do stair bhrabhsála a mbeadh suim agat filleadh orthu amach anseo.",
   "settings_pane_pocketstories_header": "Barrscéalta",
   "settings_pane_pocketstories_body": "Le Pocket, ball de theaghlach Mozilla, beidh tú ábalta teacht ar ábhar den chéad scoth go héasca.",
+  "settings_pane_done_button": "Déanta",
   "edit_topsites_button_label": "Saincheap na Barrshuímh",
   "edit_topsites_showmore_button": "Taispeáin níos mó",
   "edit_topsites_showless_button": "Taispeáin níos lú",
   "edit_topsites_done_button": "Déanta",
   "edit_topsites_pin_button": "Greamaigh an suíomh seo",
   "edit_topsites_unpin_button": "Díghreamaigh an suíomh seo",
   "edit_topsites_dismiss_button": "Ruaig an suíomh seo",
   "edit_topsites_add_button": "Cuir leis",
--- a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Lorg air an lìon</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Lorg air an lìon" title="Lorg air an lìon"/><button id="searchSubmit" class="search-button" title="Lorg"><span class="sr-only"><span>Lorg</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Brod nan làrach</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Fosgail clàr-taice co-theacsail na h-earrainn</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deasaich an làrach seo"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>’Ga mholadh le Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Fosgail clàr-taice co-theacsail na h-earrainn</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Cuspairean fèillmhor:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Sàr-roghainn</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Fosgail clàr-taice co-theacsail na h-earrainn</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Gnàthaich duilleag nan tabaichean ùra agad"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Lorg",
   "search_header": "Lorg le {search_engine_name}",
   "search_web_placeholder": "Lorg air an lìon",
   "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",
   "prefs_home_header": "Susbaint sgrìn mhòr Firefox",
   "prefs_home_description": "Tagh an t-susbaint a bu mhath leat fhaicinn air sgrìn mhòr Firefox",
-  "prefs_restore_defaults_button": "Aisig na bun-roghainnean",
   "prefs_section_rows_option": "{num} ràgh;{num} ràgh;{num} ràghan;{num} ràgh",
   "prefs_search_header": "Lorg air an lìon",
   "prefs_topsites_description": "Na làraichean air an tadhail thu as trice",
   "prefs_topstories_description2": "Sàr-shusbaint o fheadh an lìn, air a phearsantachadh dhut-sa",
   "prefs_topstories_options_sponsored_label": "Sgeulachdan sponsairichte",
   "prefs_topstories_sponsored_learn_more": "Barrachd fiosrachaidh",
   "prefs_highlights_description": "Taghadh de làraichean a shàbhail thu no air an do thadhail thu",
   "prefs_highlights_options_visited_label": "Duilleagan air an do thadhail thu",
   "prefs_highlights_options_download_label": "Air a luchdadh a-nuas o chionn goirid",
   "prefs_highlights_options_pocket_label": "Duilleagan air an sàbhaladh ann am Pocket",
   "prefs_snippets_description": "Ùrachaidhean o Mozilla is Firefox",
   "settings_pane_button_label": "Gnàthaich duilleag nan tabaichean ùra agad",
-  "settings_pane_header": "Roghainnean nan tabaichean ùra",
-  "settings_pane_body2": "Tagh na chì thu air an duilleag seo.",
-  "settings_pane_search_header": "Lorg",
-  "settings_pane_search_body": "Lorg air an lìon on taba ùr agad.",
   "settings_pane_topsites_header": "Brod nan làrach",
-  "settings_pane_topsites_body": "Faigh cothrom air na làraichean air an tadhail thu gu tric.",
-  "settings_pane_topsites_options_showmore": "Seall dà ràgh",
   "settings_pane_highlights_header": "Sàr-roghainn",
-  "settings_pane_highlights_body2": "Faigh greim gu furasta air rudan inntinneach air an do thadhail thu roimhe no a rinn thu comharran-lìn dhiubh.",
   "settings_pane_highlights_options_bookmarks": "Comharran-lìn",
-  "settings_pane_highlights_options_visited": "Làraichean a thadhladh orra",
   "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": "Seall sgeulachdan sponsairichte",
   "edit_topsites_button_text": "Deasaich",
   "edit_topsites_edit_button": "Deasaich an làrach seo",
   "topsites_form_add_header": "Brod làraich ùr",
   "topsites_form_edit_header": "Deasaich am brod làraich",
   "topsites_form_title_label": "Tiotal",
   "topsites_form_title_placeholder": "Cuir ainm a-steach",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL deilbh gnàthaichte",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ro-shealladh",
   "topsites_form_add_button": "Cuir ris",
   "topsites_form_save_button": "Sàbhail",
   "topsites_form_cancel_button": "Sguir dheth",
   "topsites_form_url_validation": "Tha feum air URL dligheach",
   "topsites_form_image_validation": "Dh’fhàillig luchdadh an deilbh. Feuch URL eile.",
   "pocket_read_more": "Cuspairean fèillmhor:",
   "pocket_read_even_more": "Seall barrachd sgeul",
-  "pocket_description": "Fiosraich sàr-shusbaint nach lorgadh tu ’s dòcha le taic o Pocket a tha ’na phàirt dhe Mozilla a-nis.",
   "highlights_empty_state": "Tòisich air brabhsadh is seallaidh sinn dhut an-seo cuid dhe na h-artaigilean, videothan is duilleagan eile air an do thadhail thu no a chuir thu ris na comharran-lìn o chionn ghoirid.",
   "topstories_empty_state": "Sin na naidheachdan uile o {provider} an-dràsta ach bidh barrachd ann a dh’aithghearr. No thoir sùil air cuspair air a bheil fèill mhòr is leugh na tha a’ dol mun cuairt air an lìon an-dràsta.",
   "manual_migration_explanation2": "Feuch Firefox leis na comharran-lìn, an eachdraidh ’s na faclan-faire o bhrabhsair eile.",
   "manual_migration_cancel_button": "Chan eil, tapadh leibh",
   "manual_migration_import_button": "Ion-phortaich an-dràsta",
   "error_fallback_default_info": "Ìoc, chaidh rudeigin cearr fhad ’s a bha sinn a’ luchdadh na susbaint seo.",
   "error_fallback_default_refresh_suggestion": "Ath-nuadhaich an duilleag airson fheuchainn ris a-rithist.",
   "section_menu_action_remove_section": "Thoir an earrann air falbh",
   "section_menu_action_collapse_section": "Co-theannaich an earrann",
   "section_menu_action_expand_section": "Leudaich an earrann",
   "section_menu_action_manage_section": "Stiùirich an earrann",
   "section_menu_action_add_topsite": "Cuir ris brod làraich",
   "section_menu_action_move_up": "Gluais suas",
   "section_menu_action_move_down": "Gluais sìos",
-  "section_menu_action_privacy_notice": "Sanas prìobhaideachd"
+  "section_menu_action_privacy_notice": "Sanas prìobhaideachd",
+  "prefs_restore_defaults_button": "Aisig na bun-roghainnean",
+  "settings_pane_header": "Roghainnean nan tabaichean ùra",
+  "settings_pane_body2": "Tagh na chì thu air an duilleag seo.",
+  "settings_pane_search_header": "Lorg",
+  "settings_pane_search_body": "Lorg air an lìon on taba ùr agad.",
+  "settings_pane_topsites_body": "Faigh cothrom air na làraichean air an tadhail thu gu tric.",
+  "settings_pane_topsites_options_showmore": "Seall dà ràgh",
+  "settings_pane_highlights_body2": "Faigh greim gu furasta air rudan inntinneach air an do thadhail thu roimhe no a rinn thu comharran-lìn dhiubh.",
+  "settings_pane_highlights_options_visited": "Làraichean a thadhladh orra",
+  "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": "Seall sgeulachdan sponsairichte",
+  "pocket_description": "Fiosraich sàr-shusbaint nach lorgadh tu ’s dòcha le taic o Pocket a tha ’na phàirt dhe Mozilla a-nis."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Buscar na Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Buscar na Web" title="Buscar na Web"/><button id="searchSubmit" class="search-button" title="Buscar"><span class="sr-only"><span>Buscar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sitios favoritos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menú contextual da sección</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este sitio"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menú contextual da sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destacados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menú contextual da sección</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalice a páxina de nova lapela"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Buscar",
   "search_header": "Busca de {search_engine_name}",
   "search_web_placeholder": "Buscar na Web",
   "section_disclaimer_topstories": "As historias máis interesantes da web, seleccionadas en función do que vostede lee. Grazas a Pocket, que agora é parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Coñeza como funciona.",
   "section_disclaimer_topstories_buttontext": "Entendín",
   "prefs_home_header": "Contido da páxina de inicio de Firefox",
   "prefs_home_description": "Escolla o contido que quere na pantalla de inicio de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar a configuración predeterminada",
   "prefs_section_rows_option": "{num} fila;{num} filas",
   "prefs_search_header": "Busca na web",
   "prefs_topsites_description": "Os sitios que máis visita",
   "prefs_topstories_description2": "Os mellores contidos dispoñíbeis na web, personalizados para vostede",
   "prefs_topstories_options_sponsored_label": "Historias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Máis información",
   "prefs_highlights_description": "Unha selección de sitios que gardou ou visitou",
   "prefs_highlights_options_visited_label": "Páxinas visitadas",
   "prefs_highlights_options_download_label": "A descarga máis recente",
   "prefs_highlights_options_pocket_label": "Páxinas gardadas en Pocket",
   "prefs_snippets_description": "Actualizacións de Mozilla e Firefox",
   "settings_pane_button_label": "Personalice a páxina de nova lapela",
-  "settings_pane_header": "Preferencias de nova lapela",
-  "settings_pane_body2": "Escolla que quere ver nesta páxina.",
-  "settings_pane_search_header": "Busca",
-  "settings_pane_search_body": "Busca na web dende a nova lapela.",
   "settings_pane_topsites_header": "Sitios favoritos",
-  "settings_pane_topsites_body": "Acceda aos sitios web que máis visita.",
-  "settings_pane_topsites_options_showmore": "Amosar dúas filas",
   "settings_pane_highlights_header": "Destacados",
-  "settings_pane_highlights_body2": "Atope algunhas páxinas interesantes que vostede xa visitou ou marcou recentemente.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sitios visitados",
   "settings_pane_snippets_header": "Fragmentos",
-  "settings_pane_snippets_body": "Lea noticias curtas de Mozilla sobre o Firefox, a cultura de Internet, e ocasionalmente, algún meme.",
-  "settings_pane_done_button": "Feito",
-  "settings_pane_topstories_options_sponsored": "Amosar historias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este sitio",
   "topsites_form_add_header": "Novo sitio favorito",
   "topsites_form_edit_header": "Editar sitio favorito",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Escribir un título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL da imaxe personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Previsualizar",
   "topsites_form_add_button": "Engadir",
   "topsites_form_save_button": "Gardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "Requírese un URL válido",
   "topsites_form_image_validation": "Produciuse un fallo ao cargar a imaxe. Probe un URL diferente.",
   "pocket_read_more": "Temas populares:",
   "pocket_read_even_more": "Ver máis historias",
-  "pocket_description": "Grazas a Pocket, que agora forma parte de Mozilla, poderá descubrir contido de gran calidade que doutra forma se perdería.",
   "highlights_empty_state": "Comece a navegar e aquí amosarémoslle algúns dos mellores artigos, vídeos e outras páxinas que visitara recentemente ou que engadira aos marcadores.",
   "topstories_empty_state": "Xa está ao día. Regrese máis tarde para ver máis historias de {provider}. Non pode agardar? Seleccione un tema popular e atopará máis historias interesantes da web.",
   "manual_migration_explanation2": "Probe Firefox cos marcadores, historial e contrasinais doutro navegador.",
   "manual_migration_cancel_button": "Non, grazas",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Vaites, produciuse un erro ao cargar este contido.",
   "error_fallback_default_refresh_suggestion": "Actualice a páxina para tentalo de novo.",
   "section_menu_action_remove_section": "Retirar sección",
   "section_menu_action_collapse_section": "Contraer sección",
   "section_menu_action_expand_section": "Expandir sección",
   "section_menu_action_manage_section": "Xestionar sección",
   "section_menu_action_add_topsite": "Engadir sitio favorito",
   "section_menu_action_move_up": "Subir",
   "section_menu_action_move_down": "Baixar",
-  "section_menu_action_privacy_notice": "Política de privacidade"
+  "section_menu_action_privacy_notice": "Política de privacidade",
+  "prefs_restore_defaults_button": "Restaurar a configuración predeterminada",
+  "settings_pane_header": "Preferencias de nova lapela",
+  "settings_pane_body2": "Escolla que quere ver nesta páxina.",
+  "settings_pane_search_header": "Busca",
+  "settings_pane_search_body": "Busca na web dende a nova lapela.",
+  "settings_pane_topsites_body": "Acceda aos sitios web que máis visita.",
+  "settings_pane_topsites_options_showmore": "Amosar dúas filas",
+  "settings_pane_highlights_body2": "Atope algunhas páxinas interesantes que vostede xa visitou ou marcou recentemente.",
+  "settings_pane_highlights_options_visited": "Sitios visitados",
+  "settings_pane_snippets_body": "Lea noticias curtas de Mozilla sobre o Firefox, a cultura de Internet, e ocasionalmente, algún meme.",
+  "settings_pane_done_button": "Feito",
+  "settings_pane_topstories_options_sponsored": "Amosar historias patrocinadas",
+  "pocket_description": "Grazas a Pocket, que agora forma parte de Mozilla, poderá descubrir contido de gran calidade que doutra forma se perdería."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Ñandutivevépe Jeheka</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Ñandutivevépe Jeheka" title="Ñandutivevépe Jeheka"/><button id="searchSubmit" class="search-button" title="Eheka"><span class="sr-only"><span>Eheka</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Tenda Ojehechavéva</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Eike poravorã vore jereguávape</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Embosako&#x27;i ko tenda"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket he&#x27;i ndéve reike hag̃ua</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Eike poravorã vore jereguávape</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Ñe&#x27;ẽmbyrã Ojehayhuvéva:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Mba&#x27;eporãitéva</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Eike poravorã vore jereguávape</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Eñemomba&#x27;e ne Tendayke Pyahu roguére"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Eheka",
   "search_header": "Eheka {search_engine_name} ndive",
   "search_web_placeholder": "Ñandutivevépe Jeheka",
   "section_disclaimer_topstories": "Mba'erechapyrã ñandutivevepegua ojeiporavóva ndéve g̃uarã ojejesareko rupi remoñe'ẽva jepi rehe. Pocket guive ha'éva ko'ág̃a Mozilla mba'e.",
   "section_disclaimer_topstories_linktext": "Eikuaave mba'éichapa oiko.",
   "section_disclaimer_topstories_buttontext": "Oĩma, hesakãma chéve",
   "prefs_home_header": "Kuatiarogue retepy Firefox ñepyrũháme",
   "prefs_home_description": "Eiporavo mba’e retepýpa eipota Firefox mba’erechaha ñepyrũháme.",
-  "prefs_restore_defaults_button": "Embojevy Ijypykueguáva",
   "prefs_section_rows_option": "{num} rysýi; {num} rysýi",
   "prefs_search_header": "Ñandutípe jeheka",
   "prefs_topsites_description": "Umi tenda ojeikeveha",
   "prefs_topstories_description2": "Iporãvéva ñanduti retepy, oñemomba’éva ndéve g̃uarã",
   "prefs_topstories_options_sponsored_label": "Tembiasakue jehepyme'ẽguáva",
   "prefs_topstories_sponsored_learn_more": "Kuaave",
   "prefs_highlights_description": "Tenda jeporavopy eñongatu térã eike hague",
   "prefs_highlights_options_visited_label": "Tenda jeikepyre",
   "prefs_highlights_options_download_label": "Oñemboguejy ramovéva",
   "prefs_highlights_options_pocket_label": "Kuatiarogue ñongatupyre Pocket-pe",
   "prefs_snippets_description": "Mozilla ha Firefox ñembohekopyahu",
   "settings_pane_button_label": "Eñemomba'e ne Tendayke Pyahu roguére",
-  "settings_pane_header": "Tendayke Pyahu Jeguererohoryrã",
-  "settings_pane_body2": "Eiporavo rehechaséva ko toguépe.",
-  "settings_pane_search_header": "Eheka",
-  "settings_pane_search_body": "Eheka ñandutivevépe tendayke pyahu guive.",
   "settings_pane_topsites_header": "Tenda Ojeikevéva",
-  "settings_pane_topsites_body": "Eike ñandutirenda rehechajepivévape.",
-  "settings_pane_topsites_options_showmore": "Mokõi tysýi jechauka",
   "settings_pane_highlights_header": "Mba'erechapyrã",
-  "settings_pane_highlights_body2": "Ehekajey tape reipuruva'ekue reg̃uahẽvo ñandutiroguépe reguerohorýva'ekue.",
   "settings_pane_highlights_options_bookmarks": "Techaukaha",
-  "settings_pane_highlights_options_visited": "Tenda Ojeikemáva",
   "settings_pane_snippets_header": "Mba'epehẽ",
-  "settings_pane_snippets_body": "Emoñe'ẽ mba'epyahu oĩva Firefox, Ñandutiveve reko térã memekuéra rehegua.",
-  "settings_pane_done_button": "Oĩmbáma",
-  "settings_pane_topstories_options_sponsored": "Ehechauka Mombe'upy ojehepyme'ẽva'ekue hese",
   "edit_topsites_button_text": "Mbosako'i",
   "edit_topsites_edit_button": "Embosako'i ko tenda",
   "topsites_form_add_header": "Tenda Pyahu Ojeikevéva",
   "topsites_form_edit_header": "Tenda Ojeikevéva Mbosako'i",
   "topsites_form_title_label": "Teratee",
   "topsites_form_title_placeholder": "Ehai herarã",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL ra’anga ñemomba’etepyre",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Jehecha ypy",
   "topsites_form_add_button": "Embojoapy",
   "topsites_form_save_button": "Ñongatu",
   "topsites_form_cancel_button": "Heja",
   "topsites_form_url_validation": "Oñeikotevẽ URL oiko porãva",
   "topsites_form_image_validation": "Ta’anga nehenyhẽkuái. Eipuru peteĩ URL iñambuéva.",
   "pocket_read_more": "Ñe'ẽmbyrã Ojehayhuvéva:",
   "pocket_read_even_more": "Ahechaseve Mombe'upy",
-  "pocket_description": "Ejuhu mba'erecharã iporãitéva Pocket rupive, ha'éva ko'ág̃a Mozilla rembipuru.",
   "highlights_empty_state": "Eñepyrũ eikundaha ha rohechaukáta ndéve mba'ehai, mba'erecharã oĩva ha ambue ñandutirenda reikeva'ekue ýrõ rembotechaukava'ekue.",
   "topstories_empty_state": "Ko'ág̃a reikuaapáma ipyahúva. Eikejey ag̃ave ápe eikuaávo mombe'upy pyahu {provider} oikuave'ẽva ndéve. Ndaikatuvéima reha'ãrõ? Eiporavo peteĩ ñe'ẽmbyrã ha emoñe'ẽve oĩvéva ñande yvy ape ári.",
   "manual_migration_explanation2": "Eipuru Firefox reheve techaukaha, tembiasakue ha ñe'ẽñemi ambue kundaharapegua.",
   "manual_migration_cancel_button": "Ag̃amiénte",
   "manual_migration_import_button": "Egueroike Ko'ág̃a",
   "error_fallback_default_info": "Ema'ẽ, mba’épa osẽvai henyhẽnguévo ko tetepy.",
   "error_fallback_default_refresh_suggestion": "Kuatiarogue mbopiro’y eñepyrũjey hag̃ua",
   "section_menu_action_remove_section": "Emboguete vore",
   "section_menu_action_collapse_section": "Embopytupa vore",
   "section_menu_action_expand_section": "Emyasãi vore",
   "section_menu_action_manage_section": "Eñagareko vorére",
   "section_menu_action_add_topsite": "Embojuaju Tenda ojeikeveha",
   "section_menu_action_move_up": "Jupi",
   "section_menu_action_move_down": "Guejy",
-  "section_menu_action_privacy_notice": "Marandu’i ñemiguáva"
+  "section_menu_action_privacy_notice": "Marandu’i ñemiguáva",
+  "prefs_restore_defaults_button": "Embojevy Ijypykueguáva",
+  "settings_pane_header": "Tendayke Pyahu Jeguererohoryrã",
+  "settings_pane_body2": "Eiporavo rehechaséva ko toguépe.",
+  "settings_pane_search_header": "Eheka",
+  "settings_pane_search_body": "Eheka ñandutivevépe tendayke pyahu guive.",
+  "settings_pane_topsites_body": "Eike ñandutirenda rehechajepivévape.",
+  "settings_pane_topsites_options_showmore": "Mokõi tysýi jechauka",
+  "settings_pane_highlights_body2": "Ehekajey tape reipuruva'ekue reg̃uahẽvo ñandutiroguépe reguerohorýva'ekue.",
+  "settings_pane_highlights_options_visited": "Tenda Ojeikemáva",
+  "settings_pane_snippets_body": "Emoñe'ẽ mba'epyahu oĩva Firefox, Ñandutiveve reko térã memekuéra rehegua.",
+  "settings_pane_done_button": "Oĩmbáma",
+  "settings_pane_topstories_options_sponsored": "Ehechauka Mombe'upy ojehepyme'ẽva'ekue hese",
+  "pocket_description": "Ejuhu mba'erecharã iporãitéva Pocket rupive, ha'éva ko'ág̃a Mozilla rembipuru."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>વેબ પર શોધો</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="વેબ પર શોધો" title="વેબ પર શોધો"/><button id="searchSubmit" class="search-button" title="શોધો"><span class="sr-only"><span>શોધો</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ટોચની સાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="આ સાઇટને સંપાદિત કરો"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>દ્વારા ભલામણ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>લોકપ્રિય વિષયો:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>હાઇલાઇટ્સ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>વિભાગ સંદર્ભ મેનૂ ખોલો</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="તમારા નવા ટૅબ પૃષ્ઠને કસ્ટમાઇઝ કરો"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "શોધો",
   "search_header": "{search_engine_name} શોધ કરો",
   "search_web_placeholder": "વેબ પર શોધો",
   "section_disclaimer_topstories": "વેબ પરની સૌથી રસપ્રદ વાર્તાઓ, તમે જે વાંચો છો તેના આધારે પસંદ કરેલ છે. Pocket થી, હવે Mozilla નો ભાગ.",
   "section_disclaimer_topstories_linktext": "તે કેવી રીતે કાર્ય કરે છે તે જાણો.",
   "section_disclaimer_topstories_buttontext": "ઠીક છે, સમજાઇ ગયું",
   "prefs_home_header": "Firefox મુખ્ય સામગ્રી",
   "prefs_home_description": "તમારી Firefox મુખ્ય સ્ક્રીન પર કઈ સામગ્રી તમે ઇચ્છો તે પસંદ કરો.",
-  "prefs_restore_defaults_button": "મૂળભૂતને પુન:સંગ્રહો",
   "prefs_section_rows_option": "{num} પંક્તિ;{num} પંક્તિઓ",
   "prefs_search_header": "વેબ શોધ",
   "prefs_topsites_description": "તમે સૌથી વધુ મુલાકાત લો છો તે સાઇટ્સ",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "વધુ શીખો",
   "prefs_highlights_description": "સાઇટ્સની પસંદગી કે જે તમે સાચવી અથવા મુલાકાત લીધી છે",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla અને Firefox તરફથી અપડેટ્સ",
   "settings_pane_button_label": "તમારા નવા ટૅબ પૃષ્ઠને કસ્ટમાઇઝ કરો",
-  "settings_pane_header": "નવી ટેબ પસંદગીઓ",
-  "settings_pane_body2": "તમે આ પૃષ્ઠ પર જે જુઓ છો તે પસંદ કરો.",
-  "settings_pane_search_header": "શોધો",
-  "settings_pane_search_body": "તમારા નવા ટૅબમાંથી વેબ પર શોધો.",
   "settings_pane_topsites_header": "ટોચની સાઇટ્સ",
-  "settings_pane_topsites_body": "તમે સૌથી વધુ મુલાકાત લો છો તે વેબસાઇટ્સને ઍક્સેસ કરો.",
-  "settings_pane_topsites_options_showmore": "બે પંક્તિઓ બતાવો",
   "settings_pane_highlights_header": "વીતી ગયેલું",
-  "settings_pane_highlights_body2": "તમે તાજેતરમાં મુલાકાત લીધેલા અથવા બુકમાર્ક કરેલી રસપ્રદ વસ્તુઓ પર તમારી રીત શોધો.",
   "settings_pane_highlights_options_bookmarks": "બુકમાર્ક્સ",
-  "settings_pane_highlights_options_visited": "મુલાકાત લીધેલ સાઇટ્સ",
   "settings_pane_snippets_header": "જાણકારી આપનારા ઉતારા ક કાપલીઓ",
-  "settings_pane_snippets_body": "ટૂંકી અને મીઠી સુધારાઓ વાંચો મોઝિલ્લાથી ફાયરફોક્સ વિશે, ઇન્ટરનેટ સંસ્કૃતિ અને પ્રસંગોપાત ફાવે તેમ મેમે વિશે.",
-  "settings_pane_done_button": "પૂરું",
-  "settings_pane_topstories_options_sponsored": "પ્રાયોજિત વાર્તાઓ બતાવો",
   "edit_topsites_button_text": "ફેરફાર કરો",
   "edit_topsites_edit_button": "આ સાઇટને સંપાદિત કરો",
   "topsites_form_add_header": "નવી ટોચની સાઇટ",
   "topsites_form_edit_header": "ટોચની સાઇટ સંપાદિત કરો",
   "topsites_form_title_label": "શીર્ષક",
   "topsites_form_title_placeholder": "શીર્ષક દાખલ કરો",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "વૈવિધ્યપૂર્ણ છબી URL",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "પૂર્વદર્શન",
   "topsites_form_add_button": "ઉમેરો",
   "topsites_form_save_button": "સાચવો",
   "topsites_form_cancel_button": "રદ કરો",
   "topsites_form_url_validation": "માન્ય URL આવશ્યક છે",
   "topsites_form_image_validation": "છબી લોડ થવામાં નિષ્ફળ. એક અલગ URL અજમાવી જુઓ.",
   "pocket_read_more": "લોકપ્રિય વિષયો:",
   "pocket_read_even_more": "વધુ વાર્તાઓ જુઓ",
-  "pocket_description": "ઉચ્ચ ગુણવત્તાવાળી સામગ્રી શોધો અન્યથા તમે ચૂકી જશો, પોકેટની સહાયથી, હવે મોઝિલાનો એક ભાગ છે.",
   "highlights_empty_state": "બ્રાઉઝ કરવું પ્રારંભ કરો અને અમે અહીં કેટલાક સરસ લેખો, વિડિઓઝ અને અન્ય પૃષ્ઠો દર્શાવીશું જે તમે તાજેતરમાં મુલાકાત લીધાં છે અથવા બુકમાર્ક કર્યા છે.",
   "topstories_empty_state": "તમે પકડાઈ ગયા છો. {પ્રદાતા} તરફથી વધુ ટોચની વાતો માટે પછીથી પાછા તપાસો. રાહ નથી જોઈ શકતા? સમગ્ર વેબ પરથી વધુ સુંદર વાર્તાઓ શોધવા માટે એક લોકપ્રિય વિષય પસંદ કરો.",
   "manual_migration_explanation2": "અન્ય બ્રાઉઝરથી બુકમાર્ક્સ, ઇતિહાસ અને પાસવર્ડ્સ સાથે ફાયરફોક્સ અજમાવો.",
   "manual_migration_cancel_button": "ના અભાર",
   "manual_migration_import_button": "હવે આયાત કરો",
   "error_fallback_default_info": "ઊફ્ફ, આ સામગ્રીને લોડ કરવામાં કંઈક ખોટું થયું.",
   "error_fallback_default_refresh_suggestion": "ફરી પ્રયાસ કરવા માટે પૃષ્ઠને તાજું કરો.",
   "section_menu_action_remove_section": "વિભાગ દૂર કરો",
   "section_menu_action_collapse_section": "વિભાગ સંકુચિત કરો",
   "section_menu_action_expand_section": "વિભાગ વિસ્તૃત કરો",
   "section_menu_action_manage_section": "વિભાગ સંચાલિત કરો",
   "section_menu_action_add_topsite": "ટોચની સાઇટ ઉમેરો",
   "section_menu_action_move_up": "ઉપર કરો",
   "section_menu_action_move_down": "નીચે કરો",
   "section_menu_action_privacy_notice": "ખાનગી સૂચના",
+  "prefs_restore_defaults_button": "મૂળભૂતને પુન:સંગ્રહો",
   "prefs_topstories_description": "ઉચ્ચ ગુણવત્તાવાળી સામગ્રી તમે અન્યથા ચૂકી શકો છો",
-  "prefs_topstories_show_sponsored_label": "{provider} પ્રાયોજિત વાર્તાઓ"
+  "prefs_topstories_show_sponsored_label": "{provider} પ્રાયોજિત વાર્તાઓ",
+  "settings_pane_header": "નવી ટેબ પસંદગીઓ",
+  "settings_pane_body2": "તમે આ પૃષ્ઠ પર જે જુઓ છો તે પસંદ કરો.",
+  "settings_pane_search_header": "શોધો",
+  "settings_pane_search_body": "તમારા નવા ટૅબમાંથી વેબ પર શોધો.",
+  "settings_pane_topsites_body": "તમે સૌથી વધુ મુલાકાત લો છો તે વેબસાઇટ્સને ઍક્સેસ કરો.",
+  "settings_pane_topsites_options_showmore": "બે પંક્તિઓ બતાવો",
+  "settings_pane_highlights_body2": "તમે તાજેતરમાં મુલાકાત લીધેલા અથવા બુકમાર્ક કરેલી રસપ્રદ વસ્તુઓ પર તમારી રીત શોધો.",
+  "settings_pane_highlights_options_visited": "મુલાકાત લીધેલ સાઇટ્સ",
+  "settings_pane_snippets_body": "ટૂંકી અને મીઠી સુધારાઓ વાંચો મોઝિલ્લાથી ફાયરફોક્સ વિશે, ઇન્ટરનેટ સંસ્કૃતિ અને પ્રસંગોપાત ફાવે તેમ મેમે વિશે.",
+  "settings_pane_done_button": "પૂરું",
+  "settings_pane_topstories_options_sponsored": "પ્રાયોજિત વાર્તાઓ બતાવો",
+  "pocket_description": "ઉચ્ચ ગુણવત્તાવાળી સામગ્રી શોધો અન્યથા તમે ચૂકી જશો, પોકેટની સહાયથી, હવે મોઝિલાનો એક ભાગ છે."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>חיפוש ברשת</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="חיפוש ברשת" title="חיפוש ברשת"/><button id="searchSubmit" class="search-button" title="חיפוש"><span class="sr-only"><span>חיפוש</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>אתרים מובילים</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>פתיחת תפריט ההקשר של המדור</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="עריכת אתר זה"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>מומלץ על ידי Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>פתיחת תפריט ההקשר של המדור</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>נושאים פופולריים:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>מומלצים</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>פתיחת תפריט ההקשר של המדור</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="התאמה אישית של דף הלשונית החדשה שלך"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "חיפוש",
   "search_header": "חיפוש ב־{search_engine_name}",
   "search_web_placeholder": "חיפוש ברשת",
   "section_disclaimer_topstories": "הסיפורים המעניינים ביותר באינטרנט, על בסיס מה שמעניין אותך. בעזרת Pocket, כיום חלק מ־Mozilla.",
   "section_disclaimer_topstories_linktext": "מידע על איך זה עובד.",
   "section_disclaimer_topstories_buttontext": "בסדר, הבנתי",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "בחירת תוכן שיוצג במסך הבית של Firefox.",
-  "prefs_restore_defaults_button": "שחזור ברירות מחדל",
   "prefs_section_rows_option": "שורה אחת;{num} שורות",
   "prefs_search_header": "חיפוש ברשת",
   "prefs_topsites_description": "האתרים בהם ביקרת הכי הרבה",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "מידע נוסף",
   "prefs_highlights_description": "מבחר של אתרים ששמרת או ביקרת בהם",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "עדכונים מ־Mozilla ו־Firefox",
   "settings_pane_button_label": "התאמה אישית של דף הלשונית החדשה שלך",
-  "settings_pane_header": "העדפות לשונית חדשה",
-  "settings_pane_body2": "בחירה של מה שיופיע בעמוד הזה.",
-  "settings_pane_search_header": "חיפוש",
-  "settings_pane_search_body": "חיפוש באינטרנט ישירות מהלשונית החדשה שלך.",
   "settings_pane_topsites_header": "אתרים מובילים",
-  "settings_pane_topsites_body": "גישה לאתרים בהם ביקרת הכי הרבה.",
-  "settings_pane_topsites_options_showmore": "הצגת שתי שורות",
   "settings_pane_highlights_header": "מומלצים",
-  "settings_pane_highlights_body2": "מציאת הדרך חזרה לדברים שמעניינים אותך בהתאם לפריטים בהם ביקרת לאחרונה או הוספת לסימניות.",
   "settings_pane_highlights_options_bookmarks": "סימניות",
-  "settings_pane_highlights_options_visited": "אתרים בהם ביקרת",
   "settings_pane_snippets_header": "פתקיות",
-  "settings_pane_snippets_body": "ניתן לקרוא עדכונים קטנים ומתוקים מ־Mozilla לגבי Firefox, תרבות האינטרנט ומם אקראי מדי פעם בפעם.",
-  "settings_pane_done_button": "סיום",
-  "settings_pane_topstories_options_sponsored": "הצגת סיפורים ממומנים",
   "edit_topsites_button_text": "עריכה",
   "edit_topsites_edit_button": "עריכת אתר זה",
   "topsites_form_add_header": "אתר מוביל חדש",
   "topsites_form_edit_header": "עריכת אתר מוביל",
   "topsites_form_title_label": "כותרת",
   "topsites_form_title_placeholder": "נא להזין כותרת",
   "topsites_form_url_label": "כתובת",
   "topsites_form_image_url_label": "כתובת תמונה מותאמת אישית",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "תצוגה מקדימה",
   "topsites_form_add_button": "הוספה",
   "topsites_form_save_button": "שמירה",
   "topsites_form_cancel_button": "ביטול",
   "topsites_form_url_validation": "נדרשת כתובת תקינה",
   "topsites_form_image_validation": "טעינת התמונה נכשלה. נא לנסות כתובת שונה.",
   "pocket_read_more": "נושאים פופולריים:",
   "pocket_read_even_more": "צפייה בחדשות נוספות",
-  "pocket_description": "ניתן להחשף לתוכן באיכות גבוהה שיתכן שלא היית רואה, בעזרת Pocket, שכיום מהווה חלק מ־Mozilla.",
   "highlights_empty_state": "ניתן להתחיל בגלישה ואנו נציג בפניך מספר כתבות, סרטונים ועמודים שונים מעולים בהם ביקרת לאחרונה או שהוספת לסימניות.",
   "topstories_empty_state": "התעדכנת בכל הסיפורים. כדאי לנסות שוב מאוחר יותר כדי לקבל עוד סיפורים מובילים מאת {provider}. לא רוצה לחכות? ניתן לבחור נושא נפוץ כדי למצוא עוד סיפורים נפלאים מרחבי הרשת.",
   "manual_migration_explanation2": "ניתן להתנסות ב־Firefox עם הסימניות, ההיסטוריה והססמאות מדפדפן אחר.",
   "manual_migration_cancel_button": "לא תודה",
   "manual_migration_import_button": "ייבוא כעת",
   "error_fallback_default_info": "אופס, משהו השתבש בעת טעינת התוכן הזה.",
   "error_fallback_default_refresh_suggestion": "נא לרענן את הדף כדי לנסות שוב.",
   "section_menu_action_remove_section": "הסרת מדור",
@@ -121,24 +108,37 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "הצהרת פרטיות",
   "welcome_title": "ברוכים הבאים לדף הלשונית החדשה",
   "welcome_body": "Firefox ישתמש באזור זה כדי להציג את הסימניות הרלוונטיות ביותר, מאמרים, סרטוני וידאו ודפים שביקרת בהם לאחרונה, כך שניתן יהיה לגשת אליהם שוב בקלות.",
   "welcome_label": "תחומי העניין שלך מזוהים",
   "time_label_less_than_minute": "פחות מדקה",
   "time_label_minute": "{number} דקות",
   "time_label_hour": "{number} שעות",
   "time_label_day": "{number} ימים",
+  "prefs_restore_defaults_button": "שחזור ברירות מחדל",
   "prefs_topstories_description": "תוכן באיכות גבוהה שעלול להתפספס",
   "prefs_topstories_show_sponsored_label": "סיפורים ממומנים של {provider}",
+  "settings_pane_header": "העדפות לשונית חדשה",
+  "settings_pane_body2": "בחירה של מה שיופיע בעמוד הזה.",
+  "settings_pane_search_header": "חיפוש",
+  "settings_pane_search_body": "חיפוש באינטרנט ישירות מהלשונית החדשה שלך.",
+  "settings_pane_topsites_body": "גישה לאתרים בהם ביקרת הכי הרבה.",
+  "settings_pane_topsites_options_showmore": "הצגת שתי שורות",
   "settings_pane_bookmarks_header": "סימניות אחרונות",
   "settings_pane_bookmarks_body": "הסימניות החדשות שיצרת במיקום נוח ואחיד.",
   "settings_pane_visit_again_header": "ביקור חוזר",
   "settings_pane_visit_again_body": "Firefox תציג לך חלקים מהיסטוריית הגלישה שלך שאולי יעניין אותך להיזכר בהם או לחזור אליהם.",
+  "settings_pane_highlights_body2": "מציאת הדרך חזרה לדברים שמעניינים אותך בהתאם לפריטים בהם ביקרת לאחרונה או הוספת לסימניות.",
+  "settings_pane_highlights_options_visited": "אתרים בהם ביקרת",
+  "settings_pane_snippets_body": "ניתן לקרוא עדכונים קטנים ומתוקים מ־Mozilla לגבי Firefox, תרבות האינטרנט ומם אקראי מדי פעם בפעם.",
+  "settings_pane_done_button": "סיום",
+  "settings_pane_topstories_options_sponsored": "הצגת סיפורים ממומנים",
   "edit_topsites_button_label": "התאמת אגף האתרים המובילים שלך",
   "edit_topsites_showmore_button": "להציג יותר",
   "edit_topsites_showless_button": "להציג פחות",
   "edit_topsites_done_button": "סיום",
   "edit_topsites_pin_button": "נעיצת אתר זה",
   "edit_topsites_unpin_button": "ביטול הצמדת אתר זה",
   "edit_topsites_dismiss_button": "הסרת אתר זה",
   "edit_topsites_add_button": "הוספה",
-  "pocket_feedback_header": "המיטב מרחבי האינטרנט, נאסף על ידי 25 מיליון אנשים."
+  "pocket_feedback_header": "המיטב מרחבי האינטרנט, נאסף על ידי 25 מיליון אנשים.",
+  "pocket_description": "ניתן להחשף לתוכן באיכות גבוהה שיתכן שלא היית רואה, בעזרת Pocket, שכיום מהווה חלק מ־Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>वेब पर खोजें</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="वेब पर खोजें" title="वेब पर खोजें"/><button id="searchSubmit" class="search-button" title="खोज"><span class="sr-only"><span>खोज</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>सर्वोच्च साइटें</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>अनुभाग प्रसंग मेनू खोलें</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="इस साइट को संपादित करें"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket द्वारा अनुशंसित</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>अनुभाग प्रसंग मेनू खोलें</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>लोकप्रिय विषय:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>झलकियाँ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>अनुभाग प्रसंग मेनू खोलें</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="अपने नए टैब पृष्ठ को अनुकूलित करें"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "खोज",
   "search_header": "{search_engine_name} खोज",
   "search_web_placeholder": "वेब पर खोजें",
   "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा.",
   "section_disclaimer_topstories_linktext": "जाने यह कैसे काम करता है.",
   "section_disclaimer_topstories_buttontext": "ठीक है, समझ गए",
   "prefs_home_header": "Firefox होम सामग्री",
   "prefs_home_description": "चुनें जो सामग्री आप अपने Firefox होम स्क्रीन पर चाहते हैं ।",
-  "prefs_restore_defaults_button": "डिफ़ॉल्ट पुनः स्थापित करे",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "वेब खोज",
   "prefs_topsites_description": "साइटों आप सबसे अधिक यात्रा",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "अधिक जानें",
   "prefs_highlights_description": "आपके द्वारा सहेजी गई या विज़िट की गई साइटों का चयन",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla और Firefox से अद्यतन",
   "settings_pane_button_label": "अपने नए टैब पृष्ठ को अनुकूलित करें",
-  "settings_pane_header": "नयी टैब वरीयताएँ",
-  "settings_pane_body2": "चुनें कि आप इस पृष्ठ पर क्या देखते हैं.",
-  "settings_pane_search_header": "खोज",
-  "settings_pane_search_body": "अपने नए टैब से वेब पर खोजें.",
   "settings_pane_topsites_header": "सर्वोच्च साइटें",
-  "settings_pane_topsites_body": "आपके द्वारा सबसे ज्यादा खोजी जाने वाली वेबसाइट्स देखें.",
-  "settings_pane_topsites_options_showmore": "दो पंक्तियाँ दिखाएँ",
   "settings_pane_highlights_header": "झलकियाँ",
-  "settings_pane_highlights_body2": "हाल ही में देखी गयी या पुस्तचिंहित की गयी रोचक चीज़ों पर वापस जाएँ.",
   "settings_pane_highlights_options_bookmarks": "पुस्तचिह्न",
-  "settings_pane_highlights_options_visited": "देखी गयीं साइटें",
   "settings_pane_snippets_header": "अंश",
-  "settings_pane_snippets_body": "Firefox, इंटरनेट संस्कृति और यादृच्छिक मीम के बारे में Mozilla के संक्षिप्त और प्यारे अपडेट पढ़ें.",
-  "settings_pane_done_button": "संपन्न",
-  "settings_pane_topstories_options_sponsored": "प्रायोजित कहानियाँ दिखाएँ",
   "edit_topsites_button_text": "संपादित करें",
   "edit_topsites_edit_button": "इस साइट को संपादित करें",
   "topsites_form_add_header": "नई शीर्ष साइट",
   "topsites_form_edit_header": "शीर्ष साइट संपादित करें",
   "topsites_form_title_label": "शीर्षक",
   "topsites_form_title_placeholder": "एक शीर्षक दर्ज करें",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "कस्टम छवि URL",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "पूर्वावलोकन",
   "topsites_form_add_button": "जोड़ें",
   "topsites_form_save_button": "सहेजें",
   "topsites_form_cancel_button": "रद्द करें",
   "topsites_form_url_validation": "मान्य URL आवश्यक",
   "topsites_form_image_validation": "छवि लोड करने में विफल । किसी भिंन URL का प्रयास करें ।",
   "pocket_read_more": "लोकप्रिय विषय:",
   "pocket_read_even_more": "और कहानियाँ देखें",
-  "pocket_description": "पॉकेट, जो अब Mozilla का हिस्सा है, की मदद से अन्यथा आपसे छूटने वाली उच्च-गुणवत्ता सामग्रियों को खोजें.",
   "highlights_empty_state": "ब्राउज़िंग प्रारंभ करें, और हम कुछ प्रमुख आलेख, विडियो, तथा अन्य पृष्ठों को प्रदर्शित करेंगे जिन्हें आपने हाल ही में देखा या पुस्तचिन्हित किया है.",
   "topstories_empty_state": "आप अंत तक आ गए हैं. {provider} से और शीर्ष घटनाओं के लिए कुछ समय में पुनः आइए. इंतज़ार नहीं कर सकते? वेब से और प्रमुख घटनाएं ढूंढने के लिए एक लोकप्रिय विषय चुनें.",
   "manual_migration_explanation2": "Firefox को किसी अन्य ब्राउज़र के पुस्तचिह्नों, इतिहास और पासवर्डों के साथ आज़माएं.",
   "manual_migration_cancel_button": "नहीं शुक्रिया",
   "manual_migration_import_button": "अब आयात करें",
   "error_fallback_default_info": "उफ़, कुछ गलत इस सामग्री लोड हो गया ।",
   "error_fallback_default_refresh_suggestion": "पुन: प्रयास करने के लिए पृष्ठ ताज़ा करें ।",
   "section_menu_action_remove_section": "अनुभाग निकालें",
   "section_menu_action_collapse_section": "अनुभाग संक्षिप्त करें",
   "section_menu_action_expand_section": "अनुभाग विस्तृत करें",
   "section_menu_action_manage_section": "अनुभाग प्रबंधित करें",
   "section_menu_action_add_topsite": "शीर्ष साइट जोड़ें",
   "section_menu_action_move_up": "ऊपर जाएँ",
   "section_menu_action_move_down": "नीचे जाएँ",
   "section_menu_action_privacy_notice": "गोपनीयता नीति",
+  "prefs_restore_defaults_button": "डिफ़ॉल्ट पुनः स्थापित करे",
   "prefs_topstories_description": "उच्च गुणवत्ता की सामग्री आप अंयथा याद कर सकते है",
-  "prefs_topstories_show_sponsored_label": "{provider} प्रायोजित कहानियां"
+  "prefs_topstories_show_sponsored_label": "{provider} प्रायोजित कहानियां",
+  "settings_pane_header": "नयी टैब वरीयताएँ",
+  "settings_pane_body2": "चुनें कि आप इस पृष्ठ पर क्या देखते हैं.",
+  "settings_pane_search_header": "खोज",
+  "settings_pane_search_body": "अपने नए टैब से वेब पर खोजें.",
+  "settings_pane_topsites_body": "आपके द्वारा सबसे ज्यादा खोजी जाने वाली वेबसाइट्स देखें.",
+  "settings_pane_topsites_options_showmore": "दो पंक्तियाँ दिखाएँ",
+  "settings_pane_highlights_body2": "हाल ही में देखी गयी या पुस्तचिंहित की गयी रोचक चीज़ों पर वापस जाएँ.",
+  "settings_pane_highlights_options_visited": "देखी गयीं साइटें",
+  "settings_pane_snippets_body": "Firefox, इंटरनेट संस्कृति और यादृच्छिक मीम के बारे में Mozilla के संक्षिप्त और प्यारे अपडेट पढ़ें.",
+  "settings_pane_done_button": "संपन्न",
+  "settings_pane_topstories_options_sponsored": "प्रायोजित कहानियाँ दिखाएँ",
+  "pocket_description": "पॉकेट, जो अब Mozilla का हिस्सा है, की मदद से अन्यथा आपसे छूटने वाली उच्च-गुणवत्ता सामग्रियों को खोजें."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Pretraži web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Pretraži web" title="Pretraži web"/><button id="searchSubmit" class="search-button" title="Traži"><span class="sr-only"><span>Traži</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Najbolje stranice</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi ovu stranicu"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Preporučeno od Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popularne teme:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Istaknuto</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Prilagodite svoju početnu stranicu nove kartice"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Traži",
   "search_header": "{search_engine_name} pretraživanje",
   "search_web_placeholder": "Pretraži web",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Prilagodite svoju početnu stranicu nove kartice",
-  "settings_pane_header": "Postavke nove kartice",
-  "settings_pane_body2": "Odaberite što vidite na ovoj stranici.",
-  "settings_pane_search_header": "Traži",
-  "settings_pane_search_body": "Pretražite Web iz nove kartice.",
   "settings_pane_topsites_header": "Najbolje stranice",
-  "settings_pane_topsites_body": "Pristupite stranicama koje najčešće posjećujete.",
-  "settings_pane_topsites_options_showmore": "Prikaži dva reda",
   "settings_pane_highlights_header": "Istaknuto",
-  "settings_pane_highlights_body2": "Pronađite put natrag do zanimljivih stvari koje ste nedavno posjetili ili zabilježili.",
   "settings_pane_highlights_options_bookmarks": "Zabilješke",
-  "settings_pane_highlights_options_visited": "Posjećene stranice",
   "settings_pane_snippets_header": "Isječci",
-  "settings_pane_snippets_body": "Pročitajte kratke i slatke obavijesti od Mozille o Firefoxu, internet kulturi i povremenim nasumičnim temama.",
-  "settings_pane_done_button": "Gotovo",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "Uredi",
   "edit_topsites_edit_button": "Uredi ovu stranicu",
   "topsites_form_add_header": "Nova najbolja stranica",
   "topsites_form_edit_header": "Uredi najbolju stranicu",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Unesi naslov",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Dodaj",
   "topsites_form_save_button": "Spremi",
   "topsites_form_cancel_button": "Otkaži",
   "topsites_form_url_validation": "Potrebno je unijeti ispravan URL",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popularne teme:",
   "pocket_read_even_more": "Prikaži više priča",
-  "pocket_description": "Otkrijte visoko kvalitetan sadržaj koji ste možda propustili, uz pomoć Pocketa koji je sada dio Mozille.",
   "highlights_empty_state": "Započnite pretraživati i pokazat ćemo vam neke od izvrsnih članaka, videa i drugih web stranica prema vašim nedavno posjećenim stranicama ili zabilješkama.",
   "topstories_empty_state": "Provjerite kasnije za više najpopularnijih priča od {provider}. Ne možete čekati? Odaberite popularne teme kako biste pronašli više kvalitetnih priča s cijelog weba.",
   "manual_migration_explanation2": "Probajte Firefox s zabilješkama, povijesti i lozinkama iz drugog pretraživača.",
   "manual_migration_cancel_button": "Ne hvala",
   "manual_migration_import_button": "Uvezi sada",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,22 +108,33 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Politika privatnosti",
   "welcome_title": "Dobro došli u novu karticu",
   "welcome_body": "Firefox će koristiti ovaj prostor kako bi vam pokazao najbitnije zabilješke, članke, video uratke i stranice koje ste nedavno posjetili, tako da se možete lako vratiti na njih.",
   "welcome_label": "Identificiranje istaknutog",
   "time_label_less_than_minute": "<1m",
   "time_label_minute": "{number}m",
   "time_label_hour": "{number}h",
   "time_label_day": "{number}d",
+  "settings_pane_header": "Postavke nove kartice",
+  "settings_pane_body2": "Odaberite što vidite na ovoj stranici.",
+  "settings_pane_search_header": "Traži",
+  "settings_pane_search_body": "Pretražite Web iz nove kartice.",
+  "settings_pane_topsites_body": "Pristupite stranicama koje najčešće posjećujete.",
+  "settings_pane_topsites_options_showmore": "Prikaži dva reda",
   "settings_pane_bookmarks_header": "Nedavne zabilješke",
   "settings_pane_bookmarks_body": "Vaše novo stvorene zabilješke na jednom praktičnom mjestu.",
   "settings_pane_visit_again_header": "Posjetite ponovno",
   "settings_pane_visit_again_body": "Firefox će vam prikazati dijelove vaše povijesti pretraživanja koje možda želite zapamtiti ili posjetiti ponovno.",
+  "settings_pane_highlights_body2": "Pronađite put natrag do zanimljivih stvari koje ste nedavno posjetili ili zabilježili.",
+  "settings_pane_highlights_options_visited": "Posjećene stranice",
+  "settings_pane_snippets_body": "Pročitajte kratke i slatke obavijesti od Mozille o Firefoxu, internet kulturi i povremenim nasumičnim temama.",
+  "settings_pane_done_button": "Gotovo",
   "edit_topsites_button_label": "Prilagodite odjel s najboljim stranicama",
   "edit_topsites_showmore_button": "Prikaži više",
   "edit_topsites_showless_button": "Prikaži manje",
   "edit_topsites_done_button": "Gotovo",
   "edit_topsites_pin_button": "Zakači stranicu",
   "edit_topsites_unpin_button": "Otkači ovu stranicu",
   "edit_topsites_dismiss_button": "Odbaci stranicu",
   "edit_topsites_add_button": "Dodaj",
-  "pocket_feedback_header": "Najbolje od interneta, birano od preko 25 miliona ljudi."
+  "pocket_feedback_header": "Najbolje od interneta, birano od preko 25 miliona ljudi.",
+  "pocket_description": "Otkrijte visoko kvalitetan sadržaj koji ste možda propustili, uz pomoć Pocketa koji je sada dio Mozille."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Web přepytać</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Web přepytać" title="Web přepytać"/><button id="searchSubmit" class="search-button" title="Pytać"><span class="sr-only"><span>Pytać</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Najhusćišo wopytane sydła</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wotrězka wočinić</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Tute sydło wobdźěłać"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Wot Pocket doporučeny</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wotrězka wočinić</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Woblubowane temy:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Wjerški</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Kontekstowy meni wotrězka wočinić</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Stronu wašeho noweho rajtarka přiměrić"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Pytać",
   "search_header": "Z {search_engine_name} pytać",
   "search_web_placeholder": "Web přepytać",
   "section_disclaimer_topstories": "Najzajimawše stawizny we webje, wubrane na zakładźe toho, štož sće čitał. Z Pocket, nětko dźěl Mozilla.",
   "section_disclaimer_topstories_linktext": "Zhońće, kak to funguje.",
   "section_disclaimer_topstories_buttontext": "W porjadku, sym zrozumił",
   "prefs_home_header": "Wobsah startoweje strony Firefox",
   "prefs_home_description": "Wubjerće, kotry wobsah chceće na swojej startowej wobrazowce Firefox měć.",
-  "prefs_restore_defaults_button": "Standard wobnowić",
   "prefs_section_rows_option": "{num} linka;{num} lince;{num} linki;{num} linkow",
   "prefs_search_header": "Webpytanje",
   "prefs_topsites_description": "Sydła, kotrež najhusćišo wopytujeće",
   "prefs_topstories_description2": "Wulkotny wobsah z cyłeho weba, wubrany specielnje za was",
   "prefs_topstories_options_sponsored_label": "Sponsorowane stawizny",
   "prefs_topstories_sponsored_learn_more": "Dalše informacije",
   "prefs_highlights_description": "Wuběr websydłow, kotrež sće składował abo wopytał",
   "prefs_highlights_options_visited_label": "Wopytane strony",
   "prefs_highlights_options_download_label": "Najnowše sćehnjenje",
   "prefs_highlights_options_pocket_label": "Strony składowane do Pocket",
   "prefs_snippets_description": "Aktualizacije wot Mozilla a Firefox",
   "settings_pane_button_label": "Stronu wašeho noweho rajtarka přiměrić",
-  "settings_pane_header": "Nastajenja noweho rajtarka",
-  "settings_pane_body2": "Wubjerće, štož so na tutej stronje pokazuje.",
-  "settings_pane_search_header": "Pytać",
-  "settings_pane_search_body": "Přepytajće web ze swojeho noweho rajtarka.",
   "settings_pane_topsites_header": "Najhusćišo wopytane sydła",
-  "settings_pane_topsites_body": "Wočińće websydła, kotrež sće najhusćišo wopytał.",
-  "settings_pane_topsites_options_showmore": "Dwaj rjadaj pokazać",
   "settings_pane_highlights_header": "Wjerški",
-  "settings_pane_highlights_body2": "Namakajće swój puć wróćo k zajimawym stronam, kotrež sće njedawno wopytał abo jako zapołožki składował.",
   "settings_pane_highlights_options_bookmarks": "Zapołožki",
-  "settings_pane_highlights_options_visited": "Wopytane sydła",
   "settings_pane_snippets_header": "Šlipki",
-  "settings_pane_snippets_body": "Čitajće krótke aktualizacije wot Mozilla wo Firefox, internetnej kulturje a hdys a hdys meme.",
-  "settings_pane_done_button": "Hotowo",
-  "settings_pane_topstories_options_sponsored": "Sponsorowane stawizny pokazać",
   "edit_topsites_button_text": "Wobdźěłać",
   "edit_topsites_edit_button": "Tute sydło wobdźěłać",
   "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_label": "Titul",
   "topsites_form_title_placeholder": "Titul zapodać",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL swójskeho wobraza",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Přehlad",
   "topsites_form_add_button": "Přidać",
   "topsites_form_save_button": "Składować",
   "topsites_form_cancel_button": "Přetorhnyć",
   "topsites_form_url_validation": "Płaćiwy URL trěbny",
   "topsites_form_image_validation": "Wobraz njeda so začitać. Spytajće druhi URL.",
   "pocket_read_more": "Woblubowane temy:",
   "pocket_read_even_more": "Dalše zdźělenki sej wobhladać",
-  "pocket_description": "Wotkryjće wobsah wysokeje kwality, kotryž byšće hewak parował, z pomocu Pocket, kotryž je nětko dźěl Mozilla.",
   "highlights_empty_state": "Započńće přehladować, a pokazamy někotre wulkotne nastawki, wideja a druhe strony, kotrež sće njedawno wopytał abo tu jako zapołožki składował.",
   "topstories_empty_state": "To je nachwilu wšitko. Wróćće so pozdźišo dalšich wulkotnych stawiznow dla wot {provider}. Njemóžeće čakać? Wubjerće woblubowanu temu, zo byšće dalše wulkotne stawizny z weba namakał.",
   "manual_migration_explanation2": "Wupruwujće Firefox ze zapołožkami, historiju a hesłami z druheho wobhladowaka.",
   "manual_migration_cancel_button": "Ně, dźakuju so",
   "manual_migration_import_button": "Nětko importować",
   "error_fallback_default_info": "Hopla, při čitanju tutoho wobsaha je so něšto nimokuliło.",
   "error_fallback_default_refresh_suggestion": "Aktualizujće stronu, zo byšće hišće raz spytał.",
   "section_menu_action_remove_section": "Wotrězk wotstronić",
   "section_menu_action_collapse_section": "Wotrězk schować",
   "section_menu_action_expand_section": "Wotrězk pokazać",
   "section_menu_action_manage_section": "Wotrězk rjadować",
   "section_menu_action_add_topsite": "Woblubowane sydło přidać",
   "section_menu_action_move_up": "Horje",
   "section_menu_action_move_down": "Dele",
-  "section_menu_action_privacy_notice": "Zdźělenka priwatnosće"
+  "section_menu_action_privacy_notice": "Zdźělenka priwatnosće",
+  "prefs_restore_defaults_button": "Standard wobnowić",
+  "settings_pane_header": "Nastajenja noweho rajtarka",
+  "settings_pane_body2": "Wubjerće, štož so na tutej stronje pokazuje.",
+  "settings_pane_search_header": "Pytać",
+  "settings_pane_search_body": "Přepytajće web ze swojeho noweho rajtarka.",
+  "settings_pane_topsites_body": "Wočińće websydła, kotrež sće najhusćišo wopytał.",
+  "settings_pane_topsites_options_showmore": "Dwaj rjadaj pokazać",
+  "settings_pane_highlights_body2": "Namakajće swój puć wróćo k zajimawym stronam, kotrež sće njedawno wopytał abo jako zapołožki składował.",
+  "settings_pane_highlights_options_visited": "Wopytane sydła",
+  "settings_pane_snippets_body": "Čitajće krótke aktualizacije wot Mozilla wo Firefox, internetnej kulturje a hdys a hdys meme.",
+  "settings_pane_done_button": "Hotowo",
+  "settings_pane_topstories_options_sponsored": "Sponsorowane stawizny pokazać",
+  "pocket_description": "Wotkryjće wobsah wysokeje kwality, kotryž byšće hewak parował, z pomocu Pocket, kotryž je nětko dźěl Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Keresés a weben</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Keresés a weben" title="Keresés a weben"/><button id="searchSubmit" class="search-button" title="Keresés"><span class="sr-only"><span>Keresés</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Népszerű oldalak</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>A szakasz környezeti menüjének megnyitása</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Webhely szerkesztése"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>A(z) Pocket ajánlásával</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>A szakasz környezeti menüjének megnyitása</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Népszerű témák:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Kiemelések</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>A szakasz környezeti menüjének megnyitása</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Az Új lap oldal személyre szabása"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Keresés",
   "search_header": "{search_engine_name} keresés",
   "search_web_placeholder": "Keresés a weben",
   "section_disclaimer_topstories": "A web legérdekesebb történetei, az alapján kiválasztva, hogy mit olvas. A Pockettől, amely már a Mozilla része.",
   "section_disclaimer_topstories_linktext": "Tudja meg hogyan működik.",
   "section_disclaimer_topstories_buttontext": "Rendben, értem",
   "prefs_home_header": "Firefox kezdőlap tartalma",
   "prefs_home_description": "Válassza ki milyen tartalmat szeretne a Firefox kezdőlapon.",
-  "prefs_restore_defaults_button": "Alapértelmezések visszaállítása",
   "prefs_section_rows_option": "{num} sor;{num} sor",
   "prefs_search_header": "Webes keresés",
   "prefs_topsites_description": "A leggyakrabban látogatott oldalak",
   "prefs_topstories_description2": "Nagyszerű tartalom szerte a webről, személyre szabva",
   "prefs_topstories_options_sponsored_label": "Szponzorált történetek",
   "prefs_topstories_sponsored_learn_more": "További tudnivalók",
   "prefs_highlights_description": "Válogatás azon oldalakból, amelyeket elmentett vagy felkeresett",
   "prefs_highlights_options_visited_label": "Látogatott oldalak",
   "prefs_highlights_options_download_label": "Legutóbbi letöltés",
   "prefs_highlights_options_pocket_label": "Pocketbe mentett lapok",
   "prefs_snippets_description": "Hírek a Mozilláról és a Firefoxról",
   "settings_pane_button_label": "Az Új lap oldal személyre szabása",
-  "settings_pane_header": "Új lap beállításai",
-  "settings_pane_body2": "Válassza ki, hogy mit akar látni ezen az oldalon.",
-  "settings_pane_search_header": "Keresés",
-  "settings_pane_search_body": "Keresés a weben az új lapon.",
   "settings_pane_topsites_header": "Népszerű oldalak",
-  "settings_pane_topsites_body": "A leggyakrabban látogatott webhelyek elérése.",
-  "settings_pane_topsites_options_showmore": "Két sor megjelenítése",
   "settings_pane_highlights_header": "Kiemelések",
-  "settings_pane_highlights_body2": "Találjon vissza azokhoz az érdekes dolgokhoz, amelyeket meglátogatott vagy könyvjelzőzött.",
   "settings_pane_highlights_options_bookmarks": "Könyvjelzők",
-  "settings_pane_highlights_options_visited": "Látogatott helyek",
   "settings_pane_snippets_header": "Töredékek",
-  "settings_pane_snippets_body": "Olvasson rövid és érdekes híreket a Mozillától, a Firefoxról, az internetes kultúráról, és időnként kapjon mémeket.",
-  "settings_pane_done_button": "Kész",
-  "settings_pane_topstories_options_sponsored": "Szponzorált történetek megjelenítése",
   "edit_topsites_button_text": "Szerkesztés",
   "edit_topsites_edit_button": "Webhely szerkesztése",
   "topsites_form_add_header": "Új népszerű oldal",
   "topsites_form_edit_header": "Népszerű oldal szerkesztése",
   "topsites_form_title_label": "Cím",
   "topsites_form_title_placeholder": "Cím megadása",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Egyéni kép URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Előnézet",
   "topsites_form_add_button": "Hozzáadás",
   "topsites_form_save_button": "Mentés",
   "topsites_form_cancel_button": "Mégse",
   "topsites_form_url_validation": "Érvényes URL szükséges",
   "topsites_form_image_validation": "A kép betöltése nem sikerült. Próbáljon meg egy másik URL-t.",
   "pocket_read_more": "Népszerű témák:",
   "pocket_read_even_more": "További történetek",
-  "pocket_description": "Fedezzen fel olyan, magas minőségű tartalmakat, amelyek egyébként elkerülnék a figyelmét, a Pocket segítségével, amely most már a Mozilla része.",
   "highlights_empty_state": "Kezdjen el böngészni, és itt fognak megjelenni azok a nagyszerű cikkek, videók és más lapok, amelyeket nemrég meglátogatott vagy könyvjelzőzött.",
   "topstories_empty_state": "Már felzárkózott. Nézzen vissza később a legújabb {provider} hírekért. Nem tud várni? Válasszon egy népszerű témát, hogy még több sztorit találjon a weben.",
   "manual_migration_explanation2": "Próbálja ki a Firefoxot másik böngészőből származó könyvjelzőkkel, előzményekkel és jelszavakkal.",
   "manual_migration_cancel_button": "Köszönöm, nem",
   "manual_migration_import_button": "Importálás most",
   "error_fallback_default_info": "Hoppá, valami hiba történt a tartalom betöltésekor.",
   "error_fallback_default_refresh_suggestion": "Az újrapróbálkozáshoz frissítse az oldalt.",
   "section_menu_action_remove_section": "Szakasz eltávolítása",
   "section_menu_action_collapse_section": "Szakasz összecsukása",
   "section_menu_action_expand_section": "Szakasz lenyitása",
   "section_menu_action_manage_section": "Szakasz kezelése",
   "section_menu_action_add_topsite": "Hozzáadás a népszerű oldalakhoz",
   "section_menu_action_move_up": "Mozgatás felfelé",
   "section_menu_action_move_down": "Mozgatás lefelé",
-  "section_menu_action_privacy_notice": "Adatvédelmi nyilatkozat"
+  "section_menu_action_privacy_notice": "Adatvédelmi nyilatkozat",
+  "prefs_restore_defaults_button": "Alapértelmezések visszaállítása",
+  "settings_pane_header": "Új lap beállításai",
+  "settings_pane_body2": "Válassza ki, hogy mit akar látni ezen az oldalon.",
+  "settings_pane_search_header": "Keresés",
+  "settings_pane_search_body": "Keresés a weben az új lapon.",
+  "settings_pane_topsites_body": "A leggyakrabban látogatott webhelyek elérése.",
+  "settings_pane_topsites_options_showmore": "Két sor megjelenítése",
+  "settings_pane_highlights_body2": "Találjon vissza azokhoz az érdekes dolgokhoz, amelyeket meglátogatott vagy könyvjelzőzött.",
+  "settings_pane_highlights_options_visited": "Látogatott helyek",
+  "settings_pane_snippets_body": "Olvasson rövid és érdekes híreket a Mozillától, a Firefoxról, az internetes kultúráról, és időnként kapjon mémeket.",
+  "settings_pane_done_button": "Kész",
+  "settings_pane_topstories_options_sponsored": "Szponzorált történetek megjelenítése",
+  "pocket_description": "Fedezzen fel olyan, magas minőségű tartalmakat, amelyek egyébként elkerülnék a figyelmét, a Pocket segítségével, amely most már a Mozilla része."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Որոնել առցանց</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Որոնել առցանց" title="Որոնել առցանց"/><button id="searchSubmit" class="search-button" title="Search"><span class="sr-only"><span>Search</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Լավագույն կայքեր</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Գունանշում</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Search",
   "search_header": "{search_engine_name}-ի որոնում",
   "search_web_placeholder": "Որոնել առցանց",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_header": "New Tab Preferences",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "Search",
-  "settings_pane_search_body": "Search the Web from your new tab.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the websites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "New Top Site",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Add",
   "topsites_form_save_button": "Save",
   "topsites_form_cancel_button": "Cancel",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
--- a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cercar in le Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cercar in le Web" title="Cercar in le Web"/><button id="searchSubmit" class="search-button" title="Cercar"><span class="sr-only"><span>Cercar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sitos popular</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Aperir le menu contextual de section</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar iste sito"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommendate per Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Aperir le menu contextual de section</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Subjectos popular:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>In evidentia</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Aperir le menu contextual de section</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalisar tu pagina de nove scheda"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cercar",
   "search_header": "Recerca {search_engine_name}",
   "search_web_placeholder": "Cercar in le Web",
   "section_disclaimer_topstories": "Le historias plus interessante del web, eligite in base a lo que tu lege. Per Pocket, ora parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Apprende como illo functiona.",
   "section_disclaimer_topstories_buttontext": "Ok, io comprende",
   "prefs_home_header": "Pagina initial de Firefox",
   "prefs_home_description": "Elige qual contento tu desira i tu pagina initial de Firefox.",
-  "prefs_restore_defaults_button": "Restaurar le predefinitiones",
   "prefs_section_rows_option": "{num} riga;{num} rigas",
   "prefs_search_header": "Recerca de web",
   "prefs_topsites_description": "Le sitos que tu visita plus",
   "prefs_topstories_description2": "Grande contento ex tote le web, personalisate pro te",
   "prefs_topstories_options_sponsored_label": "Historias sponsorisate",
   "prefs_topstories_sponsored_learn_more": "Saper plus",
   "prefs_highlights_description": "Un election de files que tu ha salvate o visitate",
   "prefs_highlights_options_visited_label": "Paginas visitate",
   "prefs_highlights_options_download_label": "Discargamentos plus recente",
   "prefs_highlights_options_pocket_label": "Paginas salvate in Pocket",
   "prefs_snippets_description": "Actualisationes per Mozilla e Firefox",
   "settings_pane_button_label": "Personalisar tu pagina de nove scheda",
-  "settings_pane_header": "Preferentias de nove scheda",
-  "settings_pane_body2": "Selige lo que tu vole vider in iste pagina.",
-  "settings_pane_search_header": "Cercar",
-  "settings_pane_search_body": "Cercar in le Web ab tu nove scheda.",
   "settings_pane_topsites_header": "Sitos popular",
-  "settings_pane_topsites_body": "Acceder al sitos web que tu plus visita.",
-  "settings_pane_topsites_options_showmore": "Monstrar duo lineas",
   "settings_pane_highlights_header": "In evidentia",
-  "settings_pane_highlights_body2": "Retrova cosas interessante que tu ha recentemente visitate o addite marcapaginas.",
   "settings_pane_highlights_options_bookmarks": "Marcapaginas",
-  "settings_pane_highlights_options_visited": "Sitos visitate",
   "settings_pane_snippets_header": "Breve novas",
-  "settings_pane_snippets_body": "Lege breve e legier novas de Mozilla super Firefox, cultura internet e occasionalmente super alcun meme.",
-  "settings_pane_done_button": "Facite",
-  "settings_pane_topstories_options_sponsored": "Monstrar historias sponsorisate",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar iste sito",
   "topsites_form_add_header": "Nove sito popular",
   "topsites_form_edit_header": "Editar le sito popular",
   "topsites_form_title_label": "Titulo",
   "topsites_form_title_placeholder": "Scriber un titulo",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagine personal",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Vista preliminar",
   "topsites_form_add_button": "Adder",
   "topsites_form_save_button": "Salvar",
   "topsites_form_cancel_button": "Cancellar",
   "topsites_form_url_validation": "Il es necessari un URL valide",
   "topsites_form_image_validation": "Error durante le carga del imagina. Prova un URL differente.",
   "pocket_read_more": "Subjectos popular:",
   "pocket_read_even_more": "Vider plus historias",
-  "pocket_description": "Discoperir contento de alte qualitate que tu poterea alteremente non cognoscer, con le adjuta de Pocket, ora parte de Mozilla.",
   "highlights_empty_state": "Comencia navigar e nos te monstrara alcun del grande articulos, videos e altere paginas que tu ha recentemente visitate o addite marcapaginas hic.",
   "topstories_empty_state": "Tu ja es in die con toto. Reveni plus tarde pro plus historias popular de {provider}. Non vole attender? Selectiona un subjecto popular pro trovar plus altere historias interessante del web.",
   "manual_migration_explanation2": "Essaya Firefox con le marcapaginas, le chronologia e le contrasignos de un altere navigator.",
   "manual_migration_cancel_button": "No, gratias",
   "manual_migration_import_button": "Importar ora",
   "error_fallback_default_info": "Op, error durante le carga de iste contento.",
   "error_fallback_default_refresh_suggestion": "Refresca le pagina pro retentar.",
   "section_menu_action_remove_section": "Remover le section",
   "section_menu_action_collapse_section": "Collaber le section",
   "section_menu_action_expand_section": "Expander le section",
   "section_menu_action_manage_section": "Gerer le section",
   "section_menu_action_add_topsite": "Adder a sito popular",
   "section_menu_action_move_up": "Mover in alto",
   "section_menu_action_move_down": "Mover in basso",
-  "section_menu_action_privacy_notice": "Advertentia de confidentialitate"
+  "section_menu_action_privacy_notice": "Advertentia de confidentialitate",
+  "prefs_restore_defaults_button": "Restaurar le predefinitiones",
+  "settings_pane_header": "Preferentias de nove scheda",
+  "settings_pane_body2": "Selige lo que tu vole vider in iste pagina.",
+  "settings_pane_search_header": "Cercar",
+  "settings_pane_search_body": "Cercar in le Web ab tu nove scheda.",
+  "settings_pane_topsites_body": "Acceder al sitos web que tu plus visita.",
+  "settings_pane_topsites_options_showmore": "Monstrar duo lineas",
+  "settings_pane_highlights_body2": "Retrova cosas interessante que tu ha recentemente visitate o addite marcapaginas.",
+  "settings_pane_highlights_options_visited": "Sitos visitate",
+  "settings_pane_snippets_body": "Lege breve e legier novas de Mozilla super Firefox, cultura internet e occasionalmente super alcun meme.",
+  "settings_pane_done_button": "Facite",
+  "settings_pane_topstories_options_sponsored": "Monstrar historias sponsorisate",
+  "pocket_description": "Discoperir contento de alte qualitate que tu poterea alteremente non cognoscer, con le adjuta de Pocket, ora parte de Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cari di Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cari di Web" title="Cari di Web"/><button id="searchSubmit" class="search-button" title="Cari"><span class="sr-only"><span>Cari</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Situs Teratas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Sunting situs ini"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Disarankan oleh Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Topik Populer:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Sorotan</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Ubahsuai laman Tab Baru Anda"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cari",
   "search_header": "Pencarian {search_engine_name}",
   "search_web_placeholder": "Cari di Web",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} baris;{num} baris",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Ubahsuai laman Tab Baru Anda",
-  "settings_pane_header": "Preferensi Tab Baru",
-  "settings_pane_body2": "Pilih apa yang Anda lihat di halaman ini.",
-  "settings_pane_search_header": "Pencarian",
-  "settings_pane_search_body": "Cari Web dari tab baru Anda.",
   "settings_pane_topsites_header": "Situs Teratas",
-  "settings_pane_topsites_body": "Mengakses situs web yang paling sering Anda kunjungi.",
-  "settings_pane_topsites_options_showmore": "Tampilkan dua baris",
   "settings_pane_highlights_header": "Sorotan",
-  "settings_pane_highlights_body2": "Temukan jalan kembali ke hal menarik yang baru saja Anda kunjungi atau dimarkah.",
   "settings_pane_highlights_options_bookmarks": "Markah",
-  "settings_pane_highlights_options_visited": "Situs Terkunjungi",
   "settings_pane_snippets_header": "Catatan Kecil",
-  "settings_pane_snippets_body": "Baca info pendek terbaru dari Mozilla tentang Firefox, budaya internet dan beberapa meme acak.",
-  "settings_pane_done_button": "Selesai",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "Sunting",
   "edit_topsites_edit_button": "Sunting situs ini",
   "topsites_form_add_header": "Situs Pilihan Baru",
   "topsites_form_edit_header": "Ubah Situs Pilihan",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Masukkan judul",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,25 +69,35 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Pratinjau",
   "topsites_form_add_button": "Tambah",
   "topsites_form_save_button": "Simpan",
   "topsites_form_cancel_button": "Batalkan",
   "topsites_form_url_validation": "URL valid diperlukan",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Topik Populer:",
   "pocket_read_even_more": "Lihat Cerita Lainnya",
-  "pocket_description": "Temukan konten berkualitas tinggi yang mungkin Anda lewatkan dengan bantuan Pocket, yang sekarang menjadi bagian dari Mozilla.",
   "highlights_empty_state": "Mulai menjelajah, dan kami akan menampilkan beberapa artikel bagus, video, dan halaman lain yang baru saja Anda kunjungi atau termarkah di sini.",
   "topstories_empty_state": "Maaf Anda tercegat. Periksa lagi nanti untuk lebih banyak cerita terbaik dari {provider}. Tidak mau menunggu? Pilih topik populer untuk menemukan lebih banyak cerita hebat dari seluruh web.",
   "manual_migration_explanation2": "Coba Firefox dengan markah, riwayat, dan sandi dari peramban lain.",
   "manual_migration_cancel_button": "Tidak, Terima kasih",
   "manual_migration_import_button": "Impor Sekarang",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "Move Up",
   "section_menu_action_move_down": "Move Down",
-  "section_menu_action_privacy_notice": "Privacy Notice"
+  "section_menu_action_privacy_notice": "Privacy Notice",
+  "settings_pane_header": "Preferensi Tab Baru",
+  "settings_pane_body2": "Pilih apa yang Anda lihat di halaman ini.",
+  "settings_pane_search_header": "Pencarian",
+  "settings_pane_search_body": "Cari Web dari tab baru Anda.",
+  "settings_pane_topsites_body": "Mengakses situs web yang paling sering Anda kunjungi.",
+  "settings_pane_topsites_options_showmore": "Tampilkan dua baris",
+  "settings_pane_highlights_body2": "Temukan jalan kembali ke hal menarik yang baru saja Anda kunjungi atau dimarkah.",
+  "settings_pane_highlights_options_visited": "Situs Terkunjungi",
+  "settings_pane_snippets_body": "Baca info pendek terbaru dari Mozilla tentang Firefox, budaya internet dan beberapa meme acak.",
+  "settings_pane_done_button": "Selesai",
+  "pocket_description": "Temukan konten berkualitas tinggi yang mungkin Anda lewatkan dengan bantuan Pocket, yang sekarang menjadi bagian dari Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cerca sul Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cerca sul Web" title="Cerca sul Web"/><button id="searchSubmit" class="search-button" title="Cerca"><span class="sr-only"><span>Cerca</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Siti principali</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Apri il menu contestuale per la sezione</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifica questo sito"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Consigliati da Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Apri il menu contestuale per la sezione</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Argomenti popolari:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>In evidenza</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Apri il menu contestuale per la sezione</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizza la pagina Nuova scheda"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cerca",
   "search_header": "Ricerca {search_engine_name}",
   "search_web_placeholder": "Cerca sul Web",
   "section_disclaimer_topstories": "Le storie più interessanti del Web, selezionate in base alle tue letture. Direttamente da Pocket, ora parte del gruppo Mozilla.",
   "section_disclaimer_topstories_linktext": "Scopri come funziona.",
   "section_disclaimer_topstories_buttontext": "Ho capito.",
   "prefs_home_header": "Pagina iniziale di Firefox",
   "prefs_home_description": "Scegli i contenuti da visualizzare nella pagina iniziale di Firefox.",
-  "prefs_restore_defaults_button": "Ripristina valori predefiniti",
   "prefs_section_rows_option": "{num} riga;{num} righe",
   "prefs_search_header": "Ricerca sul Web",
   "prefs_topsites_description": "I siti più visitati",
   "prefs_topstories_description2": "Contenuti interessanti da tutto il Web, personalizzati per te.",
   "prefs_topstories_options_sponsored_label": "Articoli sponsorizzati",
   "prefs_topstories_sponsored_learn_more": "Ulteriori informazioni",
   "prefs_highlights_description": "Una selezione di siti che hai salvato o visitato in precedenza",
   "prefs_highlights_options_visited_label": "Pagine visitate",
   "prefs_highlights_options_download_label": "Download più recenti",
   "prefs_highlights_options_pocket_label": "Pagine salvate in Pocket",
   "prefs_snippets_description": "Aggiornamenti da Mozilla e Firefox",
   "settings_pane_button_label": "Personalizza la pagina Nuova scheda",
-  "settings_pane_header": "Preferenze Nuova scheda",
-  "settings_pane_body2": "Scegli quali elementi visualizzare in questa pagina.",
-  "settings_pane_search_header": "Ricerca",
-  "settings_pane_search_body": "Avvia ricerche in una nuova scheda.",
   "settings_pane_topsites_header": "Siti principali",
-  "settings_pane_topsites_body": "Accedi ai siti che visiti più spesso.",
-  "settings_pane_topsites_options_showmore": "Visualizza due righe",
   "settings_pane_highlights_header": "In evidenza",
-  "settings_pane_highlights_body2": "Ritrova pagine interessanti che avevi visitato o aggiunto ai segnalibri.",
   "settings_pane_highlights_options_bookmarks": "Segnalibri",
-  "settings_pane_highlights_options_visited": "Siti visitati",
   "settings_pane_snippets_header": "Snippet",
-  "settings_pane_snippets_body": "Brevi notizie direttamente da Mozilla a proposito di Firefox, Internet, senza dimenticare qualche meme di tanto in tanto.",
-  "settings_pane_done_button": "Fatto",
-  "settings_pane_topstories_options_sponsored": "Visualizza articoli sponsorizzati",
   "edit_topsites_button_text": "Modifica",
   "edit_topsites_edit_button": "Modifica questo sito",
   "topsites_form_add_header": "Nuovi sito principale",
   "topsites_form_edit_header": "Modifica sito principale",
   "topsites_form_title_label": "Titolo",
   "topsites_form_title_placeholder": "Inserire un titolo",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Indirizzo immagine personalizzata",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Anteprima",
   "topsites_form_add_button": "Aggiungi",
   "topsites_form_save_button": "Salva",
   "topsites_form_cancel_button": "Annulla",
   "topsites_form_url_validation": "È necessario fornire un URL valido",
   "topsites_form_image_validation": "Errore durante il caricamento dell’immagine. Prova con un altro indirizzo.",
   "pocket_read_more": "Argomenti popolari:",
   "pocket_read_even_more": "Visualizza altre storie",
-  "pocket_description": "Grazie a Pocket, un componente della famiglia Mozilla, scopri contenuti di alta qualità che altrimenti potrebbero sfuggirti.",
   "highlights_empty_state": "Inizia a navigare e, in questa sezione, verranno visualizzati articoli, video e altre pagine visitate di recente o aggiunte ai segnalibri.",
   "topstories_empty_state": "Non c'è altro. Controlla più tardi per altre storie da {provider}. Non vuoi aspettare? Seleziona un argomento tra quelli più popolari per scoprire altre notizie interessanti dal Web.",
   "manual_migration_explanation2": "Prova Firefox con i segnalibri, la cronologia e le password di un altro browser.",
   "manual_migration_cancel_button": "No grazie",
   "manual_migration_import_button": "Importa adesso",
   "error_fallback_default_info": "Oops, qualcosa è andato storto durante il tentativo di caricare questo contenuto.",
   "error_fallback_default_refresh_suggestion": "Aggiornare la pagina per riprovare.",
   "section_menu_action_remove_section": "Rimuovi sezione",
   "section_menu_action_collapse_section": "Comprimi sezione",
   "section_menu_action_expand_section": "Espandi sezione",
   "section_menu_action_manage_section": "Gestisci sezione",
   "section_menu_action_add_topsite": "Aggiungi sito principale",
   "section_menu_action_move_up": "Sposta in alto",
   "section_menu_action_move_down": "Sposta in basso",
-  "section_menu_action_privacy_notice": "Informativa sulla privacy"
+  "section_menu_action_privacy_notice": "Informativa sulla privacy",
+  "prefs_restore_defaults_button": "Ripristina valori predefiniti",
+  "settings_pane_header": "Preferenze Nuova scheda",
+  "settings_pane_body2": "Scegli quali elementi visualizzare in questa pagina.",
+  "settings_pane_search_header": "Ricerca",
+  "settings_pane_search_body": "Avvia ricerche in una nuova scheda.",
+  "settings_pane_topsites_body": "Accedi ai siti che visiti più spesso.",
+  "settings_pane_topsites_options_showmore": "Visualizza due righe",
+  "settings_pane_highlights_body2": "Ritrova pagine interessanti che avevi visitato o aggiunto ai segnalibri.",
+  "settings_pane_highlights_options_visited": "Siti visitati",
+  "settings_pane_snippets_body": "Brevi notizie direttamente da Mozilla a proposito di Firefox, Internet, senza dimenticare qualche meme di tanto in tanto.",
+  "settings_pane_done_button": "Fatto",
+  "settings_pane_topstories_options_sponsored": "Visualizza articoli sponsorizzati",
+  "pocket_description": "Grazie a Pocket, un componente della famiglia Mozilla, scopri contenuti di alta qualità che altrimenti potrebbero sfuggirti."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ウェブを検索</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ウェブを検索" title="ウェブを検索"/><button id="searchSubmit" class="search-button" title="検索"><span class="sr-only"><span>検索</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>トップサイト</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>セクションのコンテキストメニューを開く</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="このサイトを編集"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket のおすすめ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>セクションのコンテキストメニューを開く</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>人気のトピック:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ハイライト</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>セクションのコンテキストメニューを開く</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="新しいタブページをカスタマイズ"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "検索",
   "search_header": "{search_engine_name} 検索",
   "search_web_placeholder": "ウェブを検索",
   "section_disclaimer_topstories": "あなたが読んだページに基づいて選ばれた、ウェブ上で最も興味深い記事。Mozilla の一員となった Pocket がお届けします。",
   "section_disclaimer_topstories_linktext": "詳しくはこちら。",
   "section_disclaimer_topstories_buttontext": "了解しました",
   "prefs_home_header": "Firefox ホームコンテンツ",
   "prefs_home_description": "Firefox のホーム画面に表示するコンテンツを選びましょう。",
-  "prefs_restore_defaults_button": "初期設定に戻す",
   "prefs_section_rows_option": "{num} 行;{num} 行",
   "prefs_search_header": "ウェブ検索",
   "prefs_topsites_description": "よく訪れるサイト",
   "prefs_topstories_description2": "ウェブ上の様々な場所から集められた、あなたにピッタリの優れたコンテンツ",
   "prefs_topstories_options_sponsored_label": "広告記事",
   "prefs_topstories_sponsored_learn_more": "詳しくはこちら",
   "prefs_highlights_description": "保存したり訪れたりしたサイトうち主なもの",
   "prefs_highlights_options_visited_label": "訪れたページ",
   "prefs_highlights_options_download_label": "最近のダウンロード",
   "prefs_highlights_options_pocket_label": "Pocket に保存されたページ",
   "prefs_snippets_description": "Mozilla と Firefox に関する最新情報",
   "settings_pane_button_label": "新しいタブページをカスタマイズ",
-  "settings_pane_header": "新しいタブの設定",
-  "settings_pane_body2": "このページに表示する内容を選択してください。",
-  "settings_pane_search_header": "検索",
-  "settings_pane_search_body": "新しいタブからウェブを検索します。",
   "settings_pane_topsites_header": "トップサイト",
-  "settings_pane_topsites_body": "よく訪れるサイトへアクセス。",
-  "settings_pane_topsites_options_showmore": "2 行で表示",
   "settings_pane_highlights_header": "ハイライト",
-  "settings_pane_highlights_body2": "最近訪れたりブックマークしたりした興味のあるページへ戻る方法を見つけましょう。",
   "settings_pane_highlights_options_bookmarks": "ブックマーク",
-  "settings_pane_highlights_options_visited": "訪れたサイト",
   "settings_pane_snippets_header": "スニペット",
-  "settings_pane_snippets_body": "Firefox、インターネット文化、時々無作為にお届けする小ネタなど、簡潔で役立つ Mozilla からの最新情報を読んでください。",
-  "settings_pane_done_button": "完了",
-  "settings_pane_topstories_options_sponsored": "広告記事を表示",
   "edit_topsites_button_text": "編集",
   "edit_topsites_edit_button": "このサイトを編集",
   "topsites_form_add_header": "新着トップサイト",
   "topsites_form_edit_header": "トップサイトを編集",
   "topsites_form_title_label": "タイトル",
   "topsites_form_title_placeholder": "タイトルを入力",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "カスタム画像 URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "プレビュー",
   "topsites_form_add_button": "追加",
   "topsites_form_save_button": "保存",
   "topsites_form_cancel_button": "キャンセル",
   "topsites_form_url_validation": "正しい URL を入力してください",
   "topsites_form_image_validation": "画像を読み込めませんでした。別の URL を試してください。",
   "pocket_read_more": "人気のトピック:",
   "pocket_read_even_more": "他の記事を見る",
-  "pocket_description": "Mozilla の一員となった Pocket の力を借りて、見逃してしまうかもしれない質の高い情報を見つけましょう。",
   "highlights_empty_state": "ブラウジング中にあなたが最近訪れたりブックマークしたりした、優れた記事、動画、その他ページの一部をここに表示します。",
   "topstories_empty_state": "すべて既読です。また後で戻って {provider} からのおすすめ記事をチェックしてください。もし待ちきれないなら、人気のトピックを選択すれば、他にもウェブ上の優れた記事を見つけられます。",
   "manual_migration_explanation2": "他のブラウザーからブックマークや履歴、パスワードを取り込んで Firefox を使ってみましょう。",
   "manual_migration_cancel_button": "今はしない",
   "manual_migration_import_button": "今すぐインポート",
   "error_fallback_default_info": "このコンテンツの読み込み中に何か問題が発生しました。",
   "error_fallback_default_refresh_suggestion": "ページを再読み込みして再確認してください。",
   "section_menu_action_remove_section": "セクションを削除",
   "section_menu_action_collapse_section": "セクションを折りたたむ",
   "section_menu_action_expand_section": "セクションを広げる",
   "section_menu_action_manage_section": "セクションを管理",
   "section_menu_action_add_topsite": "トップサイトを追加",
   "section_menu_action_move_up": "上へ移動",
   "section_menu_action_move_down": "下へ移動",
-  "section_menu_action_privacy_notice": "プライバシー通知"
+  "section_menu_action_privacy_notice": "プライバシー通知",
+  "prefs_restore_defaults_button": "初期設定に戻す",
+  "settings_pane_header": "新しいタブの設定",
+  "settings_pane_body2": "このページに表示する内容を選択してください。",
+  "settings_pane_search_header": "検索",
+  "settings_pane_search_body": "新しいタブからウェブを検索します。",
+  "settings_pane_topsites_body": "よく訪れるサイトへアクセス。",
+  "settings_pane_topsites_options_showmore": "2 行で表示",
+  "settings_pane_highlights_body2": "最近訪れたりブックマークしたりした興味のあるページへ戻る方法を見つけましょう。",
+  "settings_pane_highlights_options_visited": "訪れたサイト",
+  "settings_pane_snippets_body": "Firefox、インターネット文化、時々無作為にお届けする小ネタなど、簡潔で役立つ Mozilla からの最新情報を読んでください。",
+  "settings_pane_done_button": "完了",
+  "settings_pane_topstories_options_sponsored": "広告記事を表示",
+  "pocket_description": "Mozilla の一員となった Pocket の力を借りて、見逃してしまうかもしれない質の高い情報を見つけましょう。"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ინტერნეტში ძიება</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ინტერნეტში ძიება" title="ინტერნეტში ძიება"/><button id="searchSubmit" class="search-button" title="ძიება"><span class="sr-only"><span>ძიება</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>რჩეული საიტები</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>გვერდის ნაწილების პარამეტრები</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="საიტის ჩასწორება"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket-ის შემოთავაზებული</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>გვერდის ნაწილების პარამეტრები</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>პოპულარული თემები:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>მნიშვნელოვანი საიტები</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>გვერდის ნაწილების პარამეტრები</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="მოირგეთ ახალი ჩანართის გვერდი"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ძიება",
   "search_header": "{search_engine_name} საძიებოთი ძიება",
   "search_web_placeholder": "ინტერნეტში ძიება",
   "section_disclaimer_topstories": "საუკეთესო და საინტერესო სიახლეები ინტერნეტიდან, შერჩეული თქვენ მიერ მონახულებული გვერდების საფუძველზე. Pocket-იდან, რომელიც უკვე Mozilla-ს ნაწილია.",
   "section_disclaimer_topstories_linktext": "ნახეთ, როგორ მუშაობს.",
   "section_disclaimer_topstories_buttontext": "კარგი, გასაგებია",
   "prefs_home_header": "Firefox საწყისი გვერდი",
   "prefs_home_description": "აირჩიეთ, თუ რისი გამოჩენა გსურთ Firefox-ის საწყის გვერდზე.",
-  "prefs_restore_defaults_button": "ნაგულისხმევის აღდგენა",
   "prefs_section_rows_option": "{num} რიგად;{num} რიგად",
   "prefs_search_header": "საძიებო ველი",
   "prefs_topsites_description": "ხშირად მონახულებული საიტები",
   "prefs_topstories_description2": "მნიშვნელოვანი ამბები ინტერნეტ-სამყაროდან, შერჩეული თქვენი ინტერესების მიხედვით",
   "prefs_topstories_options_sponsored_label": "დაფინანსებული სტატიები",
   "prefs_topstories_sponsored_learn_more": "იხილეთ ვრცლად",
   "prefs_highlights_description": "თქვენ მიერ შენახული ან ბოლოს მონახულებული საიტები",
   "prefs_highlights_options_visited_label": "მონახულებული გვერდები",
   "prefs_highlights_options_download_label": "უახლესი ჩამოტვირთვა",
   "prefs_highlights_options_pocket_label": "Pocket-ში შენახული გვერდები",
   "prefs_snippets_description": "სიახლეები Mozilla-სა და Firefox-ისგან",
   "settings_pane_button_label": "მოირგეთ ახალი ჩანართის გვერდი",
-  "settings_pane_header": "ახალი ჩანართის პარამეტრები",
-  "settings_pane_body2": "მიუთითეთ, რისი ხილვა გსურთ ამ გვერდზე.",
-  "settings_pane_search_header": "ძიება",
-  "settings_pane_search_body": "ძიება ინტერნეტში ახალი ჩანართიდან.",
   "settings_pane_topsites_header": "რჩეული საიტები",
-  "settings_pane_topsites_body": "წვდომა ხშირად მონახულებულ საიტებთან.",
-  "settings_pane_topsites_options_showmore": "ორ რიგად ჩვენება",
   "settings_pane_highlights_header": "მნიშვნელოვანი საიტები",
-  "settings_pane_highlights_body2": "მარტივად დაუბრუნდით ბოლოს მონახულებულ, ან ჩანიშნულ გვერდებს.",
   "settings_pane_highlights_options_bookmarks": "სანიშნები",
-  "settings_pane_highlights_options_visited": "მონახულებული საიტები",
   "settings_pane_snippets_header": "ცნობები",
-  "settings_pane_snippets_body": "გაეცანით მოკლე, საინტერესო სიახლეებს Mozilla-სგან, Firefox-ის, ინტერნეტსამყაროს მიღწევებისა და სხვა დასამახსოვრებელი ფაქტების შესახებ.",
-  "settings_pane_done_button": "მზადაა",
-  "settings_pane_topstories_options_sponsored": "დაფინანსებული სტატიების ჩვენება",
   "edit_topsites_button_text": "ჩასწორება",
   "edit_topsites_edit_button": "საიტის ჩასწორება",
   "topsites_form_add_header": "ახალი საიტი რჩეულებში",
   "topsites_form_edit_header": "რჩეული საიტის ჩასწორება",
   "topsites_form_title_label": "დასახელება",
   "topsites_form_title_placeholder": "სათაურის შეყვანა",
   "topsites_form_url_label": "URL ბმული",
   "topsites_form_image_url_label": "სასურველი სურათის URL ბმული",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "შეთვალიერება",
   "topsites_form_add_button": "დამატება",
   "topsites_form_save_button": "შენახვა",
   "topsites_form_cancel_button": "გაუქმება",
   "topsites_form_url_validation": "საჭიროა მართებული URL",
   "topsites_form_image_validation": "სურათი ვერ ჩაიტვირთა. სცადეთ სხვა URL ბმული.",
   "pocket_read_more": "პოპულარული თემები:",
   "pocket_read_even_more": "მეტი სიახლის ნახვა",
-  "pocket_description": "გაეცანით ინტერნეტში არსებულ მაღალი ხარისხის მასალას Pocket-ის საშუალებით, რომელიც ახლა უკვე Mozilla-ს ნაწილს წარმოადგენს.",
   "highlights_empty_state": "დაიწყეთ გვერდების დათვალიერება და აქ გამოჩნდება თქვენი რჩეული სტატიები, ვიდეოები და ბოლოს მონახულებული, ან ჩანიშნული საიტები.",
   "topstories_empty_state": "უკვე ყველაფერი წაკითხული გაქვთ. {provider}-იდან ახალი რჩეული სტატიების მისაღებად, მოგვიანებით შემოიარეთ. თუ ვერ ითმენთ, აირჩიეთ რომელიმე მოთხოვნადი თემა, ახალი საინტერესო სტატიების მოსაძიებლად.",
   "manual_migration_explanation2": "გადმოიტანეთ სხვა ბრაუზერებიდან თქვენი სანიშნები, ისტორია და პაროლები Firefox-ში.",
   "manual_migration_cancel_button": "არა, გმადლობთ",
   "manual_migration_import_button": "ახლავე გადმოტანა",
   "error_fallback_default_info": "სამწუხაროდ, შიგთავსის ჩატვირთვისას რაღაც ხარვეზი წარმოიქმნა.",
   "error_fallback_default_refresh_suggestion": "განაახლეთ გვერდი და სცადეთ ხელახლა.",
   "section_menu_action_remove_section": "ამ ნაწილის მოცილება",
   "section_menu_action_collapse_section": "ამ ნაწილის აკეცვა",
   "section_menu_action_expand_section": "ამ ნაწილის გაშლა",
   "section_menu_action_manage_section": "გვერდის ნაწილების მართვა",
   "section_menu_action_add_topsite": "რჩეული საიტის დამატება",
   "section_menu_action_move_up": "აწევა",
   "section_menu_action_move_down": "ჩამოწევა",
-  "section_menu_action_privacy_notice": "პირადი მონაცემების დაცვის განაცხადი"
+  "section_menu_action_privacy_notice": "პირადი მონაცემების დაცვის განაცხადი",
+  "prefs_restore_defaults_button": "ნაგულისხმევის აღდგენა",
+  "settings_pane_header": "ახალი ჩანართის პარამეტრები",
+  "settings_pane_body2": "მიუთითეთ, რისი ხილვა გსურთ ამ გვერდზე.",
+  "settings_pane_search_header": "ძიება",
+  "settings_pane_search_body": "ძიება ინტერნეტში ახალი ჩანართიდან.",
+  "settings_pane_topsites_body": "წვდომა ხშირად მონახულებულ საიტებთან.",
+  "settings_pane_topsites_options_showmore": "ორ რიგად ჩვენება",
+  "settings_pane_highlights_body2": "მარტივად დაუბრუნდით ბოლოს მონახულებულ, ან ჩანიშნულ გვერდებს.",
+  "settings_pane_highlights_options_visited": "მონახულებული საიტები",
+  "settings_pane_snippets_body": "გაეცანით მოკლე, საინტერესო სიახლეებს Mozilla-სგან, Firefox-ის, ინტერნეტსამყაროს მიღწევებისა და სხვა დასამახსოვრებელი ფაქტების შესახებ.",
+  "settings_pane_done_button": "მზადაა",
+  "settings_pane_topstories_options_sponsored": "დაფინანსებული სტატიების ჩვენება",
+  "pocket_description": "გაეცანით ინტერნეტში არსებულ მაღალი ხარისხის მასალას Pocket-ის საშუალებით, რომელიც ახლა უკვე Mozilla-ს ნაწილს წარმოადგენს."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Nadi di Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Nadi di Web" title="Nadi di Web"/><button id="searchSubmit" class="search-button" title="Nadi"><span class="sr-only"><span>Nadi</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Ismal ifazen</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ldi umuɣ n usatal n tgezmi</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Ẓreg asmel-agi"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Iwelleh-it-id Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ldi umuɣ n usatal n tgezmi</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Isental ittwasnen aṭas:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Asebrureq</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Ldi umuɣ n usatal n tgezmi</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Sagen asebter n yiccer-ik amaynut"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Nadi",
   "search_header": "Anadi {search_engine_name}",
   "search_web_placeholder": "Nadi di Web",
   "section_disclaimer_topstories": "Tiqṣiḍin ifazen ak deg Web, ttwafernent ilmend n wayen teqqareḍ. Seg Pocket i yuγal akka d aḥric n Mozilla.",
   "section_disclaimer_topstories_linktext": "Issin amek i teddu.",
   "section_disclaimer_topstories_buttontext": "Ih, awi-t-id",
   "prefs_home_header": "Agbur agejdan Firefox",
   "prefs_home_description": "Fren agbur i tebɣiḍ deg ugdil agejdan Firefox.",
-  "prefs_restore_defaults_button": "Err-d eɣewwaṛen n tazwara",
   "prefs_section_rows_option": "{num} izirig;{num} izirigen",
   "prefs_search_header": "Anadi Web",
   "prefs_topsites_description": "Ismal i tettwaliḍ aṭas",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Issin ugar",
   "prefs_highlights_description": "Tafrant n yismal i teskelseḍ neɣ i twalaḍ",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Ileqman seg Mozilla d Firefox",
   "settings_pane_button_label": "Sagen asebter n yiccer-ik amaynut",
-  "settings_pane_header": "Ismenyifen n yiccer amaynut",
-  "settings_pane_body2": "Fren ayen ad twaliḍ deg usebter-agi.",
-  "settings_pane_search_header": "Nadi",
-  "settings_pane_search_body": "Nadi di Web seg iccer-ik amaynut.",
   "settings_pane_topsites_header": "Ismal ifazen",
-  "settings_pane_topsites_body": "Kcem ar yesmal web i trezzuḍ s waṭas.",
-  "settings_pane_topsites_options_showmore": "Sken sin izirigen",
   "settings_pane_highlights_header": "Asebrureq",
-  "settings_pane_highlights_body2": "Aff abrid-ik γer wayen i tḥemmleḍ i γef terziḍ yakan neγ tcerḍeḍ-t.",
   "settings_pane_highlights_options_bookmarks": "Ticraḍ n isebtar",
-  "settings_pane_highlights_options_visited": "Ismal yettwarzan",
   "settings_pane_snippets_header": "Tiwzillin",
-  "settings_pane_snippets_body": "Wali issalen n Mozilla γef Firefox, adlis internet, akked issalen nniṣen sya γer da.",
-  "settings_pane_done_button": "Immed",
-  "settings_pane_topstories_options_sponsored": "Sken Imagraden yesɛan imasayen",
   "edit_topsites_button_text": "Ẓreg",
   "edit_topsites_edit_button": "Ẓreg asmel-agi",
   "topsites_form_add_header": "Asmel ifazen amaynut",
   "topsites_form_edit_header": "Ẓreg asmel ifazen",
   "topsites_form_title_label": "Azwel",
   "topsites_form_title_placeholder": "Sekcem azwel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Tugna tudmawant URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Taskant",
   "topsites_form_add_button": "Rnu",
   "topsites_form_save_button": "Sekles",
   "topsites_form_cancel_button": "Sefsex",
   "topsites_form_url_validation": "Tansa URL tameɣtut tettwasra",
   "topsites_form_image_validation": "Tugna ur d-uli ara. Ɛreḍ tansa-nniḍen URL.",
   "pocket_read_more": "Isental ittwasnen aṭas:",
   "pocket_read_even_more": "Wali ugar n teqsiḍin",
-  "pocket_description": "S lmendad n Pocket n Mozillan wali aqbur ifazen aṭas, s ttawil-a werǧin ad tzegleḍ taγawsa.",
   "highlights_empty_state": "Bdu tuniginn sakin nekkni ad k-n-sken imagraden, tividyutin, akked isebtar nniḍen i γef terziḍ yakan neγ i tceṛḍeḍ dagi.",
   "topstories_empty_state": "Ulac wiyaḍ. Uɣal-d ticki s wugar n imagraden seg {provider}. Ur tebɣiḍ ara ad terǧuḍ? Fren asentel seg wid yettwasnen akken ad twaliḍ imagraden yelhan di Web.",
   "manual_migration_explanation2": "Σreḍ Firefox s ticṛaḍ n isebtar, amazray akked awalen uffiren sγur ilinigen nniḍen.",
   "manual_migration_cancel_button": "Ala, tanemmirt",
   "manual_migration_import_button": "Kter tura",
   "error_fallback_default_info": "Ihuh, yella wayen yeḍran deg usali n ugbur-a.",
   "error_fallback_default_refresh_suggestion": "Sali-d aseter akken ad talseḍ aɛraḍ.",
   "section_menu_action_remove_section": "Kkes tigezmi",
@@ -121,24 +108,37 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Tasertit n tbaḍnit",
   "welcome_title": "Ansuf ar yiccer amaynut",
   "welcome_body": "Firefox ad iseqdec tallunt akken ad d-yesken akk ticraḍ n isebtar iwulmen, imagraden, tividyutin, akked isebtar aniɣer terziḍ melmi kan, ihi tzemreḍ ad d-uɣaleḍ ɣer-sen s wudem fessusen.",
   "welcome_label": "Asulu n iferdisen tisura",
   "time_label_less_than_minute": "<1 n tesdat",
   "time_label_minute": "{number} n tesdatin",
   "time_label_hour": "{number} n isragen",
   "time_label_day": "{number}n wussan",
+  "prefs_restore_defaults_button": "Err-d eɣewwaṛen n tazwara",
   "prefs_topstories_description": "Agbur n tɣara meqqren i tzegleḍ ahat",
   "prefs_topstories_show_sponsored_label": "Tiqsiḍin yettwarefden {provider}",
+  "settings_pane_header": "Ismenyifen n yiccer amaynut",
+  "settings_pane_body2": "Fren ayen ad twaliḍ deg usebter-agi.",
+  "settings_pane_search_header": "Nadi",
+  "settings_pane_search_body": "Nadi di Web seg iccer-ik amaynut.",
+  "settings_pane_topsites_body": "Kcem ar yesmal web i trezzuḍ s waṭas.",
+  "settings_pane_topsites_options_showmore": "Sken sin izirigen",
   "settings_pane_bookmarks_header": "Ticraḍ n melmi kan",
   "settings_pane_bookmarks_body": "Ticraḍ yettwarnan melmi kan deg iwen n umdiq ɣef afus.",
   "settings_pane_visit_again_header": "Rzu tikelt-nniḍen",
   "settings_pane_visit_again_body": "Firefox ad d-yesken tukkist n umazray-ik n tunigin i tzemreḍ ad twalid tikelt-nniḍen.",
+  "settings_pane_highlights_body2": "Aff abrid-ik γer wayen i tḥemmleḍ i γef terziḍ yakan neγ tcerḍeḍ-t.",
+  "settings_pane_highlights_options_visited": "Ismal yettwarzan",
+  "settings_pane_snippets_body": "Wali issalen n Mozilla γef Firefox, adlis internet, akked issalen nniṣen sya γer da.",
+  "settings_pane_done_button": "Immed",
+  "settings_pane_topstories_options_sponsored": "Sken Imagraden yesɛan imasayen",
   "edit_topsites_button_label": "Sagen tigezmi n ismal ifazen",
   "edit_topsites_showmore_button": "Sken ugar",
   "edit_topsites_showless_button": "Sken qel",
   "edit_topsites_done_button": "Immed",
   "edit_topsites_pin_button": "Ṭṭef asmel-agi",
   "edit_topsites_unpin_button": "Serreḥ asmel-agi",
   "edit_topsites_dismiss_button": "Anef i usmel-agi",
   "edit_topsites_add_button": "Rnu",
-  "pocket_feedback_header": "D amezwaru n Web, ittwafren sγur ugar 25 imelyan n imdanen."
+  "pocket_feedback_header": "D amezwaru n Web, ittwafren sγur ugar 25 imelyan n imdanen.",
+  "pocket_description": "S lmendad n Pocket n Mozillan wali aqbur ifazen aṭas, s ttawil-a werǧin ad tzegleḍ taγawsa."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Интернетте іздеу</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Интернетте іздеу" title="Интернетте іздеу"/><button id="searchSubmit" class="search-button" title="Іздеу"><span class="sr-only"><span>Іздеу</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Үздік сайттар</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Санаттың контекст мәзірін ашу</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Бұл сайтты түзету"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Ұсынушы Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Санаттың контекст мәзірін ашу</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Әйгілі тақырыптар:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Ерекше жаңалықтар</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Санаттың контекст мәзірін ашу</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Жаңа бетті баптаңыз"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Іздеу",
   "search_header": "{search_engine_name} іздеуі",
   "search_web_placeholder": "Интернетте іздеу",
   "section_disclaimer_topstories": "Сіз оқитын нәрселерге негізделген интернеттегі ең қызықты хикаялар. Mozilla құрамындағы Pocket ұсынады.",
   "section_disclaimer_topstories_linktext": "Бұл қалай жұмыс жасайтынын білу.",
   "section_disclaimer_topstories_buttontext": "Жақсы, түсіндім",
   "prefs_home_header": "Firefox үй парағы құрамасы",
   "prefs_home_description": "Firefox үй парағында қандай құраманы көргіңіз келетінді таңдаңыз.",
-  "prefs_restore_defaults_button": "Бастапқы мәндерін қайтару",
   "prefs_section_rows_option": "{num} жол;{num} жол",
   "prefs_search_header": "Интернеттен іздеу",
   "prefs_topsites_description": "Сіз жиі шолатын сайттар",
   "prefs_topstories_description2": "Бүкіл Интернеттен алынған тамаша контент, талғамыңызға сай таңдалған",
   "prefs_topstories_options_sponsored_label": "Демеушілер мақалалары",
   "prefs_topstories_sponsored_learn_more": "Көбірек білу",
   "prefs_highlights_description": "Сіз сақтаған немесе шолған таңдамалы сайттар",
   "prefs_highlights_options_visited_label": "Қаралған беттер",
   "prefs_highlights_options_download_label": "Ең соңғы жүктеме",
   "prefs_highlights_options_pocket_label": "Pocket-ке сақталған беттер",
   "prefs_snippets_description": "Mozilla және Firefox жаңалықтары",
   "settings_pane_button_label": "Жаңа бетті баптаңыз",
-  "settings_pane_header": "Жаңа бет баптаулары",
-  "settings_pane_body2": "Бұл бетте не көргіңіз келетінді таңдаңыз.",
-  "settings_pane_search_header": "Іздеу",
-  "settings_pane_search_body": "Жаңа беттен интернеттен іздеңіз.",
   "settings_pane_topsites_header": "Үздік сайттар",
-  "settings_pane_topsites_body": "Көбірек қаралатын сайттарға қатынау.",
-  "settings_pane_topsites_options_showmore": "Екі жолды көрсету",
   "settings_pane_highlights_header": "Ерекше жаңалықтар",
-  "settings_pane_highlights_body2": "Сіз жақында қараған немесе бетбелгілерге қосқан қызықты нәрселерге қайтатын жолды табыңыз.",
   "settings_pane_highlights_options_bookmarks": "Бетбелгілер",
-  "settings_pane_highlights_options_visited": "Ашылған сайттар",
   "settings_pane_snippets_header": "Үзінділер",
-  "settings_pane_snippets_body": "Mozilla ұсынған Firefox және интернет мәдениеті туралы қысқа жаңалықтарды, және кездейсоқ мемдерді оқыңыз.",
-  "settings_pane_done_button": "Дайын",
-  "settings_pane_topstories_options_sponsored": "Демеушілер мақалаларын көрсету",
   "edit_topsites_button_text": "Түзету",
   "edit_topsites_edit_button": "Бұл сайтты түзету",
   "topsites_form_add_header": "Жаңа топ сайты",
   "topsites_form_edit_header": "Топ сайтын түзету",
   "topsites_form_title_label": "Атауы",
   "topsites_form_title_placeholder": "Атауын енгізіңіз",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Өз суреттің URL адресі",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Алдын-ала қарау",
   "topsites_form_add_button": "Қосу",
   "topsites_form_save_button": "Сақтау",
   "topsites_form_cancel_button": "Бас тарту",
   "topsites_form_url_validation": "Жарамды сілтеме керек",
   "topsites_form_image_validation": "Суретті жүктеу қатемен аяқталды. Басқа URL адресін қолданып көріңіз.",
   "pocket_read_more": "Әйгілі тақырыптар:",
   "pocket_read_even_more": "Көбірек хикаяларды қарау",
-  "pocket_description": "Ол болмаса, сіз жіберіп алатын мүмкіндігі бар жоғары сапалы құраманы Pocket көмегімен табыңыз, ол енді Mozilla-ның бөлігі болып табылады.",
   "highlights_empty_state": "Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі.",
   "topstories_empty_state": "Дайын. {provider} ұсынған көбірек мақалаларды алу үшін кейінірек тексеріңіз. Күте алмайсыз ба? Интернеттен көбірек тамаша мақалаларды алу үшін әйгілі теманы таңдаңыз.",
   "manual_migration_explanation2": "Firefox қолданбасын басқа браузер бетбелгілері, тарихы және парольдерімен қолданып көріңіз.",
   "manual_migration_cancel_button": "Жоқ, рахмет",
   "manual_migration_import_button": "Қазір импорттау",
   "error_fallback_default_info": "Қап, бұл құраманы жүктеу кезінде бірнәрсе қате кетті.",
   "error_fallback_default_refresh_suggestion": "Қайталап көру үшін, бетті жаңартыңыз.",
   "section_menu_action_remove_section": "Санатты өшіру",
   "section_menu_action_collapse_section": "Санатты бүктеу",
   "section_menu_action_expand_section": "Санатты жазық қылу",
   "section_menu_action_manage_section": "Санатты басқару",
   "section_menu_action_add_topsite": "Үздік сайт қосу",
   "section_menu_action_move_up": "Жоғары жылжыту",
   "section_menu_action_move_down": "Төмен жылжыту",
-  "section_menu_action_privacy_notice": "Жекелік ескертуі"
+  "section_menu_action_privacy_notice": "Жекелік ескертуі",
+  "prefs_restore_defaults_button": "Бастапқы мәндерін қайтару",
+  "settings_pane_header": "Жаңа бет баптаулары",
+  "settings_pane_body2": "Бұл бетте не көргіңіз келетінді таңдаңыз.",
+  "settings_pane_search_header": "Іздеу",
+  "settings_pane_search_body": "Жаңа беттен интернеттен іздеңіз.",
+  "settings_pane_topsites_body": "Көбірек қаралатын сайттарға қатынау.",
+  "settings_pane_topsites_options_showmore": "Екі жолды көрсету",
+  "settings_pane_highlights_body2": "Сіз жақында қараған немесе бетбелгілерге қосқан қызықты нәрселерге қайтатын жолды табыңыз.",
+  "settings_pane_highlights_options_visited": "Ашылған сайттар",
+  "settings_pane_snippets_body": "Mozilla ұсынған Firefox және интернет мәдениеті туралы қысқа жаңалықтарды, және кездейсоқ мемдерді оқыңыз.",
+  "settings_pane_done_button": "Дайын",
+  "settings_pane_topstories_options_sponsored": "Демеушілер мақалаларын көрсету",
+  "pocket_description": "Ол болмаса, сіз жіберіп алатын мүмкіндігі бар жоғары сапалы құраманы Pocket көмегімен табыңыз, ол енді Mozilla-ның бөлігі болып табылады."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ស្វែងរក​បណ្ដាញ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ស្វែងរក​បណ្ដាញ" title="ស្វែងរក​បណ្ដាញ"/><button id="searchSubmit" class="search-button" title="ស្វែងរក"><span class="sr-only"><span>ស្វែងរក</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>វិបសាយ​លើ​គេ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="កែសម្រួលសាយនេះ"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>បានណែនាំដោយ Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ប្រធានបទកំពុងពេញនិយម៖</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>រឿងសំខាន់ៗ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ស្វែងរក",
   "search_header": "{search_engine_name} ស្វែងរក",
   "search_web_placeholder": "ស្វែងរក​បណ្ដាញ",
   "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": "យល់​ហើយ",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Customize your New Tab page",
-  "settings_pane_header": "ចំណង់ចំណូលចិត្ត ផ្ទាំងថ្មី",
-  "settings_pane_body2": "ជ្រើសរើសអ្វីដែលអ្នកឃើញនៅលើទំព័រនេះ។",
-  "settings_pane_search_header": "ស្វែងរក",
-  "settings_pane_search_body": "ស្វែងរកបណ្តាញពីផ្ទាំងថ្មីរបស់អ្នក។",
   "settings_pane_topsites_header": "សាយកំពូល",
-  "settings_pane_topsites_body": "ចូលវេបសាយដែលអ្នកទស្សនាច្រើនបំផុត។",
-  "settings_pane_topsites_options_showmore": "បង្ហាញជួរដេកពីរ",
   "settings_pane_highlights_header": "រឿងសំខាន់ៗ",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "ចំណាំ",
-  "settings_pane_highlights_options_visited": "សាយដែលបានទស្សនា",
   "settings_pane_snippets_header": "អត្ថបទសង្ខេប",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "ធ្វើរួច",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "កែសម្រួល",
   "edit_topsites_edit_button": "កែសម្រួលសាយនេះ",
   "topsites_form_add_header": "សាយកំពូលថ្មី",
   "topsites_form_edit_header": "កែសម្រួលសាយកំពូល",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "បញ្ចូលចំណងជើង",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "បន្ថែម",
   "topsites_form_save_button": "រក្សាទុក",
   "topsites_form_cancel_button": "បោះបង់",
   "topsites_form_url_validation": "ត្រូវការ URL ដែលត្រឹមត្រូវ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ប្រធានបទកំពុងពេញនិយម៖",
   "pocket_read_even_more": "មើលរឿងរ៉ាវច្រើនទៀត",
-  "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.",
   "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": "សាកល្បងប្រើ Firefox ជាមួយចំណាំ ប្រវត្តិ និងពាក្យសម្ងាត់ពីកម្មវិធីរុករកផ្សេងទៀត។",
   "manual_migration_cancel_button": "ទេ អរគុណ",
   "manual_migration_import_button": "នាំចូលឥឡូវនេះ",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,19 +108,27 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "សេចក្តីជូនដំណឹងអំពីភាពឯកជន",
   "welcome_title": "ស្វាគមន៍​មក​កាន់​ផ្ទាំង​ថ្មី",
   "welcome_body": "Firefox នឹង​ប្រើប្រាស់​កន្លែង​ទំនេរ​នេះ ដើម្បី​បង្ហាញ​ចំណាំ អត្ថបទ វីដេអូ និង​ទំព័រ​ដែល​ទាក់ទង​អ្នក​បំផុត ដែល​អ្នក​បាន​ចូល​មើល​ថ្មីៗ​នេះ ដូច្នេះ​អ្នក​អាច​ត្រឡប់​ទៅ​​កាន់​​វា​​វិញ​បាន​យ៉ាងងាយស្រួល។",
   "welcome_label": "កំពុង​បញ្ជាក់​ការ​រំលេច​របស់​អ្នក",
   "time_label_less_than_minute": "<1 នាទី",
   "time_label_minute": "{number} នាទី",
   "time_label_hour": "{number} ម៉ោង",
   "time_label_day": "{number} ថ្ងៃ",
+  "settings_pane_header": "ចំណង់ចំណូលចិត្ត ផ្ទាំងថ្មី",
+  "settings_pane_body2": "ជ្រើសរើសអ្វីដែលអ្នកឃើញនៅលើទំព័រនេះ។",
+  "settings_pane_search_header": "ស្វែងរក",
+  "settings_pane_search_body": "ស្វែងរកបណ្តាញពីផ្ទាំងថ្មីរបស់អ្នក។",
+  "settings_pane_topsites_body": "ចូលវេបសាយដែលអ្នកទស្សនាច្រើនបំផុត។",
+  "settings_pane_topsites_options_showmore": "បង្ហាញជួរដេកពីរ",
   "settings_pane_bookmarks_header": "ចំណាំថ្មីៗ",
   "settings_pane_bookmarks_body": "ចំណាំថ្មីៗ ដែលបានបង្កើតរបស់អ្នកនៅក្នុងទីតាំងដែលងាយស្រួល។",
   "settings_pane_visit_again_header": "ទស្សនាម្ដងទៀត",
+  "settings_pane_highlights_options_visited": "សាយដែលបានទស្សនា",
+  "settings_pane_done_button": "ធ្វើរួច",
   "edit_topsites_showmore_button": "បង្ហាញច្រើនទៀត",
   "edit_topsites_showless_button": "បង្ហាញតិចជាង​នេះ",
   "edit_topsites_done_button": "ធ្វើរួច",
   "edit_topsites_pin_button": "ខ្ទាស់សាយនេះ",
   "edit_topsites_unpin_button": "ដកខ្ទាស់សាយនេះ",
   "edit_topsites_dismiss_button": "ច្រានចោលសាយនេះ",
   "edit_topsites_add_button": "បន្ថែម",
   "pocket_feedback_header": "បណ្តាញល្អបំផុត ដែលបានវាយតម្លៃដោយមនុស្សជាង 25 លាននាក់។"
--- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ" title="ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ"/><button id="searchSubmit" class="search-button" title="ಹುಡುಕು"><span class="sr-only"><span>ಹುಡುಕು</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ಪ್ರಮುಖ ತಾಣಗಳು</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket ರಿಂದ ಶಿಫಾರಸುಮಾಡುಲಾಗಿದೆ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ಜನಪ್ರಿಯವಾದ ವಿಷಯಗಳು:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ಮುಖ್ಯಾಂಶಗಳು</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="ಹೊಸ ಹಾಳೆಯ ಪುಟವನ್ನು ಅಗತ್ಯಾನುಗುಣಗೊಳಿಸಿ"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ಹುಡುಕು",
   "search_header": "{search_engine_name} ನಿಂದ ಹುಡುಕಿ",
   "search_web_placeholder": "ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "ಹೊಸ ಹಾಳೆಯ ಪುಟವನ್ನು ಅಗತ್ಯಾನುಗುಣಗೊಳಿಸಿ",
-  "settings_pane_header": "ಹೊಸ ಹಾಳೆಯ ಆದ್ಯತೆಗಳು",
-  "settings_pane_body2": "ನೀವು ಈ ಪುಟದಲ್ಲಿ ಏನು ನೋಡಿತ್ತೀರೆಂದು ಆಯ್ಕೆಮಾಡಿ.",
-  "settings_pane_search_header": "ಹುಡುಕು",
-  "settings_pane_search_body": "ಹೊಸ ಹಾಳೆಯಿಂದ ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ.",
   "settings_pane_topsites_header": "ಪ್ರಮುಖ ತಾಣಗಳು",
-  "settings_pane_topsites_body": "ನೀವು ಅತಿ ಹೆಚ್ಚು ನೋಡುವ ಜಾಲತಾಣಗಳಿಗೆ ಪ್ರವೇಶದ್ವಾರ.",
-  "settings_pane_topsites_options_showmore": "ಎರಡು ಸಾಲುಗಳನ್ನು ಪ್ರದರ್ಶಿಸು",
   "settings_pane_highlights_header": "ಮುಖ್ಯಾಂಶಗಳು",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "ಪುಟಗುರುತುಗಳು",
-  "settings_pane_highlights_options_visited": "ಭೇಟಿ ನೀಡಿದ ತಾಣಗಳು",
   "settings_pane_snippets_header": "ಉಲ್ಲೇಖಗಳು",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "ಆಯಿತು",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "‍ತಿದ್ದು",
   "edit_topsites_edit_button": "ಈ ತಾಣವನ್ನು ಸಂಪಾದಿಸು",
   "topsites_form_add_header": "ಹೊಸ ಅಗ್ರ ತಾಣಗಳು",
   "topsites_form_edit_header": "ಅಗ್ರ ತಾಣಗಳನ್ನು ಸಂಪಾದಿಸಿ",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "ಶೀರ್ಷಿಕೆಯನ್ನು ನಮೂದಿಸಿ",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "ಸೇರಿಸು",
   "topsites_form_save_button": "ಉಳಿಸು",
   "topsites_form_cancel_button": "ರದ್ದು ಮಾಡು",
   "topsites_form_url_validation": "ಸರಿಯಾದ URL ಬೇಕಾಗಿದೆ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ಜನಪ್ರಿಯವಾದ ವಿಷಯಗಳು:",
   "pocket_read_even_more": "ಹೆಚ್ಚು ಕತೆಗಳನ್ನು ನೋಡಿರಿ",
-  "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
   "highlights_empty_state": "ವೀಕ್ಷಣೆ ಮಾಡಲು ಶುರುಮಾಡಿ, ಮತ್ತು ನಾವು ಇತ್ತೀಚೆಗೆ ಭೇಟಿ ನೀಡಿದ ಅಥವಾ ಬುಕ್‌ಮಾರ್ಕ್ ಮಾಡಲಾದ ಕೆಲವು ಶ್ರೇಷ್ಠ ಲೇಖನಗಳು, ವೀಡಿಯೊಗಳು ಮತ್ತು ಇತರ ಪುಟಗಳನ್ನು ನಾವು ತೋರಿಸುತ್ತೇವೆ.",
   "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_cancel_button": "ಪರವಾಗಿಲ್ಲ",
   "manual_migration_import_button": "ಈಗ ಆಮದು ಮಾಡು",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -119,18 +106,26 @@ window.gActivityStreamStrings = {
   "section_info_option": "ಮಾಹಿತಿ",
   "section_info_send_feedback": "ಅಭಿಪ್ರಾಯವನ್ನು ಕಳುಹಿಸಿ",
   "section_info_privacy_notice": "ಗೌಪ್ಯತಾ ಸೂಚನೆ",
   "welcome_title": "ಹೊಸ ಹಾಳೆಗೆ ಸುಸ್ವಾಗತ",
   "time_label_less_than_minute": "<1ನಿ",
   "time_label_minute": "{number}ನಿ",
   "time_label_hour": "{number}ಗ",
   "time_label_day": "{number}ದಿ",
+  "settings_pane_header": "ಹೊಸ ಹಾಳೆಯ ಆದ್ಯತೆಗಳು",
+  "settings_pane_body2": "ನೀವು ಈ ಪುಟದಲ್ಲಿ ಏನು ನೋಡಿತ್ತೀರೆಂದು ಆಯ್ಕೆಮಾಡಿ.",
+  "settings_pane_search_header": "ಹುಡುಕು",
+  "settings_pane_search_body": "ಹೊಸ ಹಾಳೆಯಿಂದ ಅಂತರ್ಜಾಲವನ್ನು ಹುಡುಕಿ.",
+  "settings_pane_topsites_body": "ನೀವು ಅತಿ ಹೆಚ್ಚು ನೋಡುವ ಜಾಲತಾಣಗಳಿಗೆ ಪ್ರವೇಶದ್ವಾರ.",
+  "settings_pane_topsites_options_showmore": "ಎರಡು ಸಾಲುಗಳನ್ನು ಪ್ರದರ್ಶಿಸು",
   "settings_pane_bookmarks_header": "ಇತ್ತೀಚಿನ ಪುಟಗುರುತುಗಳು",
   "settings_pane_visit_again_header": "ಮತ್ತೆ ಭೇಟಿಕೊಡು",
+  "settings_pane_highlights_options_visited": "ಭೇಟಿ ನೀಡಿದ ತಾಣಗಳು",
+  "settings_pane_done_button": "ಆಯಿತು",
   "edit_topsites_showmore_button": "‍ಹೆಚ್ಚು ತೋರಿಸು",
   "edit_topsites_showless_button": "ಕೆಲವೊಂದು ತೋರಿಸಿ",
   "edit_topsites_done_button": "ಆಯಿತು",
   "edit_topsites_pin_button": "ಈ ತಾಣವನ್ನು ಪಿನ್ ಮಾಡು",
   "edit_topsites_unpin_button": "ಈ ತಾಣವನ್ನು ಹೊರತೆಗೆ",
   "edit_topsites_dismiss_button": "ಈ ತಾಣವನ್ನು ತೆಗೆದುಹಾಕು",
   "edit_topsites_add_button": "ಸೇರಿಸು"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>웹 검색</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="웹 검색" title="웹 검색"/><button id="searchSubmit" class="search-button" title="검색"><span class="sr-only"><span>검색</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>상위 사이트</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>섹션 컨텍스트 메뉴 열기</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="이 사이트 수정"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket 추천</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>섹션 컨텍스트 메뉴 열기</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>인기 주제:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>하이라이트</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>섹션 컨텍스트 메뉴 열기</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="새 탭 페이지 꾸미기"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "검색",
   "search_header": "{search_engine_name} 검색",
   "search_web_placeholder": "웹 검색",
   "section_disclaimer_topstories": "Pocket을 통해서 사용자가 읽은 글을 기반으로 가장 재미있는 글을 찾아주는 글들을 읽어보세요. 이제 Mozilla와 함께 합니다.",
   "section_disclaimer_topstories_linktext": "어떻게 작동 하는지 알아봅시다.",
   "section_disclaimer_topstories_buttontext": "알겠습니다.",
   "prefs_home_header": "Firefox 홈 콘텐츠",
   "prefs_home_description": "Firefox 홈 화면에 나올 콘텐츠를 선택하세요.",
-  "prefs_restore_defaults_button": "기본값으로 복원",
   "prefs_section_rows_option": "{num} 행",
   "prefs_search_header": "웹 검색",
   "prefs_topsites_description": "가장 많이 방문한 사이트",
   "prefs_topstories_description2": "여러분에게 맞춰진 웹에서 제공되는 훌륭한 컨텐츠",
   "prefs_topstories_options_sponsored_label": "후원된 스토리",
   "prefs_topstories_sponsored_learn_more": "자세히 보기",
   "prefs_highlights_description": "저장하거나 방문한 사이트 모음",
   "prefs_highlights_options_visited_label": "방문한 페이지",
   "prefs_highlights_options_download_label": "가장 최근 다운로드",
   "prefs_highlights_options_pocket_label": "Pocket에 저장된 페이지",
   "prefs_snippets_description": "Mozilla와 Firefox 소식",
   "settings_pane_button_label": "새 탭 페이지 꾸미기",
-  "settings_pane_header": "새 탭 설정",
-  "settings_pane_body2": "이 페이지에서 볼 것을 선택하세요.",
-  "settings_pane_search_header": "검색",
-  "settings_pane_search_body": "새 탭에서 웹을 검색하세요.",
   "settings_pane_topsites_header": "상위 사이트",
-  "settings_pane_topsites_body": "가장 많이 방문한 웹 사이트에 접근하세요.",
-  "settings_pane_topsites_options_showmore": "두 줄로 보기",
   "settings_pane_highlights_header": "하이라이트",
-  "settings_pane_highlights_body2": "최근에 방문했거나 북마크한 흥미로운 것들로 돌아갈 수 있는 방법입니다.",
   "settings_pane_highlights_options_bookmarks": "즐겨찾기",
-  "settings_pane_highlights_options_visited": "방문한 사이트",
   "settings_pane_snippets_header": "짧은 요약",
-  "settings_pane_snippets_body": "Mozilla, Firefox, 인터넷 문화나 가끔 무작위 밈에 대해서 읽어보세요.",
-  "settings_pane_done_button": "완료",
-  "settings_pane_topstories_options_sponsored": "후원된 스토리",
   "edit_topsites_button_text": "수정",
   "edit_topsites_edit_button": "이 사이트 수정",
   "topsites_form_add_header": "새로운 인기 사이트",
   "topsites_form_edit_header": "인기 사이트 편집",
   "topsites_form_title_label": "제목",
   "topsites_form_title_placeholder": "제목 입력",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "개인화 이미지 URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "미리보기",
   "topsites_form_add_button": "추가",
   "topsites_form_save_button": "저장",
   "topsites_form_cancel_button": "취소",
   "topsites_form_url_validation": "유효한 URL이 필요합니다",
   "topsites_form_image_validation": "이미지를 읽어오지 못했습니다. 다른 URL을 시도해 주세요.",
   "pocket_read_more": "인기 주제:",
   "pocket_read_even_more": "더 많은 이야기 보기",
-  "pocket_description": "Mozilla와 하나가 된 Pocket의 도움으로 놓칠지도 모르는 고품질의 컨텐츠를 접해보세요.",
   "highlights_empty_state": "브라우징을 시작하면 최근 방문하거나 북마크한 좋은 글이나 영상, 페이지를 여기에 보여줍니다.",
   "topstories_empty_state": "다 왔습니다. {provider}에서 제공하는 주요 기사를 다시 확인해 보세요. 기다릴 수가 없나요? 주제를 선택하면 웹에서 볼 수 있는 가장 재미있는 글을 볼 수 있습니다.",
   "manual_migration_explanation2": "다른 브라우저에 있는 북마크, 기록, 비밀번호를 사용해 Firefox를 이용해 보세요.",
   "manual_migration_cancel_button": "괜찮습니다",
   "manual_migration_import_button": "지금 가져오기",
   "error_fallback_default_info": "이 콘텐츠를 불러오는데 오류가 발생하였습니다.",
   "error_fallback_default_refresh_suggestion": "페이지를 새로고침해서 다시 시도해 주세요.",
   "section_menu_action_remove_section": "섹션 삭제",
   "section_menu_action_collapse_section": "섹션 닫기",
   "section_menu_action_expand_section": "섹션 열기",
   "section_menu_action_manage_section": "섹션 관리",
   "section_menu_action_add_topsite": "인기 사이트 추가",
   "section_menu_action_move_up": "위로 이동",
   "section_menu_action_move_down": "아래로 이동",
-  "section_menu_action_privacy_notice": "개인 정보 보호 정책"
+  "section_menu_action_privacy_notice": "개인 정보 보호 정책",
+  "prefs_restore_defaults_button": "기본값으로 복원",
+  "settings_pane_header": "새 탭 설정",
+  "settings_pane_body2": "이 페이지에서 볼 것을 선택하세요.",
+  "settings_pane_search_header": "검색",
+  "settings_pane_search_body": "새 탭에서 웹을 검색하세요.",
+  "settings_pane_topsites_body": "가장 많이 방문한 웹 사이트에 접근하세요.",
+  "settings_pane_topsites_options_showmore": "두 줄로 보기",
+  "settings_pane_highlights_body2": "최근에 방문했거나 북마크한 흥미로운 것들로 돌아갈 수 있는 방법입니다.",
+  "settings_pane_highlights_options_visited": "방문한 사이트",
+  "settings_pane_snippets_body": "Mozilla, Firefox, 인터넷 문화나 가끔 무작위 밈에 대해서 읽어보세요.",
+  "settings_pane_done_button": "완료",
+  "settings_pane_topstories_options_sponsored": "후원된 스토리",
+  "pocket_description": "Mozilla와 하나가 된 Pocket의 도움으로 놓칠지도 모르는 고품질의 컨텐츠를 접해보세요."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Çerca inta Ræ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Çerca inta Ræ" title="Çerca inta Ræ"/><button id="searchSubmit" class="search-button" title="Çerca"><span class="sr-only"><span>Çerca</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>I megio sciti</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Arvi into menû contesto pe-a seçion</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Cangia sto scito"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Consegiou da Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Arvi into menû contesto pe-a seçion</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Argomenti popolari:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>In evidensa</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Arvi into menû contesto pe-a seçion</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizza a teu pagina Neuvo feuggio"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Çerca",
   "search_header": "Riçerca {search_engine_name}",
   "search_web_placeholder": "Çerca inta Ræ",
   "section_disclaimer_topstories": "E stöie ciù interesanti do Web, seleçionæ in baze a quello che ti lezi. Pigiæ da Pocket, che oua o l'é parte de Mozilla.",
   "section_disclaimer_topstories_linktext": "Descòvri comme fonçionn-a.",
   "section_disclaimer_topstories_buttontext": "Va ben, ò capio",
   "prefs_home_header": "Pagina iniçiâ de Firefox",
   "prefs_home_description": "Çerni i contegnui che ti veu vedde inta pagina iniçiâ de Firefox.",
-  "prefs_restore_defaults_button": "Repiggia predefinii",
   "prefs_section_rows_option": "{num} riga;{num} righe",
   "prefs_search_header": "Çerca into Web",
   "prefs_topsites_description": "I sciti che ti vixiti de ciù",
   "prefs_topstories_description2": "I megio contegnui pigiæ in gio pe-a ræ, personalizæ pe ti",
   "prefs_topstories_options_sponsored_label": "Stöie sponsorizæ",
   "prefs_topstories_sponsored_learn_more": "Atre informaçioin",
   "prefs_highlights_description": "'Na seleçion di sciti che t'ê sarvou ò vixitou",
   "prefs_highlights_options_visited_label": "Pagine vixitæ",
   "prefs_highlights_options_download_label": "Urtimi descaregamenti",
   "prefs_highlights_options_pocket_label": "Pagine sarvæ in Pocket",
   "prefs_snippets_description": "Agiornamenti da Mozilla e Firefox",
   "settings_pane_button_label": "Personalizza a teu pagina Neuvo feuggio",
-  "settings_pane_header": "Preferense neuvo feuggio",
-  "settings_pane_body2": "Çerni cöse ti veu vedde in sta pagina.",
-  "settings_pane_search_header": "Çerca",
-  "settings_pane_search_body": "Çerca inta Ræ da-o teu neuvo feuggio.",
   "settings_pane_topsites_header": "I megio sciti",
-  "settings_pane_topsites_body": "Acedi a-i sciti che ti vixiti ciù de spesso.",
-  "settings_pane_topsites_options_showmore": "Fanni vedde doe righe",
   "settings_pane_highlights_header": "In evidensa",
-  "settings_pane_highlights_body2": "Treuva torna e pagine interesanti che t'aivi vixitou ò azonto a-i segnalibbri.",
   "settings_pane_highlights_options_bookmarks": "Segnalibbri",
-  "settings_pane_highlights_options_visited": "Sciti vixitæ",
   "settings_pane_snippets_header": "Snippet",
-  "settings_pane_snippets_body": "Notiçie brevi da Mozille in sciô Firefox, Internet, sensa ascordâ di meme quache vòtta.",
-  "settings_pane_done_button": "Fæto",
-  "settings_pane_topstories_options_sponsored": "Fanni vedde articoli sponsorizæ",
   "edit_topsites_button_text": "Cangia",
   "edit_topsites_edit_button": "Cangia sto scito",
   "topsites_form_add_header": "Neuvo scito prinçipâ",
   "topsites_form_edit_header": "Cangia scito prinçipâ",
   "topsites_form_title_label": "Titolo",
   "topsites_form_title_placeholder": "Scrivi 'n titolo",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL da inmagine personalizâ",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Anteprimma",
   "topsites_form_add_button": "Azonzi",
   "topsites_form_save_button": "Sarva",
   "topsites_form_cancel_button": "Anulla",
   "topsites_form_url_validation": "Serve 'na URL bonn-a",
   "topsites_form_image_validation": "Erô into caregamento de l'inmagine. Preuva 'n atra URL.",
   "pocket_read_more": "Argomenti popolari:",
   "pocket_read_even_more": "Amia atre stöie",
-  "pocket_description": "Graçie a Pocket, un conponente da famiggia Mozilla, descòvri contegnui de erta qualitæ che atrimenti te porieivan scapâ.",
   "highlights_empty_state": "Iniçia a navegâ e, in sta seçion, saian mostræ articoli, video e atre pagine vixitæ de fresco ò azonti a-i segnalibbri.",
   "topstories_empty_state": "No gh'é atro. Contròlla ciù tardi se gh'é atre stöie da {provider}. No t'eu aspetâ? Seleçionn-a 'n argomento tra quelli ciù popolari pe descovrî atre notiçie interesanti da-o Web.",
   "manual_migration_explanation2": "Preuva Firefox con i segnalibbri, a stöia e-e paròlle segrete de 'n atro navegatô.",
   "manual_migration_cancel_button": "No graçie",
   "manual_migration_import_button": "Inpòrta oua",
   "error_fallback_default_info": "Ahime mi, gh'é quarche problema into caregamento de sto contegnuo.",
   "error_fallback_default_refresh_suggestion": "Agiorna pagina pe provâ torna.",
   "section_menu_action_remove_section": "Scancella seçion",
   "section_menu_action_collapse_section": "Conprimmi seçion",
   "section_menu_action_expand_section": "Espandi seçion",
   "section_menu_action_manage_section": "Gestisci seçion",
   "section_menu_action_add_topsite": "Azonzi scito prinçipâ",
   "section_menu_action_move_up": "Mescia in sciù",
   "section_menu_action_move_down": "Mescia in zu",
-  "section_menu_action_privacy_notice": "Informativa in sciâ privacy"
+  "section_menu_action_privacy_notice": "Informativa in sciâ privacy",
+  "prefs_restore_defaults_button": "Repiggia predefinii",
+  "settings_pane_header": "Preferense neuvo feuggio",
+  "settings_pane_body2": "Çerni cöse ti veu vedde in sta pagina.",
+  "settings_pane_search_header": "Çerca",
+  "settings_pane_search_body": "Çerca inta Ræ da-o teu neuvo feuggio.",
+  "settings_pane_topsites_body": "Acedi a-i sciti che ti vixiti ciù de spesso.",
+  "settings_pane_topsites_options_showmore": "Fanni vedde doe righe",
+  "settings_pane_highlights_body2": "Treuva torna e pagine interesanti che t'aivi vixitou ò azonto a-i segnalibbri.",
+  "settings_pane_highlights_options_visited": "Sciti vixitæ",
+  "settings_pane_snippets_body": "Notiçie brevi da Mozille in sciô Firefox, Internet, sensa ascordâ di meme quache vòtta.",
+  "settings_pane_done_button": "Fæto",
+  "settings_pane_topstories_options_sponsored": "Fanni vedde articoli sponsorizæ",
+  "pocket_description": "Graçie a Pocket, un conponente da famiggia Mozilla, descòvri contegnui de erta qualitæ che atrimenti te porieivan scapâ."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ຊອກຫາເວັບ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ຊອກຫາເວັບ" title="ຊອກຫາເວັບ"/><button id="searchSubmit" class="search-button" title="ຊອກ​ຫາ"><span class="sr-only"><span>ຊອກ​ຫາ</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ເວັບໄຊຕ໌ຍອດນິຍົມ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ແກ້ໄຂເວັບໄຊທ໌ນີ້"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>ແນະນຳໂດຍ Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ຫົວຂໍ້ຍອດນິຍົມ:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ລາຍການເດັ່ນ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="ປັບແຕ່ງຫນ້າແທັບໃຫມ່ຂອງທ່ານ"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ຊອກ​ຫາ",
   "search_header": "ຊອກຫາ {search_engine_name}",
   "search_web_placeholder": "ຊອກຫາເວັບ",
   "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": "ສຶກສາວິທີການເຮັດວຽກຂອງມັນ.",
   "section_disclaimer_topstories_buttontext": "ຕົກລົງ, ເຂົ້າໃຈແລ້ວ",
   "prefs_home_header": "ເນື້ອໃນຫນ້າທຳອິດຂອງ Firefox",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "ກູ້ຄືນຄ່າພື້ນຖານ",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "ຊອກຫາເວັບ",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "ສຶກສາເພີ່ມເຕີມ",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "ຫນ້າທີ່ເຂົ້າໄປເບິ່ງແລ້ວ",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "ຫນ້າທີ່ບັນທຶກໄວ້ໃນ Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "ປັບແຕ່ງຫນ້າແທັບໃຫມ່ຂອງທ່ານ",
-  "settings_pane_header": "ການຕັ້ງຄ່າແທັບໃຫມ່",
-  "settings_pane_body2": "ເລືອກສິ່ງທີ່ທ່ານຕ້ອງການເຫັນໃນຫນ້ານີ້.",
-  "settings_pane_search_header": "ຊອກຫາ",
-  "settings_pane_search_body": "ຊອກຫາເວັບຈາກແທັບໃຫມ່ຂອງທ່ານ.",
   "settings_pane_topsites_header": "ເວັບໄຊທ໌ຍອດນິຍົມ",
-  "settings_pane_topsites_body": "ເຂົ້າເວັບໄຊທ໌ທີ່ທ່ານໄດ້ເຂົ້າໄປຫລາຍທີ່ສຸດ.",
-  "settings_pane_topsites_options_showmore": "ສະແດງເປັນສອງແຖວ",
   "settings_pane_highlights_header": "ຈຸດເດັ່ນ",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "ບຸກມາກ",
-  "settings_pane_highlights_options_visited": "ໄຊທ໌ທີ່ເຂົ້າໄປເບິ່ງແລ້ວ",
   "settings_pane_snippets_header": "ສ່ວນຍ່ອຍ",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "ສຳເລັດ",
-  "settings_pane_topstories_options_sponsored": "ສະແດງບົດເລື່ອງທີ່ໄດ້ຮັບການສະຫນັບສະຫນູນ",
   "edit_topsites_button_text": "ແກ້ໄຂ",
   "edit_topsites_edit_button": "ແກ້ໄຂເວັບໄຊທ໌ນີ້",
   "topsites_form_add_header": "ເວັບໄຊທ໌ຍອດນິຍົມໃຫມ່",
   "topsites_form_edit_header": "ແກ້ໄຂເວັບໄຊທ໌ຍອດນິຍົມ",
   "topsites_form_title_label": "ຊື່ເລື່ອງ",
   "topsites_form_title_placeholder": "ປ້ອນຊື່ເລື່ອງ",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,25 +69,35 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "ສະແດງຕົວຢ່າງ",
   "topsites_form_add_button": "ເພີ່ມ",
   "topsites_form_save_button": "ບັນທຶກ",
   "topsites_form_cancel_button": "ຍົກເລີກ",
   "topsites_form_url_validation": "ຕ້ອງການ URL ທີ່ຖືກຕ້ອງ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ຫົວຂໍ້ຍອດນິຍົມ:",
   "pocket_read_even_more": "ເບິ່ງບົດເລື່ອງເພີ່ມເຕີມ",
-  "pocket_description": "ຄົ້ນພົບເນື້ອຫາຄຸນນະພາບສູງທີ່ທ່ານອາດຈະພາດໄປ, ດ້ວຍຄວາມຊ່ວຍເຫຼືອຈາກ Pocket, ເຊີ່ງຂະນະນີ້ເປັນສ່ວນໜື່ງຂອງ Mozilla.",
   "highlights_empty_state": "ເລີ່ມການທ່ອງເວັບ ແລະ ພວກເຮົາຈະສະແດງເນື້ອຫາ, ວິດີໂອ ແລະ ຫນ້າອື່ນໆບາງສ່ວນທີ່ທ່ານຫາກໍເຂົ້າໄປເບິງມາ ຫລື ຫາກໍໄດ້ບຸກມາກໄວ້ທີ່ນີ້.",
   "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_cancel_button": "ບໍ່, ຂອບໃຈ",
   "manual_migration_import_button": "ນຳເຂົ້າຕອນນີ້",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "ເພີ່ມເວັບໄຊທ໌ຍອດນິຍົມ",
   "section_menu_action_move_up": "ຍ້າຍຂື້ນ",
   "section_menu_action_move_down": "ຍ້າຍລົງ",
-  "section_menu_action_privacy_notice": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ"
+  "section_menu_action_privacy_notice": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ",
+  "prefs_restore_defaults_button": "ກູ້ຄືນຄ່າພື້ນຖານ",
+  "settings_pane_header": "ການຕັ້ງຄ່າແທັບໃຫມ່",
+  "settings_pane_body2": "ເລືອກສິ່ງທີ່ທ່ານຕ້ອງການເຫັນໃນຫນ້ານີ້.",
+  "settings_pane_search_header": "ຊອກຫາ",
+  "settings_pane_search_body": "ຊອກຫາເວັບຈາກແທັບໃຫມ່ຂອງທ່ານ.",
+  "settings_pane_topsites_body": "ເຂົ້າເວັບໄຊທ໌ທີ່ທ່ານໄດ້ເຂົ້າໄປຫລາຍທີ່ສຸດ.",
+  "settings_pane_topsites_options_showmore": "ສະແດງເປັນສອງແຖວ",
+  "settings_pane_highlights_options_visited": "ໄຊທ໌ທີ່ເຂົ້າໄປເບິ່ງແລ້ວ",
+  "settings_pane_done_button": "ສຳເລັດ",
+  "settings_pane_topstories_options_sponsored": "ສະແດງບົດເລື່ອງທີ່ໄດ້ຮັບການສະຫນັບສະຫນູນ",
+  "pocket_description": "ຄົ້ນພົບເນື້ອຫາຄຸນນະພາບສູງທີ່ທ່ານອາດຈະພາດໄປ, ດ້ວຍຄວາມຊ່ວຍເຫຼືອຈາກ Pocket, ເຊີ່ງຂະນະນີ້ເປັນສ່ວນໜື່ງຂອງ Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Ieškokite saityne</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Ieškokite saityne" title="Ieškokite saityne"/><button id="searchSubmit" class="search-button" title="Ieškoti"><span class="sr-only"><span>Ieškoti</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Lankomiausios svetainės</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atverti skilties kontekstinį meniu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redaguoti šią svetainę"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Rekomendavo „Pocket“</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atverti skilties kontekstinį meniu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populiarios temos:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Akcentai</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atverti skilties kontekstinį meniu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tinkinkite savo naujos kortelės puslapį"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Ieškoti",
   "search_header": "{search_engine_name} paieška",
   "search_web_placeholder": "Ieškokite saityne",
   "section_disclaimer_topstories": "Įdomiausi saityno straipsniai, parinkti pagal jūsų skaitymo įpročius. Iš „Pocket“, kuri dabar priklauso „Mozillai“.",
   "section_disclaimer_topstories_linktext": "Sužinokite, kaip tai veikia.",
   "section_disclaimer_topstories_buttontext": "Gerai, supratau",
   "prefs_home_header": "„Firefox“ pradžios turinys",
   "prefs_home_description": "Pasirinkite, kokį turinį norite matyti „Firefox“ pradžios ekrane",
-  "prefs_restore_defaults_button": "Grąžinti numatytąsias nuostatas",
   "prefs_section_rows_option": "{num} eilutė;{num} eilutės;{num} eilučių",
   "prefs_search_header": "Paieška internete",
   "prefs_topsites_description": "Dažniausiai lankomos svetainės",
   "prefs_topstories_description2": "Puikus turinys iš viso saityno, parinktas specialiai jums",
   "prefs_topstories_options_sponsored_label": "Rėmėjų straipsniai",
   "prefs_topstories_sponsored_learn_more": "Sužinoti daugiau",
   "prefs_highlights_description": "Aplankytų bei išsaugotų svetainių rinkinys",
   "prefs_highlights_options_visited_label": "Aplankyti tinklalapiai",
   "prefs_highlights_options_download_label": "Paskiausias atsisiuntimas",
   "prefs_highlights_options_pocket_label": "Į „Pocket“ įrašyti tinklalapiai",
   "prefs_snippets_description": "Naujienos iš „Mozillos“ ir „Firefox“",
   "settings_pane_button_label": "Tinkinkite savo naujos kortelės puslapį",
-  "settings_pane_header": "Naujos kortelės nuostatos",
-  "settings_pane_body2": "Pasirinkite, ką matysite šiame tinklalapyje.",
-  "settings_pane_search_header": "Paieška",
-  "settings_pane_search_body": "Ieškokite saityne tiesiai iš naujos kortelės.",
   "settings_pane_topsites_header": "Lankomiausios svetainės",
-  "settings_pane_topsites_body": "Pasiekite jūsų dažniausiai lankomas svetaines.",
-  "settings_pane_topsites_options_showmore": "Rodyti dvi eilutes",
   "settings_pane_highlights_header": "Akcentai",
-  "settings_pane_highlights_body2": "Sugrįžkite prie įdomių dalykų, kuriuose neseniai lankėtės ar įtraukėte į adresyną.",
   "settings_pane_highlights_options_bookmarks": "Adresynas",
-  "settings_pane_highlights_options_visited": "Aplankytos svetainės",
   "settings_pane_snippets_header": "Iškarpos",
-  "settings_pane_snippets_body": "Skaitykite trumpas ir mielas naujienas iš „Mozillos“ apie „Firefox“, interneto kultūrą bei atsitiktinį memą.",
-  "settings_pane_done_button": "Atlikta",
-  "settings_pane_topstories_options_sponsored": "Rodyti rėmėjų straipsnius",
   "edit_topsites_button_text": "Keisti",
   "edit_topsites_edit_button": "Redaguoti šią svetainę",
   "topsites_form_add_header": "Nauja mėgstama svetainė",
   "topsites_form_edit_header": "Redaguoti mėgstamą svetainę",
   "topsites_form_title_label": "Pavadinimas",
   "topsites_form_title_placeholder": "Įveskite pavadinimą",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Kitoks paveikslo URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Peržiūrėti",
   "topsites_form_add_button": "Pridėti",
   "topsites_form_save_button": "Įrašyti",
   "topsites_form_cancel_button": "Atsisakyti",
   "topsites_form_url_validation": "Reikalingas tinkamas URL",
   "topsites_form_image_validation": "Nepavyko įkelti paveikslo. Pabandykite kitokį URL.",
   "pocket_read_more": "Populiarios temos:",
   "pocket_read_even_more": "Rodyti daugiau straipsnių",
-  "pocket_description": "Atraskite kokybišką turinį, kurio kitaip galbūt nerastumėte, su „Pocket“, kuri yra tapusi „Mozillos“ dalimi, pagalba.",
   "highlights_empty_state": "Pradėkite naršyti, o mes čia pateiksime puikių straipsnių, vaizdo įrašų bei kitų tinklalapių, kuriuose neseniai lankėtės ar įtraukėte į adresyną.",
   "topstories_empty_state": "Viską perskaitėte. Užsukite vėliau, norėdami rasti daugiau gerų straipsnių iš „{provider}“. Nekantraujate? Pasirinkite populiarią temą, norėdami rasti daugiau puikių straipsnių saityne.",
   "manual_migration_explanation2": "Išbandykite „Firefox“ su adresynu, žurnalu bei slaptažodžiais iš kitos naršyklės.",
   "manual_migration_cancel_button": "Ačiū, ne",
   "manual_migration_import_button": "Importuoti dabar",
   "error_fallback_default_info": "Ups, įkeliant šį turinį įvyko klaida.",
   "error_fallback_default_refresh_suggestion": "Pabandykite iš naujo įkelti tinklalapį.",
   "section_menu_action_remove_section": "Pašalinti skiltį",
   "section_menu_action_collapse_section": "Suskleisti skiltį",
   "section_menu_action_expand_section": "Išplėsti skiltį",
   "section_menu_action_manage_section": "Tvarkyti skiltį",
   "section_menu_action_add_topsite": "Pridėti lankomą svetainę",
   "section_menu_action_move_up": "Pakelti",
   "section_menu_action_move_down": "Nuleisti",
-  "section_menu_action_privacy_notice": "Privatumo nuostatai"
+  "section_menu_action_privacy_notice": "Privatumo nuostatai",
+  "prefs_restore_defaults_button": "Grąžinti numatytąsias nuostatas",
+  "settings_pane_header": "Naujos kortelės nuostatos",
+  "settings_pane_body2": "Pasirinkite, ką matysite šiame tinklalapyje.",
+  "settings_pane_search_header": "Paieška",
+  "settings_pane_search_body": "Ieškokite saityne tiesiai iš naujos kortelės.",
+  "settings_pane_topsites_body": "Pasiekite jūsų dažniausiai lankomas svetaines.",
+  "settings_pane_topsites_options_showmore": "Rodyti dvi eilutes",
+  "settings_pane_highlights_body2": "Sugrįžkite prie įdomių dalykų, kuriuose neseniai lankėtės ar įtraukėte į adresyną.",
+  "settings_pane_highlights_options_visited": "Aplankytos svetainės",
+  "settings_pane_snippets_body": "Skaitykite trumpas ir mielas naujienas iš „Mozillos“ apie „Firefox“, interneto kultūrą bei atsitiktinį memą.",
+  "settings_pane_done_button": "Atlikta",
+  "settings_pane_topstories_options_sponsored": "Rodyti rėmėjų straipsnius",
+  "pocket_description": "Atraskite kokybišką turinį, kurio kitaip galbūt nerastumėte, su „Pocket“, kuri yra tapusi „Mozillos“ dalimi, pagalba."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Mekleit teiklā</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Mekleit teiklā" title="Mekleit teiklā"/><button id="searchSubmit" class="search-button" title="Mekleit"><span class="sr-only"><span>Mekleit</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Popularōkōs lopys</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Maineit lopu"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket īsaceitōs</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popularas tēmas:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Izraudzeitī</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Īstateit sovu jaunas cilnes lopu"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Mekleit",
   "search_header": "{search_engine_name} mekliešona",
   "search_web_placeholder": "Mekleit teiklā",
   "section_disclaimer_topstories": "Pošas interesantōkōs ziņas, kas atlasietas saskaņā ar tū, kū tu esi lasiejs. Nu Poket, kas ņiuļa ir Mozilla daļa.",
   "section_disclaimer_topstories_linktext": "Uzzynoj, kai tys strōdoj.",
   "section_disclaimer_topstories_buttontext": "Skaidrs",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Īstateit sovu jaunas cilnes lopu",
-  "settings_pane_header": "Jaunas cilnes īstatiejumi",
-  "settings_pane_body2": "Izaraugi, kū gribi redzēt itymā lopā.",
-  "settings_pane_search_header": "Mekleit",
-  "settings_pane_search_body": "Mekleit škārsteiklā nu jaunas cilnes.",
   "settings_pane_topsites_header": "Top lopys",
-  "settings_pane_topsites_body": "Sajam pīeju lopom, kuras apskoti vysvaira.",
-  "settings_pane_topsites_options_showmore": "Divejōs rindōs",
   "settings_pane_highlights_header": "Izraudzeitī",
-  "settings_pane_highlights_body2": "Atrūņ īspieji acagrīzt pi interesantom lopom, kuras tu apsavieri voi īlyki grōmotzeimēs.",
   "settings_pane_highlights_options_bookmarks": "Grōmotzeimes",
-  "settings_pane_highlights_options_visited": "Apsavārtys lopys",
   "settings_pane_snippets_header": "Pīzeimes",
-  "settings_pane_snippets_body": "Losi eisas un jaukas ziņas nu Mozilla par Firefox, interneta kulturu un najaušas memes.",
-  "settings_pane_done_button": "Gotovs",
-  "settings_pane_topstories_options_sponsored": "Rōdēt apmoksōtas ziņas",
   "edit_topsites_button_text": "Redigeit",
   "edit_topsites_edit_button": "Maineit lopu",
   "topsites_form_add_header": "Jauna lopa topā",
   "topsites_form_edit_header": "Maineit lopu topā",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Īvodi viersrokstu",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Pīvīnōt",
   "topsites_form_save_button": "Saglobōt",
   "topsites_form_cancel_button": "Atceļt",
   "topsites_form_url_validation": "Napīcīšams korekts URL",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popularas tēmas:",
   "pocket_read_even_more": "Vaira rokstu",
-  "pocket_description": "Atklōj sev kvalitativu , kuru tu cytaižōk palaissi garom, ar Pocket, kurais ņiuļa ir Mozilla sastōvā.",
   "highlights_empty_state": "Sōc porlyukōšonu un mes tev parōdēsim dažus breineigus rokstus, video un cytys lopys, kuras tu naseņ esi skatiejs voi davīnōjs grōmotzeimem.",
   "topstories_empty_state": "Esi vysu izlasiejs. Īej vāļōk, kab redzēt vaira ziņu nu {provider}. Nagribi gaidēt? Izavielej popularu tēmu, kab atrostu vaira interesantu rokstu nu vysa interneta.",
   "manual_migration_explanation2": "Paraugi Firefox ar grōmotzeimem, viesturi un parolem nu cyta porlyuka.",
   "manual_migration_cancel_button": "Nā, paļdis",
   "manual_migration_import_button": "Importeit",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,23 +108,35 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Privatuma pīzeime",
   "welcome_title": "Laipnai lyudzam jaunā cilnē",
   "welcome_body": "Firefox izmontōs itū vītu, kab rōdēt pīmārōtys grōmotzeimes, rokstus, lopys un video, kurys tu naseņ apsavieri, kab tu varātu vīgļi tōs apsavērt nu jauna.",
   "welcome_label": "Tovas izlases identifikaceja",
   "time_label_less_than_minute": "<1min.",
   "time_label_minute": "{number} min.",
   "time_label_hour": "{number} st.",
   "time_label_day": "{number} d.",
+  "settings_pane_header": "Jaunas cilnes īstatiejumi",
+  "settings_pane_body2": "Izaraugi, kū gribi redzēt itymā lopā.",
+  "settings_pane_search_header": "Mekleit",
+  "settings_pane_search_body": "Mekleit škārsteiklā nu jaunas cilnes.",
+  "settings_pane_topsites_body": "Sajam pīeju lopom, kuras apskoti vysvaira.",
+  "settings_pane_topsites_options_showmore": "Divejōs rindōs",
   "settings_pane_bookmarks_header": "Naseņ saglobōtōs",
   "settings_pane_bookmarks_body": "Tovas jaunōs grōmotzeimes ārtā vītā.",
   "settings_pane_visit_again_header": "Apsavērt nu jauna",
   "settings_pane_visit_again_body": "Firefox tev parōdēs porlyukōšonas viestures daļas, kuras, īspiejams, tu gribiesi apsavērt nu jauna.",
+  "settings_pane_highlights_body2": "Atrūņ īspieji acagrīzt pi interesantom lopom, kuras tu apsavieri voi īlyki grōmotzeimēs.",
+  "settings_pane_highlights_options_visited": "Apsavārtys lopys",
+  "settings_pane_snippets_body": "Losi eisas un jaukas ziņas nu Mozilla par Firefox, interneta kulturu un najaušas memes.",
+  "settings_pane_done_button": "Gotovs",
+  "settings_pane_topstories_options_sponsored": "Rōdēt apmoksōtas ziņas",
   "edit_topsites_button_label": "Īstoti sovu top lopu sadaļu",
   "edit_topsites_showmore_button": "Rōdeit vaira",
   "edit_topsites_showless_button": "Rōdēt mozōk",
   "edit_topsites_done_button": "Gotovs",
   "edit_topsites_pin_button": "Daspraust lopu",
   "edit_topsites_unpin_button": "Atbreivōt lopu",
   "edit_topsites_dismiss_button": "Paslēpt lopu",
   "edit_topsites_add_button": "Pīvīnōt",
   "edit_topsites_add_button_tooltip": "Pīvīnōt pi popularōkōm lopom",
-  "pocket_feedback_header": "Lobōkais nu interneta, kū atlasiejuši 25 miljoni ļaužu."
+  "pocket_feedback_header": "Lobōkais nu interneta, kū atlasiejuši 25 miljoni ļaužu.",
+  "pocket_description": "Atklōj sev kvalitativu , kuru tu cytaižōk palaissi garom, ar Pocket, kurais ņiuļa ir Mozilla sastōvā."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Meklēt internetā</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Meklēt internetā" title="Meklēt internetā"/><button id="searchSubmit" class="search-button" title="Meklēt"><span class="sr-only"><span>Meklēt</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Populārākās lapas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atvērt sadaļas izvēlni</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediģēt šo lapu"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Iesaka Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atvērt sadaļas izvēlni</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populārās tēmas:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Aktualitātes</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Atvērt sadaļas izvēlni</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Pielāgojiet jaunās cilnes lapu"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Meklēt",
   "search_header": "{search_engine_name} meklēšana",
   "search_web_placeholder": "Meklēt internetā",
   "section_disclaimer_topstories": "Interesantākie stāsti internetā, atkasīti balstoties uz jūsu lasīto. No Pocket, kas tagad ir daļa no Mozilla.",
   "section_disclaimer_topstories_linktext": "Apskatiet kā tas strādā.",
   "section_disclaimer_topstories_buttontext": "Labi, sapratu",
   "prefs_home_header": "Firefox sākuma saturs",
   "prefs_home_description": "Izvēlieties, ko redzēt Firefox sākuma lapā.",
-  "prefs_restore_defaults_button": "Atjaunot sākotnējos",
   "prefs_section_rows_option": "{num} rindu;{num} rinda;{num} rindas",
   "prefs_search_header": "Tīmekļa meklēšana",
   "prefs_topsites_description": "Biežāk apmeklētās lapas",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Uzzināt vairāk",
   "prefs_highlights_description": "Jūsu apmeklēto vai saglabāto lapu izlase",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla un Firefox jaunumi",
   "settings_pane_button_label": "Pielāgojiet jaunās cilnes lapu",
-  "settings_pane_header": "Jaunas cilnes iestatījumi",
-  "settings_pane_body2": "Izvēlieties, ko gribat redzēt šajā lapā.",
-  "settings_pane_search_header": "Meklēšana",
-  "settings_pane_search_body": "Meklējiet tīmeklī no jaunās cilnes lapas.",
   "settings_pane_topsites_header": "Populārākās lapas",
-  "settings_pane_topsites_body": "Ātri nokļūstiet biežāk apmeklētajās lapās.",
-  "settings_pane_topsites_options_showmore": "Rādīt divas rindas",
   "settings_pane_highlights_header": "Aktualitātes",
-  "settings_pane_highlights_body2": "Atgriezieties interesantās vietās, kuras esat nesen apmeklējis vai saglabājis grāmatzīmēs.",
   "settings_pane_highlights_options_bookmarks": "Grāmatzīmes",
-  "settings_pane_highlights_options_visited": "Apmeklētās lapas",
   "settings_pane_snippets_header": "Fragmenti",
-  "settings_pane_snippets_body": "Lasiet īsas ziņas no Mozilla par Firefox, internetu un reizēm kādu memi.",
-  "settings_pane_done_button": "Gatavs",
-  "settings_pane_topstories_options_sponsored": "Rādīt sponsoru stāstus",
   "edit_topsites_button_text": "Rediģēt",
   "edit_topsites_edit_button": "Rediģēt šo lapu",
   "topsites_form_add_header": "Jauna populārā lapa",
   "topsites_form_edit_header": "Rediģēt populārās lapas",
   "topsites_form_title_label": "Virsraksts",
   "topsites_form_title_placeholder": "Ievadiet nosaukumu",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Pielāgota attēla adrese",
@@ -81,27 +69,39 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Priekšskatījums",
   "topsites_form_add_button": "Pievienot",
   "topsites_form_save_button": "Saglabāt",
   "topsites_form_cancel_button": "Atcelt",
   "topsites_form_url_validation": "Nepieciešama derīga adrese",
   "topsites_form_image_validation": "NEizdevās ielādēt attēlu. Izmēģiniet citu adresi.",
   "pocket_read_more": "Populārās tēmas:",
   "pocket_read_even_more": "Parādīt vairāk lapas",
-  "pocket_description": "Atklājiet augstas kvalitātes saturu, kas citādi paskrietu garām. Pakalpojumu nodrošina Pocket, kas tagad ir daļa no Mozilla.",
   "highlights_empty_state": "Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas.",
   "topstories_empty_state": "Viss ir apskatīts! Atnāciet atpakaļ nedaudz vēlāk, lai redzētu populāros stāstus no {provider}. Nevarat sagaidīt? Izvēlieties kādu no tēmām jau tagad.",
   "manual_migration_explanation2": "Izmēģiniet Firefox ar grāmatzīmēm, vēsturi un parolēm no cita pārlūka.",
   "manual_migration_cancel_button": "Nē, paldies",
   "manual_migration_import_button": "Importē tagad",
   "error_fallback_default_info": "Ak vai, ielādējot saturu kaut kas nogājis greizi.",
   "error_fallback_default_refresh_suggestion": "Pārlādējiet lapu, lai mēģinātu vēlreiz.",
   "section_menu_action_remove_section": "Aizvākt sadaļu",
   "section_menu_action_collapse_section": "Sakļaut sadaļu",
   "section_menu_action_expand_section": "Izvērst sadaļu",
   "section_menu_action_manage_section": "Pārvaldīt sadaļu",
   "section_menu_action_add_topsite": "Pievienot populāru lapu",
   "section_menu_action_move_up": "Pārvietot augšup",
   "section_menu_action_move_down": "Pārvietot lejup",
   "section_menu_action_privacy_notice": "Privātuma politika",
+  "prefs_restore_defaults_button": "Atjaunot sākotnējos",
   "prefs_topstories_description": "Labas kvalitātes saturs, kas jūs varētu intereēt",
-  "prefs_topstories_show_sponsored_label": "{provider} sponsorētie stāsti"
+  "prefs_topstories_show_sponsored_label": "{provider} sponsorētie stāsti",
+  "settings_pane_header": "Jaunas cilnes iestatījumi",
+  "settings_pane_body2": "Izvēlieties, ko gribat redzēt šajā lapā.",
+  "settings_pane_search_header": "Meklēšana",
+  "settings_pane_search_body": "Meklējiet tīmeklī no jaunās cilnes lapas.",
+  "settings_pane_topsites_body": "Ātri nokļūstiet biežāk apmeklētajās lapās.",
+  "settings_pane_topsites_options_showmore": "Rādīt divas rindas",
+  "settings_pane_highlights_body2": "Atgriezieties interesantās vietās, kuras esat nesen apmeklējis vai saglabājis grāmatzīmēs.",
+  "settings_pane_highlights_options_visited": "Apmeklētās lapas",
+  "settings_pane_snippets_body": "Lasiet īsas ziņas no Mozilla par Firefox, internetu un reizēm kādu memi.",
+  "settings_pane_done_button": "Gatavs",
+  "settings_pane_topstories_options_sponsored": "Rādīt sponsoru stāstus",
+  "pocket_description": "Atklājiet augstas kvalitātes saturu, kas citādi paskrietu garām. Pakalpojumu nodrošina Pocket, kas tagad ir daļa no Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Пребарајте на Интернет</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Пребарајте на Интернет" title="Пребарајте на Интернет"/><button id="searchSubmit" class="search-button" title="Барај"><span class="sr-only"><span>Барај</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Популарни мрежни места</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди го ова место"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Препорачано од Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Популарни теми:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Интереси</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Прилагодете ја страницата на вашето Ново јазиче"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Барај",
   "search_header": "Пребарување со {search_engine_name}",
   "search_web_placeholder": "Пребарајте на Интернет",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Прилагодете ја страницата на вашето Ново јазиче",
-  "settings_pane_header": "Преференци за Ново јазиче",
-  "settings_pane_body2": "Изберете што ќе гледате на оваа страница.",
-  "settings_pane_search_header": "Пребарување",
-  "settings_pane_search_body": "Пребарајте низ Интернет од вашето ново јазиче.",
   "settings_pane_topsites_header": "Популарни мрежни места",
-  "settings_pane_topsites_body": "Пристапете до мрежните места што ги посетувате најмногу.",
-  "settings_pane_topsites_options_showmore": "Прикажи два реда",
   "settings_pane_highlights_header": "Интереси",
-  "settings_pane_highlights_body2": "Навратете се на интересни места што неодамна сте ги посетиле или обележале.",
   "settings_pane_highlights_options_bookmarks": "Обележувачи",
-  "settings_pane_highlights_options_visited": "Посетени мрежни места",
   "settings_pane_snippets_header": "Исечоци",
-  "settings_pane_snippets_body": "Прочитајте кратки и слатки новости од Mozilla во врска со Firefox, Интернет-културата и повремените случајни меми.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "Уреди",
   "edit_topsites_edit_button": "Уреди го ова место",
   "topsites_form_add_header": "Ново врвно мрежно место",
   "topsites_form_edit_header": "Уреди врвно мрежно место",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Внесете наслов",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Додај",
   "topsites_form_save_button": "Сними",
   "topsites_form_cancel_button": "Откажи",
   "topsites_form_url_validation": "Потребен е валиден URL",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Популарни теми:",
   "pocket_read_even_more": "Види повеќе написи",
-  "pocket_description": "Откријте високо-квалитетни содржини, коишто инаку би можеле да ги пропуштите, со помош на Pocket, кој сега е дел од Mozilla.",
   "highlights_empty_state": "Започнете со прелистување и ние овде ќе ви прикажеме некои од одличните написи, видеа и други страници што неодамна сте ги поселите или обележале.",
   "topstories_empty_state": "Имате видено сѐ! Навратете се подоцна за нови содржини од {provider}. Не можете да чекате? Изберете популарна тема и откријте уште одлични содржини ширум Интернет.",
   "manual_migration_explanation2": "Пробајте го Firefox со обележувачите, историјата и лозинките на друг прелистувач.",
   "manual_migration_cancel_button": "Не, благодарам",
   "manual_migration_import_button": "Увези сега",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,22 +108,33 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Белешка за приватност",
   "welcome_title": "Добредојдовте во новото јазиче",
   "welcome_body": "Firefox ќе го искористи овој простор за да Ви ги прикаже најрелевантните обележувачи, написи, видеа и страници што сте ги посетиле, за да можете лесно да им се навратите.",
   "welcome_label": "Ги откривам вашите Интереси",
   "time_label_less_than_minute": "< 1 м",
   "time_label_minute": "{number} м",
   "time_label_hour": "{number} ч",
   "time_label_day": "{number} д",
+  "settings_pane_header": "Преференци за Ново јазиче",
+  "settings_pane_body2": "Изберете што ќе гледате на оваа страница.",
+  "settings_pane_search_header": "Пребарување",
+  "settings_pane_search_body": "Пребарајте низ Интернет од вашето ново јазиче.",
+  "settings_pane_topsites_body": "Пристапете до мрежните места што ги посетувате најмногу.",
+  "settings_pane_topsites_options_showmore": "Прикажи два реда",
   "settings_pane_bookmarks_header": "Скорешни обележувачи",
   "settings_pane_bookmarks_body": "Вашите нови обележувачи во едно згодно место.",
   "settings_pane_visit_again_header": "Посети повторно",
   "settings_pane_visit_again_body": "Firefox ќе прикаже делови од вашата историја на прелистување кои можеби би сакале да ги запомните или пак да им се навратите.",
+  "settings_pane_highlights_body2": "Навратете се на интересни места што неодамна сте ги посетиле или обележале.",
+  "settings_pane_highlights_options_visited": "Посетени мрежни места",
+  "settings_pane_snippets_body": "Прочитајте кратки и слатки новости од Mozilla во врска со Firefox, Интернет-културата и повремените случајни меми.",
+  "settings_pane_done_button": "Готово",
   "edit_topsites_button_label": "Прилагодете ги вашите Популарни мрежни места",
   "edit_topsites_showmore_button": "Прикажи повеќе",
   "edit_topsites_showless_button": "Прикажи помалку",
   "edit_topsites_done_button": "Готово",
   "edit_topsites_pin_button": "Прикачи го ова мрежно место",
   "edit_topsites_unpin_button": "Откачи го ова мрежно место",
   "edit_topsites_dismiss_button": "Отфрли го ова место",
   "edit_topsites_add_button": "Додај",
-  "pocket_feedback_header": "Најдоброто од Интернет, одбрано од повеќе од 25 милиони луѓе."
+  "pocket_feedback_header": "Најдоброто од Интернет, одбрано од повеќе од 25 милиони луѓе.",
+  "pocket_description": "Откријте високо-квалитетни содржини, коишто инаку би можеле да ги пропуштите, со помош на Pocket, кој сега е дел од Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ഇൻറർനെറ്റിൽ തിരയുക</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ഇൻറർനെറ്റിൽ തിരയുക" title="ഇൻറർനെറ്റിൽ തിരയുക"/><button id="searchSubmit" class="search-button" title="തിരയുക"><span class="sr-only"><span>തിരയുക</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>മികച്ച സൈറ്റുകൾ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ഈ സൈറ്റ് തിരുത്തുക"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket ശുപാർശ ചെയ്തത്</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ജനപ്രിയ വിഷയങ്ങൾ:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ഹൈലൈറ്റുകൾ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="നിങ്ങളുടെ പുതിയ ടാബ് താള് ഇഷ്ടാനുസൃതമാക്കുക"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "തിരയുക",
   "search_header": "{search_engine_name} തിരയുക",
   "search_web_placeholder": "ഇൻറർനെറ്റിൽ തിരയുക",
   "section_disclaimer_topstories": "വെബിലെ ഏറ്റവും രസകരമായ അറിവുകൾ, നിങ്ങൾ വായിച്ചവ അടിസ്ഥാനമാക്കി തിരഞ്ഞെടുത്തത്. ഇപ്പോൾ മോസില്ലയുടെ ഭാഗമായ പോക്കറ്റിൽ നിന്നും.",
   "section_disclaimer_topstories_linktext": "എങ്ങനെ പ്രവര്‍ത്തിക്കുന്നു എന്ന് കാണുക.",
   "section_disclaimer_topstories_buttontext": "ശരി, മനസ്സിലായി",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "നിങ്ങളുടെ പുതിയ ടാബ് താള് ഇഷ്ടാനുസൃതമാക്കുക",
-  "settings_pane_header": "പുതിയ ടാബിന്റെ മുൻഗണനകൾ",
-  "settings_pane_body2": "നിങ്ങൾ ഈ താളിൽ കാണുന്നത് തിരഞ്ഞെടുക്കുക.",
-  "settings_pane_search_header": "തിരയുക",
-  "settings_pane_search_body": "പുതിയ ടാബിൽ നിന്ന് ഇന്റർനെറ്റിൽ തിരയുക.",
   "settings_pane_topsites_header": "മുന്നേറിയ സൈറ്റുകൾ",
-  "settings_pane_topsites_body": "നിങ്ങൾ കൂടുതൽ സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളിൽ പ്രവേശിക്കുക.",
-  "settings_pane_topsites_options_showmore": "രണ്ടു വരികൾ കാണിയ്ക്കുക",
   "settings_pane_highlights_header": "ഹൈലൈറ്റുകൾ",
-  "settings_pane_highlights_body2": "നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ചതോ അല്ലെങ്കിൽ ബുക്ക്മാർക്ക് ചെയ്തതോ ആയ രസകരമായ കാര്യങ്ങളിലേക്ക് വഴി കണ്ടെത്തുക.",
   "settings_pane_highlights_options_bookmarks": "ബുക്ക്മാർക്കുകൾ",
-  "settings_pane_highlights_options_visited": "സന്ദർശിച്ച സൈറ്റുകൾ",
   "settings_pane_snippets_header": "ലഘു കുറിപ്പുകൾ",
-  "settings_pane_snippets_body": "മോസില്ലയിൽ നിന്നും ഫയർഫോക്സ്, ഇന്റർനെറ്റ് സംസ്കാരം, വല്ലപ്പോഴുമുള്ള ക്രമമില്ലാത്ത മെമെ, എന്നിവയിൽ ചെറുതും മധുരവുമായ പരിഷ്കരണങ്ങൾ വായിക്കുക.",
-  "settings_pane_done_button": "തീർന്നു",
-  "settings_pane_topstories_options_sponsored": "സ്പോൺസർ ചെയ്തവ കാണിക്കുക",
   "edit_topsites_button_text": "തിരുത്തുക",
   "edit_topsites_edit_button": "ഈ സൈറ്റ് തിരുത്തുക",
   "topsites_form_add_header": "പുതിയ മികച്ച സൈറ്റുകൾ",
   "topsites_form_edit_header": "മികച്ച സൈറ്റ് ലിസ്റ്റ് തിരുത്തൂ",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "തലക്കെട്ട് നൽകൂ",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "ചേർക്കൂ",
   "topsites_form_save_button": "സംരക്ഷിയ്ക്കൂ",
   "topsites_form_cancel_button": "ഒഴിവാക്കൂ",
   "topsites_form_url_validation": "പ്രവർത്തിയ്ക്കുന്ന URL ആവശ്യമാണ്",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ജനപ്രിയ വിഷയങ്ങൾ:",
   "pocket_read_even_more": "കൂടുതൽ ലേഖനങ്ങൾ കാണുക",
-  "pocket_description": "മോസില്ലയുടെ ഭാഗമായ, പോക്കറ്റിന്റെ സഹായം കൊണ്ട്, നിങ്ങൾക്ക് കണ്ടെത്താനാവാത്ത ഉയർന്ന നിലവാരമുള്ള ഉള്ളടക്കം കണ്ടെത്തുക.",
   "highlights_empty_state": "ബ്രൗസിംഗ് ആരംഭിക്കുക, നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ചതോ ബുക്ക്മാർക്ക് ചെയ്തതോ ആയ മികച്ച ലേഖനങ്ങളിൽ നിന്നോ, വീഡിയോകളിൽ നിന്നോ, മറ്റു പേജുകളിൽ നിന്നോ ചിലത് ഞങ്ങൾ ഇവിടെ കാണിക്കും.",
   "topstories_empty_state": "നിങ്ങൾ ഇവിടെ വരെ എത്തി. {Provider}ൽ നിന്നുള്ള കൂടുതൽ പ്രധാന വാർത്തകൾക്കായി പിന്നീട് വീണ്ടും പരിശോധിക്കുക. കാത്തിരിക്കാൻ പറ്റില്ലേ? വെബിൽ നിന്ന് കൂടുതൽ മികച്ച കഥകൾ കണ്ടെത്തുന്നതിന് ഒരു ജനപ്രിയ വിഷയം തിരഞ്ഞെടുക്കുക.",
   "manual_migration_explanation2": "മറ്റൊരു ബ്രൗസറിൽ നിന്നുള്ള ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ എന്നിവ ഉപയോഗിച്ച് ഫയർഫോക്സ് പരീക്ഷിക്കുക.",
   "manual_migration_cancel_button": "വേണ്ട, നന്ദി",
   "manual_migration_import_button": "ഇപ്പോൾ ഇറക്കുമതി ചെയ്യുക",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,22 +108,34 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "സ്വകാര്യതാ അറിയിപ്പ്",
   "welcome_title": "പുതിയ ജാലകത്തിലേക്കു സ്വാഗതം",
   "welcome_body": "നിങ്ങളുടെ ഏറ്റവും ശ്രദ്ധേയമായ അടയാളങ്ങൾ, ലേഖനങ്ങൾ, വീഡിയോകൾ, കൂടാതെ നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ച താളുകൾ എന്നിവ കാണിക്കുന്നതിനായി ഫയർഫോക്സ് ഈ ഇടം ഉപയോഗിക്കും, അതിനാൽ നിങ്ങൾക്ക് എളുപ്പത്തിൽ അവയിലേക്ക് തിരിച്ചു പോകാം.",
   "welcome_label": "താങ്കളുടെ ഹൈലൈറ്റ്സ് തിരിച്ചറിയുന്നു",
   "time_label_less_than_minute": "<1 മിനിറ്റ്",
   "time_label_minute": "{number} മിനിറ്റ്",
   "time_label_hour": "{number} മിനിറ്റ്",
   "time_label_day": "{number} മിനിറ്റ്",
+  "settings_pane_header": "പുതിയ ടാബിന്റെ മുൻഗണനകൾ",
+  "settings_pane_body2": "നിങ്ങൾ ഈ താളിൽ കാണുന്നത് തിരഞ്ഞെടുക്കുക.",
+  "settings_pane_search_header": "തിരയുക",
+  "settings_pane_search_body": "പുതിയ ടാബിൽ നിന്ന് ഇന്റർനെറ്റിൽ തിരയുക.",
+  "settings_pane_topsites_body": "നിങ്ങൾ കൂടുതൽ സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളിൽ പ്രവേശിക്കുക.",
+  "settings_pane_topsites_options_showmore": "രണ്ടു വരികൾ കാണിയ്ക്കുക",
   "settings_pane_bookmarks_header": "അടുത്തിടെയുള്ള ബുക്ക്മാർക്കുകൾ",
   "settings_pane_bookmarks_body": "നിങ്ങളുടെ പുതിയതായി സൃഷ്ടിച്ച ബുക്ക്മാർക്കുകൾ ഒരു സ്ഥലത്ത്.",
   "settings_pane_visit_again_header": "വീണ്ടും സന്ദർശിക്കുക",
   "settings_pane_visit_again_body": "നിങ്ങൾ ഓർത്തുവയ്ക്കാനോ അല്ലെങ്കിൽ തിരികെ ചെല്ലാനോ ആഗ്രഹിക്കുന്ന ബ്രൌസിംഗ് ചരിത്രത്തിന്റെ ഭാഗങ്ങൾ നിങ്ങൾക്ക് ഫയർഫോക്സ് കാണിച്ച് തരും.",
+  "settings_pane_highlights_body2": "നിങ്ങൾ സമീപകാലത്ത് സന്ദർശിച്ചതോ അല്ലെങ്കിൽ ബുക്ക്മാർക്ക് ചെയ്തതോ ആയ രസകരമായ കാര്യങ്ങളിലേക്ക് വഴി കണ്ടെത്തുക.",
+  "settings_pane_highlights_options_visited": "സന്ദർശിച്ച സൈറ്റുകൾ",
+  "settings_pane_snippets_body": "മോസില്ലയിൽ നിന്നും ഫയർഫോക്സ്, ഇന്റർനെറ്റ് സംസ്കാരം, വല്ലപ്പോഴുമുള്ള ക്രമമില്ലാത്ത മെമെ, എന്നിവയിൽ ചെറുതും മധുരവുമായ പരിഷ്കരണങ്ങൾ വായിക്കുക.",
+  "settings_pane_done_button": "തീർന്നു",
+  "settings_pane_topstories_options_sponsored": "സ്പോൺസർ ചെയ്തവ കാണിക്കുക",
   "edit_topsites_button_label": "നിങ്ങളുടെ മുന്നേറിയ സൈറ്റുകളുടെ വിഭാഗം ഇഷ്ടാനുസൃതമാക്കുക",
   "edit_topsites_showmore_button": "കൂടുതൽ കാണിക്കുക",
   "edit_topsites_showless_button": "കുറച്ച് കാണിക്കുക",
   "edit_topsites_done_button": "തീർന്നു",
   "edit_topsites_pin_button": "ഈ സൈറ്റ് പിൻ ചെയ്യുക",
   "edit_topsites_unpin_button": "ഈ സൈറ്റ് അണ്‍പിന്‍ ചെയ്യുക",
   "edit_topsites_dismiss_button": "ഈ സൈറ്റ് പുറത്താക്കുക",
   "edit_topsites_add_button": "ചേര്‍ക്കുക",
-  "pocket_feedback_header": "250 ലക്ഷം പേരാൽ തെരഞ്ഞെടുക്കപ്പെട്ട വെബിലെ ഏറ്റവും മികച്ചവയാണിവ."
+  "pocket_feedback_header": "250 ലക്ഷം പേരാൽ തെരഞ്ഞെടുക്കപ്പെട്ട വെബിലെ ഏറ്റവും മികച്ചവയാണിവ.",
+  "pocket_description": "മോസില്ലയുടെ ഭാഗമായ, പോക്കറ്റിന്റെ സഹായം കൊണ്ട്, നിങ്ങൾക്ക് കണ്ടെത്താനാവാത്ത ഉയർന്ന നിലവാരമുള്ള ഉള്ളടക്കം കണ്ടെത്തുക."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>वेबवर शोधा</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="वेबवर शोधा" title="वेबवर शोधा"/><button id="searchSubmit" class="search-button" title="शोधा"><span class="sr-only"><span>शोधा</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>खास साईट्स</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ठळक</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="आपले नवीन टॅब पृष्ठ सानुकूलित करा"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "शोधा",
   "search_header": "{search_engine_name} शोध",
   "search_web_placeholder": "वेबवर शोधा",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "आपले नवीन टॅब पृष्ठ सानुकूलित करा",
-  "settings_pane_header": "नवीन टॅब प्राधान्ये",
-  "settings_pane_body2": "Choose what you see on this page.",
-  "settings_pane_search_header": "शोध",
-  "settings_pane_search_body": "आपल्या नवीन टॅब वरून वेबवर शोधा.",
   "settings_pane_topsites_header": "Top Sites",
-  "settings_pane_topsites_body": "Access the websites you visit most.",
-  "settings_pane_topsites_options_showmore": "Show two rows",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Bookmarks",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "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",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit this site",
   "topsites_form_add_header": "New Top Site",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Add",
   "topsites_form_save_button": "Save",
   "topsites_form_cancel_button": "Cancel",
   "topsites_form_url_validation": "Valid URL required",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Popular Topics:",
   "pocket_read_even_more": "View More Stories",
-  "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.",
   "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_cancel_button": "No Thanks",
   "manual_migration_import_button": "Import Now",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -112,10 +99,13 @@ window.gActivityStreamStrings = {
   "menu_action_email_link": "दुवा इमेल करा…",
   "search_for_something_with": "शोधा {search_term} सोबत:",
   "search_settings": "शोध सेटिंग बदला",
   "welcome_title": "नवीन टॅबवर स्वागत आहे",
   "time_label_less_than_minute": "<1मि",
   "time_label_minute": "{number}मि",
   "time_label_hour": "{number}ता",
   "time_label_day": "{number}दि",
-  "settings_pane_body": "नवीन टॅब उघडल्यानंतर काय दिसायला हवे ते निवडा."
+  "settings_pane_header": "नवीन टॅब प्राधान्ये",
+  "settings_pane_body": "नवीन टॅब उघडल्यानंतर काय दिसायला हवे ते निवडा.",
+  "settings_pane_search_header": "शोध",
+  "settings_pane_search_body": "आपल्या नवीन टॅब वरून वेबवर शोधा."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Cari dalam Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Cari dalam Web" title="Cari dalam Web"/><button id="searchSubmit" class="search-button" title="Cari"><span class="sr-only"><span>Cari</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Laman Teratas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buka bahagian menu konteks</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit laman ini"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Disyorkan oleh Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buka bahagian menu konteks</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Topik Popular:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Serlahan</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buka bahagian menu konteks</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Sesuaikan halaman Tab Baru anda"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Cari",
   "search_header": "{search_engine_name} Cari",
   "search_web_placeholder": "Cari dalam Web",
   "section_disclaimer_topstories": "Kisah paling menarik dalam web yang dipilih berdasarkan yang anda baca. Dari Pocket, kini sebahagian daripada Mozilla.",
   "section_disclaimer_topstories_linktext": "Ketahui fungsi ciri ini.",
   "section_disclaimer_topstories_buttontext": "Ok, faham",
   "prefs_home_header": "Kandungan Halaman Utama Firefox",
   "prefs_home_description": "Pilih kandungan yang mahu dalam skrin Halaman Utama Firefox.",
-  "prefs_restore_defaults_button": "Pulih Piawai",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Carian Web",
   "prefs_topsites_description": "Laman yang anda kerap lawati",
   "prefs_topstories_description2": "Kandungan hebat dalam seluruh web, khas untuk anda",
   "prefs_topstories_options_sponsored_label": "Kisah Tajaan",
   "prefs_topstories_sponsored_learn_more": "Ketahui selanjutnya",
   "prefs_highlights_description": "Pilihan laman yang anda sudah simpan atau lawati",
   "prefs_highlights_options_visited_label": "Halaman Dilawati",
   "prefs_highlights_options_download_label": "Muat Turun Terbaru",
   "prefs_highlights_options_pocket_label": "Halaman Disimpan ke Pocket",
   "prefs_snippets_description": "Kemas kini daripada Mozilla dan Firefox",
   "settings_pane_button_label": "Sesuaikan halaman Tab Baru anda",
-  "settings_pane_header": "Keutamaan Tab Baru",
-  "settings_pane_body2": "Pilih apa yang mahu anda paparkan dalam halaman ini.",
-  "settings_pane_search_header": "Cari",
-  "settings_pane_search_body": "Carian Web dari tab baru anda.",
   "settings_pane_topsites_header": "Laman Teratas",
-  "settings_pane_topsites_body": "Akses laman web yang paling banyak dilawati.",
-  "settings_pane_topsites_options_showmore": "Papar dua baris",
   "settings_pane_highlights_header": "Serlahan",
-  "settings_pane_highlights_body2": "Dapatkan semula perkara menarik yang sudah dilayari atau ditandabuku.",
   "settings_pane_highlights_options_bookmarks": "Tandabuku",
-  "settings_pane_highlights_options_visited": "Laman Dilawati",
   "settings_pane_snippets_header": "Cebisan",
-  "settings_pane_snippets_body": "Baca ringkasan berita terbaru daripada Mozilla berkaitan Firefox, budaya internet dan ikutan rambang semasa.",
-  "settings_pane_done_button": "Siap",
-  "settings_pane_topstories_options_sponsored": "Papar Kisah Tajaan",
   "edit_topsites_button_text": "Edit",
   "edit_topsites_edit_button": "Edit laman ini",
   "topsites_form_add_header": "Laman Teratas Baru",
   "topsites_form_edit_header": "Edit Laman Teratas",
   "topsites_form_title_label": "Tajuk",
   "topsites_form_title_placeholder": "Masukkan tajuk",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL Imej Penyesuaian",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Previu",
   "topsites_form_add_button": "Tambah",
   "topsites_form_save_button": "Simpan",
   "topsites_form_cancel_button": "Batal",
   "topsites_form_url_validation": "Perlukan URL yang sah",
   "topsites_form_image_validation": "Imej gagal dimuatkan. Cuba URL lain.",
   "pocket_read_more": "Topik Popular:",
   "pocket_read_even_more": "Papar Kisah Selanjutnya",
-  "pocket_description": "Teroka kandungan berkualiti tinggi yang mungkin ada tertinggal, menggunakan bantuan Pocket, yang menjadi sebahagian daripada Mozilla.",
   "highlights_empty_state": "Mulakan melayar dan kami akan paparkan beberapa artikel, video dan halaman menarik lain yang sudah anda layari dan tandabuku di sini.",
   "topstories_empty_state": "Anda sudah di sini. Tapi sila datang lagi untuk mendapatkan lebih banyak berita hangat daripada {provider}. Tidak boleh tunggu? Pilih topik untuk mendapatkannya dari serata dunia.",
   "manual_migration_explanation2": "Cuba Firefox dengan tandabuku, sejarah dan kata laluan yang disimpan dalam pelayar lain.",
   "manual_migration_cancel_button": "Tidak, Terima kasih",
   "manual_migration_import_button": "Import Sekarang",
   "error_fallback_default_info": "Ooops, ada kesilapan memuatkan kandungan ini.",
   "error_fallback_default_refresh_suggestion": "Muat semula halaman untuk cuba lagi.",
   "section_menu_action_remove_section": "Buang Seksyen",
   "section_menu_action_collapse_section": "Runtuhkan Seksyen",
   "section_menu_action_expand_section": "Kembangkan Seksyen",
   "section_menu_action_manage_section": "Urus Seksyen",
   "section_menu_action_add_topsite": "Tambah Laman Teratas",
   "section_menu_action_move_up": "Pindah Atas",
   "section_menu_action_move_down": "Pindah Bawah",
-  "section_menu_action_privacy_notice": "Notis Privasi"
+  "section_menu_action_privacy_notice": "Notis Privasi",
+  "prefs_restore_defaults_button": "Pulih Piawai",
+  "settings_pane_header": "Keutamaan Tab Baru",
+  "settings_pane_body2": "Pilih apa yang mahu anda paparkan dalam halaman ini.",
+  "settings_pane_search_header": "Cari",
+  "settings_pane_search_body": "Carian Web dari tab baru anda.",
+  "settings_pane_topsites_body": "Akses laman web yang paling banyak dilawati.",
+  "settings_pane_topsites_options_showmore": "Papar dua baris",
+  "settings_pane_highlights_body2": "Dapatkan semula perkara menarik yang sudah dilayari atau ditandabuku.",
+  "settings_pane_highlights_options_visited": "Laman Dilawati",
+  "settings_pane_snippets_body": "Baca ringkasan berita terbaru daripada Mozilla berkaitan Firefox, budaya internet dan ikutan rambang semasa.",
+  "settings_pane_done_button": "Siap",
+  "settings_pane_topstories_options_sponsored": "Papar Kisah Tajaan",
+  "pocket_description": "Teroka kandungan berkualiti tinggi yang mungkin ada tertinggal, menggunakan bantuan Pocket, yang menjadi sebahagian daripada Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ဝတ်ဘ်ပေါ်တွင် ရှာဖွေခြင်း</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ဝတ်ဘ်ပေါ်တွင် ရှာဖွေခြင်း" title="ဝတ်ဘ်ပေါ်တွင် ရှာဖွေခြင်း"/><button id="searchSubmit" class="search-button" title="ရှာ"><span class="sr-only"><span>ရှာ</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>အများဆုံးသုံးဆိုက်များ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ဆိုက်အားပြင်မည်"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket က အကြံပြုထားသည်</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>လူကြိုက်များခေါင်းစဉ်များ</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ဦးစားပေးအကြောင်းအရာများ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="သင့်တပ်ဗ်အသစ်စာမျက်နှာအား ပြင်ဆင်မည်"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ရှာ",
   "search_header": "{search_engine_name} ရှာဖွေမှု",
   "search_web_placeholder": "ဝတ်ဘ်ပေါ်တွင် ရှာဖွေခြင်း",
   "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",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "သင့်တပ်ဗ်အသစ်စာမျက်နှာအား ပြင်ဆင်မည်",
-  "settings_pane_header": "စာတပ်ဗ်အသစ်အပြင်အဆင်များ",
-  "settings_pane_body2": "ယခုစာမျက်နှာတွင် ကြည့်လိုသည်များကို ရွေးပါ။",
-  "settings_pane_search_header": "ရှာဖွေပါ",
-  "settings_pane_search_body": "ဝက်ဘ်ပေါ်တွင် သင့်တပ်ဗ်အသစ်မှရှာဖွေပါ",
   "settings_pane_topsites_header": "ထိပ်တန်းဝတ်ဘ်ဆိုက်များ",
-  "settings_pane_topsites_body": "သင်အများဆုံးသွားလည်သော ဝတ်ဘ်ဆိုက်များကို ရယူပါ",
-  "settings_pane_topsites_options_showmore": "အတန်းနှစ်တန်းနှင့်ပြပါ",
   "settings_pane_highlights_header": "ဦးစားပေးအကြောင်းအရာများ",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "စာမှတ်များ",
-  "settings_pane_highlights_options_visited": "လည်ပတ်ထားသော ဆိုက်များ",
   "settings_pane_snippets_header": "မှတ်စုတိုများ",
-  "settings_pane_snippets_body": "Mozilla မှ Firefox အကြောင်း၊ အင်တာနက်ယဉ်ကျေးမှုနှင့် အခါအားလျော်စွာ ဖြစ်ပေါ်လာသော ကျပန်း meme စသည့် နောက်ဆုံးရသတင်းများကို ဖတ်ရှုပါ။",
-  "settings_pane_done_button": "ပြီးပြီ",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "ပြင်ဆင်မည်",
   "edit_topsites_edit_button": "ဆိုက်အားပြင်မည်",
   "topsites_form_add_header": "ထိပ်တန်းဆိုက် အသစ်",
   "topsites_form_edit_header": "ထိပ်တန်းဆိုက်ကို တည်းဖြတ်ရန်",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "ခေါင်းစဉ် ရေးပါ",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "ထည့်ရန်",
   "topsites_form_save_button": "သိမ်းရန်",
   "topsites_form_cancel_button": "မလုပ်တော့ပါ",
   "topsites_form_url_validation": "URL အမှန် လိုအပ်သည်",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "လူကြိုက်များခေါင်းစဉ်များ",
   "pocket_read_even_more": "နောက်ထပ်သတင်းများ ကြည့်ရန်",
-  "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.",
   "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": "အခြားဘရောင်ဇာမှ စာမှတ်များ၊ မှတ်တမ်းများ၊ စကားဝှက်များနှင့်အတူ Firefox တွင် စမ်းသုံးကြည့်ပါ။",
   "manual_migration_cancel_button": "မလိုတော့ပါ၊ ကျေးဇူးတင်ပါသည်။",
   "manual_migration_import_button": "ထည့်သွင်းရန်",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,20 +108,29 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "ကိုယ်ရေးကာကွယ်မှု သတိပေးချက်",
   "welcome_title": "တပ်ဗ်အသစ်တစ်ခုမှကြိုဆိုပါတယ်",
   "welcome_body": "ယခုနေရာအား Firefox မှ အသင့်လျော်ဆုံး သင်သွားလည်ခဲ့ဖူးသော စာအမှတ်များ၊ ဆောင်းပါးများ၊ ရုပ်ရှင်များ နှင့် စာမျက်နှာများအား ပြသဖို့အသုံးပြုမည်ဖြစ်ပါတယ်။",
   "welcome_label": "သင့် အသားပေးဖော်ပြချက်များကိုသတိထားမည်",
   "time_label_less_than_minute": "<1မီတာ",
   "time_label_minute": "{number}မီတာ",
   "time_label_hour": "{number}အမြင့်",
   "time_label_day": "{number}နေ့",
+  "settings_pane_header": "စာတပ်ဗ်အသစ်အပြင်အဆင်များ",
+  "settings_pane_body2": "ယခုစာမျက်နှာတွင် ကြည့်လိုသည်များကို ရွေးပါ။",
+  "settings_pane_search_header": "ရှာဖွေပါ",
+  "settings_pane_search_body": "ဝက်ဘ်ပေါ်တွင် သင့်တပ်ဗ်အသစ်မှရှာဖွေပါ",
+  "settings_pane_topsites_body": "သင်အများဆုံးသွားလည်သော ဝတ်ဘ်ဆိုက်များကို ရယူပါ",
+  "settings_pane_topsites_options_showmore": "အတန်းနှစ်တန်းနှင့်ပြပါ",
   "settings_pane_bookmarks_header": "လတ်တလော စာမှတ်များ",
   "settings_pane_bookmarks_body": "အသစ်မှတ်သားထားသော စာမှတ်များကို တစ်နေရာတည်းတွင် စုစည်းထားသည်။",
   "settings_pane_visit_again_header": "ထပ်မံလည်ပတ်ရန်",
   "settings_pane_visit_again_body": "မှတ်ထားလိုသော သို့မဟုတ် ပြန်ဖွင့်လိုသော လည်ပတ်မှတ်တမ်းထဲမှ တချို့ကို Firefox က ပြပါမည်။",
+  "settings_pane_highlights_options_visited": "လည်ပတ်ထားသော ဆိုက်များ",
+  "settings_pane_snippets_body": "Mozilla မှ Firefox အကြောင်း၊ အင်တာနက်ယဉ်ကျေးမှုနှင့် အခါအားလျော်စွာ ဖြစ်ပေါ်လာသော ကျပန်း meme စသည့် နောက်ဆုံးရသတင်းများကို ဖတ်ရှုပါ။",
+  "settings_pane_done_button": "ပြီးပြီ",
   "edit_topsites_button_label": "သင့်ထိပ်တန်းဆိုက် အမြင်အားပြင်ဆင်ပါ",
   "edit_topsites_showmore_button": "ထပ်ပြပါ",
   "edit_topsites_showless_button": "ချုံ့ပြရန်",
   "edit_topsites_done_button": "ပြီးပြီ",
   "edit_topsites_pin_button": "ဝတ်ဆိုဒ်အားpinလုပ်ထားမည်",
   "edit_topsites_unpin_button": "ယခုဆိုက်ကို တွယ်ဖြုတ်ရန်",
   "edit_topsites_dismiss_button": "ဆိုက်အားဖျက်လိုက်မည်",
   "edit_topsites_add_button": "ထည့်ရန်"
--- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Søk på nettet</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Søk på nettet" title="Søk på nettet"/><button id="searchSubmit" class="search-button" title="Søk"><span class="sr-only"><span>Søk</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Mest besøkte nettsider</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åpne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsiden"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Anbefalt av Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åpne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populære emner:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Høydepunkter</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Åpne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tilpass siden for Ny fane"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Søk",
   "search_header": "{search_engine_name}-søk",
   "search_web_placeholder": "Søk på nettet",
   "section_disclaimer_topstories": "De mest interessante nyhetene på nettet, utvalgt basert på hva du leser. Fra Pocket, nå en del av Mozilla.",
   "section_disclaimer_topstories_linktext": "Se hvordan det fungerer.",
   "section_disclaimer_topstories_buttontext": "OK, jeg forstår det",
   "prefs_home_header": "Innhold Firefox-startside",
   "prefs_home_description": "Velg hvilket innhold som du vil ha på din Firefox-startside.",
-  "prefs_restore_defaults_button": "Gjenopprett standard",
   "prefs_section_rows_option": "{num} rekke;{num} rekker",
   "prefs_search_header": "Nettsøk",
   "prefs_topsites_description": "Mest besøkte nettsteder",
   "prefs_topstories_description2": "Bra innhold fra hele nettet, tilpasset for deg",
   "prefs_topstories_options_sponsored_label": "Sponsede historier",
   "prefs_topstories_sponsored_learn_more": "Les mer",
   "prefs_highlights_description": "Et utvalg av nettsteder som du har lagret eller besøkt",
   "prefs_highlights_options_visited_label": "Besøkte nettsider",
   "prefs_highlights_options_download_label": "Siste nedlasting",
   "prefs_highlights_options_pocket_label": "Side lagret til Pocket",
   "prefs_snippets_description": "Nyheter fra Mozilla og Firefox",
   "settings_pane_button_label": "Tilpass siden for Ny fane",
-  "settings_pane_header": "Innstillinger for Ny fane",
-  "settings_pane_body2": "Velg hva du ser på denne siden.",
-  "settings_pane_search_header": "Søk",
-  "settings_pane_search_body": "Søk på nettet fra din nye fane.",
   "settings_pane_topsites_header": "Mest besøkte",
-  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
-  "settings_pane_topsites_options_showmore": "Vis to rader",
   "settings_pane_highlights_header": "Høydepunkter",
-  "settings_pane_highlights_body2": "Finn veien tilbake til interessante ting du nylig har besøkt eller bokmerket.",
   "settings_pane_highlights_options_bookmarks": "Bokmerker",
-  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
   "settings_pane_snippets_header": "Snutter",
-  "settings_pane_snippets_body": "Les korte nyheter fra Mozilla om Firefox, internettkultur og fra tid til annen en tilfeldig meme.",
-  "settings_pane_done_button": "Ferdig",
-  "settings_pane_topstories_options_sponsored": "Vis sponsede historier",
   "edit_topsites_button_text": "Rediger",
   "edit_topsites_edit_button": "Rediger denne nettsiden",
   "topsites_form_add_header": "Nytt toppsted",
   "topsites_form_edit_header": "Rediger toppsted",
   "topsites_form_title_label": "Tittel",
   "topsites_form_title_placeholder": "Oppgi en tittel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Egendefinert bilde-URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Forhåndsvis",
   "topsites_form_add_button": "Legg til",
   "topsites_form_save_button": "Lagre",
   "topsites_form_cancel_button": "Avbryt",
   "topsites_form_url_validation": "Gyldig URL er nødvendig",
   "topsites_form_image_validation": "Kunne ikke lese inn bildet. Prøv en annen URL.",
   "pocket_read_more": "Populære emner:",
   "pocket_read_even_more": "Vis flere saker",
-  "pocket_description": "Oppdag høykvalitetsinnhold som du ellers ville gå glipp av, ved hjelp av Pocket, som nå er en del av Mozilla.",
   "highlights_empty_state": "Begynn å surfe, og vi viser noen av de beste artiklene, videoer og andre sider du nylig har besøkt eller bokmerket her.",
   "topstories_empty_state": "Du har tatt igjen. Kom tilbake senere for flere topphistorier fra {provider}. Kan du ikke vente? Velg et populært emne for å finne flere gode artikler fra hele Internett.",
   "manual_migration_explanation2": "Prøv Firefox med bokmerkene, historikk og passord fra en annen nettleser.",
   "manual_migration_cancel_button": "Nei takk",
   "manual_migration_import_button": "Importer nå",
   "error_fallback_default_info": "Ups, noe gikk galt når innholdet skulle lastes inn.",
   "error_fallback_default_refresh_suggestion": "Oppdater siden for å prøve igjen.",
   "section_menu_action_remove_section": "Fjern seksjon",
   "section_menu_action_collapse_section": "Slå sammen seksjon",
   "section_menu_action_expand_section": "Utvid seksjon",
   "section_menu_action_manage_section": "Håndter seksjon",
   "section_menu_action_add_topsite": "Legg til toppsted",
   "section_menu_action_move_up": "Flytt opp",
   "section_menu_action_move_down": "Flytt ned",
-  "section_menu_action_privacy_notice": "Personvernbestemmelser"
+  "section_menu_action_privacy_notice": "Personvernbestemmelser",
+  "prefs_restore_defaults_button": "Gjenopprett standard",
+  "settings_pane_header": "Innstillinger for Ny fane",
+  "settings_pane_body2": "Velg hva du ser på denne siden.",
+  "settings_pane_search_header": "Søk",
+  "settings_pane_search_body": "Søk på nettet fra din nye fane.",
+  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
+  "settings_pane_topsites_options_showmore": "Vis to rader",
+  "settings_pane_highlights_body2": "Finn veien tilbake til interessante ting du nylig har besøkt eller bokmerket.",
+  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
+  "settings_pane_snippets_body": "Les korte nyheter fra Mozilla om Firefox, internettkultur og fra tid til annen en tilfeldig meme.",
+  "settings_pane_done_button": "Ferdig",
+  "settings_pane_topstories_options_sponsored": "Vis sponsede historier",
+  "pocket_description": "Oppdag høykvalitetsinnhold som du ellers ville gå glipp av, ved hjelp av Pocket, som nå er en del av Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>वेबमा खोज्नुहोस्</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="वेबमा खोज्नुहोस्" title="वेबमा खोज्नुहोस्"/><button id="searchSubmit" class="search-button" title="खोजी गर्नुहोस्"><span class="sr-only"><span>खोजी गर्नुहोस्</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>शीर्ष साइटहरु</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="यस साइटलाई सम्पादन गर्नुहोस्"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket द्वारा सिफारिस गरिएको</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>लोकप्रिय शीर्षकहरू:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>विशेषताहरू</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="तपाईंको नयाँ ट्याब पृष्ठ अनुकूलन गर्नुहोस्"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "खोजी गर्नुहोस्",
   "search_header": "{search_engine_name} खोजी",
   "search_web_placeholder": "वेबमा खोज्नुहोस्",
   "section_disclaimer_topstories": "वेबमा सबैभन्दा रोचक कथाहरू, तपाईंले पढ्नु भएको आधारमा Pocket बाट चयन गर्नुभएको छ।",
   "section_disclaimer_topstories_linktext": "कसरी काम गर्छ हेर्नुहोस्।",
   "section_disclaimer_topstories_buttontext": "बुझेँ",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "तपाईंको नयाँ ट्याब पृष्ठ अनुकूलन गर्नुहोस्",
-  "settings_pane_header": "नयाँ ट्याब प्राथमिकताहरू",
-  "settings_pane_body2": "तपाईँले यो पृष्ठमा के देख्नुभयो छनौट गर्नुहोस् ।",
-  "settings_pane_search_header": "खोजी गर्नुहोस्",
-  "settings_pane_search_body": "तपाईंको नयाँ ट्याबबाट वेबमा खोज्नुहोस् ।",
   "settings_pane_topsites_header": "शीर्ष साइटहरू",
-  "settings_pane_topsites_body": "तपाईले धेरै भ्रमण गर्नुभएका वेबसाइटहरूमा पहुँच गर्नुहोस् ।",
-  "settings_pane_topsites_options_showmore": "दुई पङ्क्तिहरू देखाउनुहोस्",
   "settings_pane_highlights_header": "विशेषताहरू",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "पुस्तकचिनोहरू",
-  "settings_pane_highlights_options_visited": "भ्रमण गरिएका साईटहरु",
   "settings_pane_snippets_header": "स्निप्पेटस्",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "सम्पन्न भयो",
-  "settings_pane_topstories_options_sponsored": "प्रायोजित गरिएको कथाहरू देखाउनुहोस्",
   "edit_topsites_button_text": "सम्पादन गर्नुहोस्",
   "edit_topsites_edit_button": "यस साइटलाई सम्पादन गर्नुहोस्",
   "topsites_form_add_header": "नयाँ शीर्ष साइट",
   "topsites_form_edit_header": "शीर्ष साइट सम्पादन गर्नुहोस्",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "शीर्षक प्रविष्ट गर्नुहोस्",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "थप्नुहोस्",
   "topsites_form_save_button": "सङ्ग्रह गर्नुहोस्",
   "topsites_form_cancel_button": "रद्द गर्नुहोस्",
   "topsites_form_url_validation": "मान्य URL चाहिन्छ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "लोकप्रिय शीर्षकहरू:",
   "pocket_read_even_more": "अरू कथा देखाउनुहोस्",
-  "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.",
   "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_cancel_button": "पर्दैन, धन्यबाद",
   "manual_migration_import_button": "अहिले आयात गर्नुहोस्",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,19 +108,28 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "गोपनीयता नीति",
   "welcome_title": "नयाँ ट्याबमा स्वागत छ",
   "welcome_body": "Firefoxले यस ठाउँको प्रयोग तपाईंको सबैभन्दा सान्दर्भिक पुस्तकचिनो, लेखहरू, भिडियोहरू, र तपाईंले हालै भ्रमण गर्नु भएको पृष्ठहरूलाई राख्न प्रयोग गर्दछ, जसले गर्दा तपाइँ तिनीहरूलाई सजिलै भेटाउन सक्नुहुनेछ ।",
   "welcome_label": "तपाईँका विशेषताहरु पत्ता लगाउँदै",
   "time_label_less_than_minute": "< १ मिनेट",
   "time_label_minute": "{number} मिनेट",
   "time_label_hour": "{number} घण्टा",
   "time_label_day": "{number} दिन",
+  "settings_pane_header": "नयाँ ट्याब प्राथमिकताहरू",
+  "settings_pane_body2": "तपाईँले यो पृष्ठमा के देख्नुभयो छनौट गर्नुहोस् ।",
+  "settings_pane_search_header": "खोजी गर्नुहोस्",
+  "settings_pane_search_body": "तपाईंको नयाँ ट्याबबाट वेबमा खोज्नुहोस् ।",
+  "settings_pane_topsites_body": "तपाईले धेरै भ्रमण गर्नुभएका वेबसाइटहरूमा पहुँच गर्नुहोस् ।",
+  "settings_pane_topsites_options_showmore": "दुई पङ्क्तिहरू देखाउनुहोस्",
   "settings_pane_bookmarks_header": "भर्खरैका पुस्तकचिनोहरु",
   "settings_pane_bookmarks_body": "तपाईंको नयाँ सिर्जना गरिएको पुस्तकचिनोहरुहरू एउटा सजिलो स्थानमा ।",
   "settings_pane_visit_again_header": "फेरि भ्रमण गर्नुहोस्",
+  "settings_pane_highlights_options_visited": "भ्रमण गरिएका साईटहरु",
+  "settings_pane_done_button": "सम्पन्न भयो",
+  "settings_pane_topstories_options_sponsored": "प्रायोजित गरिएको कथाहरू देखाउनुहोस्",
   "edit_topsites_button_label": "तपाईंको शीर्ष साइट खण्ड अनुकूलन गर्नुहोस्",
   "edit_topsites_showmore_button": "थप देखाउनुहोस्",
   "edit_topsites_showless_button": "थोरै देखाउनुहोस्",
   "edit_topsites_done_button": "सम्पन्न भयो",
   "edit_topsites_pin_button": "यस साइटलाई पिन गर्नुहोस्",
   "edit_topsites_unpin_button": "यस साइटलाई अनपिन गर्नुहोस्",
   "edit_topsites_dismiss_button": "यस साइटलाई खारेज गर्नुहोस्",
   "edit_topsites_add_button": "थप्नुहोस्",
--- a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Zoeken op het web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Zoeken op het web" title="Zoeken op het web"/><button id="searchSubmit" class="search-button" title="Zoeken"><span class="sr-only"><span>Zoeken</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Topwebsites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Contextmenu van sectie openen</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Deze website bewerken"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Aanbevolen door Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Contextmenu van sectie openen</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populaire onderwerpen:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Contextmenu van sectie openen</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Uw Nieuw-tabbladpagina aanpassen"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Zoeken",
   "search_header": "{search_engine_name} doorzoeken",
   "search_web_placeholder": "Zoeken op het web",
   "section_disclaimer_topstories": "De meest interessante verhalen op het web, geselecteerd op basis van wat u hebt gelezen. Van Pocket, nu onderdeel van Mozilla.",
   "section_disclaimer_topstories_linktext": "Lees hoe het werkt.",
   "section_disclaimer_topstories_buttontext": "Oké, begrepen",
   "prefs_home_header": "Inhoud van Firefox-startpagina",
   "prefs_home_description": "Kies welke inhoud u op uw Firefox-startscherm wilt laten weergeven.",
-  "prefs_restore_defaults_button": "Standaardwaarden herstellen",
   "prefs_section_rows_option": "{num} rij;{num} rijen",
   "prefs_search_header": "Zoeken op het web",
   "prefs_topsites_description": "De websites die u het vaakst bezoekt",
   "prefs_topstories_description2": "Geweldige inhoud van het web, gepersonaliseerd voor u",
   "prefs_topstories_options_sponsored_label": "Gesponsorde verhalen",
   "prefs_topstories_sponsored_learn_more": "Meer info",
   "prefs_highlights_description": "Een selectie van websites die u hebt opgeslagen of bezocht",
   "prefs_highlights_options_visited_label": "Bezochte pagina’s",
   "prefs_highlights_options_download_label": "Meest recent gedownload",
   "prefs_highlights_options_pocket_label": "Naar Pocket opgeslagen pagina’s",
   "prefs_snippets_description": "Updates van Mozilla en Firefox",
   "settings_pane_button_label": "Uw Nieuw-tabbladpagina aanpassen",
-  "settings_pane_header": "Nieuw-tabbladvoorkeuren",
-  "settings_pane_body2": "Kies wat u op deze pagina ziet.",
-  "settings_pane_search_header": "Zoeken",
-  "settings_pane_search_body": "Het web doorzoeken vanaf uw nieuwe tabblad.",
   "settings_pane_topsites_header": "Topwebsites",
-  "settings_pane_topsites_body": "De websites benaderen die u het vaakst bezoekt.",
-  "settings_pane_topsites_options_showmore": "Twee rijen tonen",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Vind uw weg terug naar interessante dingen die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.",
   "settings_pane_highlights_options_bookmarks": "Bladwijzers",
-  "settings_pane_highlights_options_visited": "Bezochte websites",
   "settings_pane_snippets_header": "Snippets",
-  "settings_pane_snippets_body": "Lees korte updates van Mozilla over Firefox, internetcultuur, en af en toe een willekeurige meme.",
-  "settings_pane_done_button": "Gereed",
-  "settings_pane_topstories_options_sponsored": "Gesponsorde verhalen tonen",
   "edit_topsites_button_text": "Bewerken",
   "edit_topsites_edit_button": "Deze website bewerken",
   "topsites_form_add_header": "Nieuwe topwebsite",
   "topsites_form_edit_header": "Topwebsite bewerken",
   "topsites_form_title_label": "Titel",
   "topsites_form_title_placeholder": "Voer een titel in",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL van aangepaste afbeelding",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Voorbeeld",
   "topsites_form_add_button": "Toevoegen",
   "topsites_form_save_button": "Opslaan",
   "topsites_form_cancel_button": "Annuleren",
   "topsites_form_url_validation": "Geldige URL vereist",
   "topsites_form_image_validation": "Afbeelding kon niet worden geladen. Probeer een andere URL.",
   "pocket_read_more": "Populaire onderwerpen:",
   "pocket_read_even_more": "Meer verhalen bekijken",
-  "pocket_description": "Ontdek inhoud van hoge kwaliteit die u anders zou missen met behulp van Pocket, nu onderdeel van Mozilla.",
   "highlights_empty_state": "Begin met surfen, en we tonen hier een aantal geweldige artikelen, video’s en andere pagina’s die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.",
   "topstories_empty_state": "U bent weer bij. Kijk later nog eens voor meer topverhalen van {provider}. Kunt u niet wachten? Selecteer een populair onderwerp voor meer geweldige verhalen van het hele web.",
   "manual_migration_explanation2": "Probeer Firefox met de bladwijzers, geschiedenis en wachtwoorden van een andere browser.",
   "manual_migration_cancel_button": "Nee bedankt",
   "manual_migration_import_button": "Nu importeren",
   "error_fallback_default_info": "Oeps, er is iets misgegaan bij het laden van deze inhoud.",
   "error_fallback_default_refresh_suggestion": "Vernieuw de pagina om het opnieuw te proberen.",
   "section_menu_action_remove_section": "Sectie verwijderen",
   "section_menu_action_collapse_section": "Sectie samenvouwen",
   "section_menu_action_expand_section": "Sectie uitvouwen",
   "section_menu_action_manage_section": "Sectie beheren",
   "section_menu_action_add_topsite": "Topwebsite toevoegen",
   "section_menu_action_move_up": "Omhoog verplaatsen",
   "section_menu_action_move_down": "Omlaag verplaatsen",
-  "section_menu_action_privacy_notice": "Privacyverklaring"
+  "section_menu_action_privacy_notice": "Privacyverklaring",
+  "prefs_restore_defaults_button": "Standaardwaarden herstellen",
+  "settings_pane_header": "Nieuw-tabbladvoorkeuren",
+  "settings_pane_body2": "Kies wat u op deze pagina ziet.",
+  "settings_pane_search_header": "Zoeken",
+  "settings_pane_search_body": "Het web doorzoeken vanaf uw nieuwe tabblad.",
+  "settings_pane_topsites_body": "De websites benaderen die u het vaakst bezoekt.",
+  "settings_pane_topsites_options_showmore": "Twee rijen tonen",
+  "settings_pane_highlights_body2": "Vind uw weg terug naar interessante dingen die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.",
+  "settings_pane_highlights_options_visited": "Bezochte websites",
+  "settings_pane_snippets_body": "Lees korte updates van Mozilla over Firefox, internetcultuur, en af en toe een willekeurige meme.",
+  "settings_pane_done_button": "Gereed",
+  "settings_pane_topstories_options_sponsored": "Gesponsorde verhalen tonen",
+  "pocket_description": "Ontdek inhoud van hoge kwaliteit die u anders zou missen met behulp van Pocket, nu onderdeel van Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Søk på nettet</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Søk på nettet" title="Søk på nettet"/><button id="searchSubmit" class="search-button" title="Søk"><span class="sr-only"><span>Søk</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Mest besøkte nettsider</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Opne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Rediger denne nettsida"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Tilrådd av Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Opne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populære emne:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Høgdepunkt</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Opne seksjonens kontekstmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tilpass sida for Ny fane"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Søk",
   "search_header": "{search_engine_name}",
   "search_web_placeholder": "Søk på nettet",
   "section_disclaimer_topstories": "Dei mest interessante historiane på nettet, utvalde basert på kva du les. Frå Pocket, no ein del av Mozilla.",
   "section_disclaimer_topstories_linktext": "Sjå korleis det fungerer.",
   "section_disclaimer_topstories_buttontext": "OK, eg forstår det!",
   "prefs_home_header": "Innhald Firefox-startside",
   "prefs_home_description": "Vel kva for innhald du vil ha på Firefox-startsida di.",
-  "prefs_restore_defaults_button": "Gjenopprett standard",
   "prefs_section_rows_option": "{num} rekke;{num} rekkjer",
   "prefs_search_header": "Nettsøk",
   "prefs_topsites_description": "Sidene du besøker mest",
   "prefs_topstories_description2": "Bra innhald frå heile nettet, tilpassa for deg",
   "prefs_topstories_options_sponsored_label": "Sponsa historiar",
   "prefs_topstories_sponsored_learn_more": "Les meir",
   "prefs_highlights_description": "Eit utval av nettsider som du har lagra eller besøkt",
   "prefs_highlights_options_visited_label": "Besøkte sider",
   "prefs_highlights_options_download_label": "Siste nedlasting",
   "prefs_highlights_options_pocket_label": "Sider lagra til Pocket",
   "prefs_snippets_description": "Oppdateringar frå Mozilla og Firefox",
   "settings_pane_button_label": "Tilpass sida for Ny fane",
-  "settings_pane_header": "Innstillingar for Ny fane",
-  "settings_pane_body2": "Vel kva du vil sjå på denne sida.",
-  "settings_pane_search_header": "Søk",
-  "settings_pane_search_body": "Søk på nettet frå den nye fana di.",
   "settings_pane_topsites_header": "Mest besøkte",
-  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
-  "settings_pane_topsites_options_showmore": "Vis to rader",
   "settings_pane_highlights_header": "Høgdepunkt",
-  "settings_pane_highlights_body2": "Finn vegen tilbake til interessante ting du nyleg har besøkt eller bokmerka.",
   "settings_pane_highlights_options_bookmarks": "Bokmerke",
-  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
   "settings_pane_snippets_header": "Snuttar",
-  "settings_pane_snippets_body": "Les korte nyheiter frå Mozilla om Firefox, internettkultur og frå tid til annan ein tilfeldig meme.",
-  "settings_pane_done_button": "Ferdig",
-  "settings_pane_topstories_options_sponsored": "Vis sponsa historiar",
   "edit_topsites_button_text": "Rediger",
   "edit_topsites_edit_button": "Rediger denne nettsida",
   "topsites_form_add_header": "Ny Mest besøkt",
   "topsites_form_edit_header": "Rediger Mest besøkt",
   "topsites_form_title_label": "Tittel",
   "topsites_form_title_placeholder": "Skriv inn ein tittel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Tilpassa bilde-URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Førehandsvis",
   "topsites_form_add_button": "Legg til",
   "topsites_form_save_button": "Lagre",
   "topsites_form_cancel_button": "Avbryt",
   "topsites_form_url_validation": "Gyldig URL er påkravd",
   "topsites_form_image_validation": "Klarte ikkje å lesa bildet. Prøv ein annan URL.",
   "pocket_read_more": "Populære emne:",
   "pocket_read_even_more": "Vis fleire saker",
-  "pocket_description": "Oppdag høgkvalitetsinnhald som du elles ville gå glipp av, ved hjelp av Pocket, som no er ein del av Mozilla.",
   "highlights_empty_state": "Begynn å surfe, og vi vil vise deg nokre av dei beste artiklane, videoane og andre sider du nyleg har besøkt eller bokmerka her.",
   "topstories_empty_state": "Det finst ikkje fleire. Kom tilbake seinare for fleire topphistoriar frå {provider}. Kan du ikkje vente? Vel eit populært emne for å finne fleire gode artiklar frå heile nettet.",
   "manual_migration_explanation2": "Prøv Firefox med bokmerka, historikk og passord frå ein annan nettlesar.",
   "manual_migration_cancel_button": "Nei takk",
   "manual_migration_import_button": "Importer no",
   "error_fallback_default_info": "Ops, noko gjekk gale då innhaldet skulle lastast inn.",
   "error_fallback_default_refresh_suggestion": "Oppdater sida for å prøve på nytt.",
   "section_menu_action_remove_section": "Fjern seksjon",
   "section_menu_action_collapse_section": "Slå saman seksjon",
   "section_menu_action_expand_section": "Utvid seksjon",
   "section_menu_action_manage_section": "Handter seksjon",
   "section_menu_action_add_topsite": "Legg til mest besøkte",
   "section_menu_action_move_up": "Flytt opp",
   "section_menu_action_move_down": "Flytt ned",
-  "section_menu_action_privacy_notice": "Personvernmerknad"
+  "section_menu_action_privacy_notice": "Personvernmerknad",
+  "prefs_restore_defaults_button": "Gjenopprett standard",
+  "settings_pane_header": "Innstillingar for Ny fane",
+  "settings_pane_body2": "Vel kva du vil sjå på denne sida.",
+  "settings_pane_search_header": "Søk",
+  "settings_pane_search_body": "Søk på nettet frå den nye fana di.",
+  "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
+  "settings_pane_topsites_options_showmore": "Vis to rader",
+  "settings_pane_highlights_body2": "Finn vegen tilbake til interessante ting du nyleg har besøkt eller bokmerka.",
+  "settings_pane_highlights_options_visited": "Besøkte nettsteder",
+  "settings_pane_snippets_body": "Les korte nyheiter frå Mozilla om Firefox, internettkultur og frå tid til annan ein tilfeldig meme.",
+  "settings_pane_done_button": "Ferdig",
+  "settings_pane_topstories_options_sponsored": "Vis sponsa historiar",
+  "pocket_description": "Oppdag høgkvalitetsinnhald som du elles ville gå glipp av, ved hjelp av Pocket, som no er ein del av Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ਵੈੱਬ ਨੂੰ ਖੋਜੋ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ਵੈੱਬ ਨੂੰ ਖੋਜੋ" title="ਵੈੱਬ ਨੂੰ ਖੋਜੋ"/><button id="searchSubmit" class="search-button" title="ਖੋਜ"><span class="sr-only"><span>ਖੋਜ</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਚੋਣ ਖ੍ਹੋਲੋ</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਚੋਣ ਖ੍ਹੋਲੋ</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ਪ੍ਰਸਿੱਧ ਵਿਸ਼ੇ:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ਸੁਰਖੀਆਂ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਚੋਣ ਖ੍ਹੋਲੋ</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="ਆਪਣੇ ਨਵੀਂ ਟੈਬ ਸਫ਼ੇ ਨੂੰ ਆਪਣੇ ਮੁਤਾਬਕ ਢਾਲੋ"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ਖੋਜ",
   "search_header": "{search_engine_name} ਖੋਜ",
   "search_web_placeholder": "ਵੈੱਬ ਨੂੰ ਖੋਜੋ",
   "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": "ਜਾਣੋ ਕਿ ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ।",
   "section_disclaimer_topstories_buttontext": "ਠੀਕ ਹੈ, ਸਮਝ ਲਿਆ",
   "prefs_home_header": "ਫਾਇਰਫਾਕਸ ਮੁੱਖ ਪੰਨਾ",
   "prefs_home_description": "ਉਹ ਸਮੱਗਰੀ ਚੁਣੋ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਫਾਇਰਫਾਕਸ ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਚਾਹੁੰਦੇ ਹੋ।",
-  "prefs_restore_defaults_button": "ਡਿਫੌਲਟ 'ਤੇ ਰੀਸਟੋਰ ਕਰੋ",
   "prefs_section_rows_option": "{num} ਕਤਾਰ;{num} ਕਤਾਰਾਂ",
   "prefs_search_header": "ਵੈੱਬ ਖੋਜ",
   "prefs_topsites_description": "ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੀਆਂ ਸਾਈਟਾਂ",
   "prefs_topstories_description2": "ਸਮੁੱਚੇ ਵੈੱਬ ਤੋਂ ਸ਼ਾਨਦਾਰ ਸਮੱਗਰੀ, ਤੁਹਾਡੇ ਲਈ ਵਿਅਕਤੀਗਤ ਹੈ",
   "prefs_topstories_options_sponsored_label": "ਪ੍ਰਾਯੋਜਿਤ ਕਹਾਣੀਆਂ",
   "prefs_topstories_sponsored_learn_more": "ਹੋਰ ਜਾਣੋ",
   "prefs_highlights_description": "ਉਹਨਾਂ ਸਾਈਟਾਂ ਦੀ ਚੋਣ ਕਰੋ ਜੋ ਤੁਸੀਂ ਸੁਰੱਖਿਅਤ ਜਾਂ ਵਿਜ਼ਿਟ ਕੀਤੀ ਹੈ",
   "prefs_highlights_options_visited_label": "ਵੇਖੇ ਗਏ ਸਫੇ",
   "prefs_highlights_options_download_label": "ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਕੀਤੇ ਡਾਊਨਲੋਡ",
   "prefs_highlights_options_pocket_label": "ਪੰਨਿਆਂ ਨੂੰ ਪਾਕੈਟ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ",
   "prefs_snippets_description": "ਮੋਜ਼ੀਲਾ ਅਤੇ ਫਾਇਰਫਾਕਸ ਤੋਂ ਅੱਪਡੇਟ",
   "settings_pane_button_label": "ਆਪਣੇ ਨਵੀਂ ਟੈਬ ਸਫ਼ੇ ਨੂੰ ਆਪਣੇ ਮੁਤਾਬਕ ਢਾਲੋ",
-  "settings_pane_header": "ਨਵੀਂ ਟੈਬ ਲਈ ਪਸੰਦਾਂ",
-  "settings_pane_body2": "ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਤੇ ਕੀ ਦੇਖਿਆ।",
-  "settings_pane_search_header": "ਖੋਜੋ",
-  "settings_pane_search_body": "ਆਪਣੀ ਨਵੀਂ ਟੈਬ ਤੋਂ ਵੈੱਬ ਨੂੰ ਖੋਜੋ।",
   "settings_pane_topsites_header": "ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ",
-  "settings_pane_topsites_body": "ਵੈੱਬਸਾਈਟਾਂ, ਜਿਹਨਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਖੋਲ੍ਹਿਆ ਹੈ, ਲਈ ਪਹੁੰਚ।",
-  "settings_pane_topsites_options_showmore": "ਦੋ ਕਤਾਰਾਂ ਵੇਖਾਓ",
   "settings_pane_highlights_header": "ਹਾਈਲਾਈਟ",
-  "settings_pane_highlights_body2": "ਜਿਹੜੀਆਂ ਦਿਲਚਸਪ ਚੀਜ਼ਾਂ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਦੇਖੀਆਂ ਹਨ ਜਾਂ ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ ਹਨ, ਬਾਰੇ ਆਪਣਾ ਵਾਪਸੀ ਰਸਤਾ ਲੱਭੋ।",
   "settings_pane_highlights_options_bookmarks": "ਬੁੱਕਮਾਰਕ",
-  "settings_pane_highlights_options_visited": "ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ",
   "settings_pane_snippets_header": "ਛੋਟੇ ਟੋਟੇ",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "ਮੁਕੰਮਲ",
-  "settings_pane_topstories_options_sponsored": "ਸਪਾਂਸਰ ਕੀਤੀਆਂ ਕਹਾਣੀਆਂ ਵੇਖਾਓ",
   "edit_topsites_button_text": "ਸੋਧੋ",
   "edit_topsites_edit_button": "ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ",
   "topsites_form_add_header": "ਨਵੀਂ ਉਪਰਲੀ ਸਾਈਟ",
   "topsites_form_edit_header": "ਉਪਰਲੀ ਸਾਈਟ ਸੋਧੋ",
   "topsites_form_title_label": "ਸਿਰਲੇਖ",
   "topsites_form_title_placeholder": "ਸਿਰਲੇਖ ਦਾਖਲ ਕਰੋ",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL ਕਸਟਮ ਚਿੱਤਰ",
@@ -81,25 +69,35 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "ਪੂਰਵ ਦਰਸ਼ਨ",
   "topsites_form_add_button": "ਜੋੜੋ",
   "topsites_form_save_button": "ਸੰਭਾਲੋ",
   "topsites_form_cancel_button": "ਰੱਦ ਕਰੋ",
   "topsites_form_url_validation": "ਲੋੜੀਂਦਾ URL ਯੋਗ ਹੈ",
   "topsites_form_image_validation": "ਚਿੱਤਰ ਲੋਡ ਕਰਨ ਤੋਂ ਅਸਫ਼ਲ ਰਿਹਾ। ਕਿਸੇ ਵੱਖਰੇ URL ਨਾਲ ਕੋਸ਼ਿਸ਼ ਕਰੋ।",
   "pocket_read_more": "ਪ੍ਰਸਿੱਧ ਵਿਸ਼ੇ:",
   "pocket_read_even_more": "ਹੋਰ ਕਹਾਣੀਆਂ ਵੇਖੋ",
-  "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.",
   "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_cancel_button": "ਨਹੀਂ, ਧੰਨਵਾਦ",
   "manual_migration_import_button": "ਹੁਣੇ ਇੰਪੋਰਟ ਕਰੋ",
   "error_fallback_default_info": "ਓਹ ਹੋ, ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ।",
   "error_fallback_default_refresh_suggestion": "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਪੰਨਾ ਤਾਜ਼ਾ ਕਰੋ।",
   "section_menu_action_remove_section": "ਸੈਕਸ਼ਨ ਹਟਾਓ",
   "section_menu_action_collapse_section": "ਸੈਕਸ਼ਨ ਨੂੰ ਸਮੇਟੋ",
   "section_menu_action_expand_section": "ਸੈਕਸ਼ਨ ਦੀ ਫੈਲਾਓ",
   "section_menu_action_manage_section": "ਸੈਕਸ਼ਨ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ",
   "section_menu_action_add_topsite": "ਚੋਟੀ ਦੀਆਂ ਸਾਈਟਾਂ ਜੋੜੋ",
   "section_menu_action_move_up": "ਉੱਤੇ ਭੇਜੋ",
   "section_menu_action_move_down": "ਹੇਠਾਂ ਭੇਜੋ",
-  "section_menu_action_privacy_notice": "ਨਿੱਜੀ ਨੋਟਿਸ"
+  "section_menu_action_privacy_notice": "ਨਿੱਜੀ ਨੋਟਿਸ",
+  "prefs_restore_defaults_button": "ਡਿਫੌਲਟ 'ਤੇ ਰੀਸਟੋਰ ਕਰੋ",
+  "settings_pane_header": "ਨਵੀਂ ਟੈਬ ਲਈ ਪਸੰਦਾਂ",
+  "settings_pane_body2": "ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਤੇ ਕੀ ਦੇਖਿਆ।",
+  "settings_pane_search_header": "ਖੋਜੋ",
+  "settings_pane_search_body": "ਆਪਣੀ ਨਵੀਂ ਟੈਬ ਤੋਂ ਵੈੱਬ ਨੂੰ ਖੋਜੋ।",
+  "settings_pane_topsites_body": "ਵੈੱਬਸਾਈਟਾਂ, ਜਿਹਨਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਖੋਲ੍ਹਿਆ ਹੈ, ਲਈ ਪਹੁੰਚ।",
+  "settings_pane_topsites_options_showmore": "ਦੋ ਕਤਾਰਾਂ ਵੇਖਾਓ",
+  "settings_pane_highlights_body2": "ਜਿਹੜੀਆਂ ਦਿਲਚਸਪ ਚੀਜ਼ਾਂ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਦੇਖੀਆਂ ਹਨ ਜਾਂ ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ ਹਨ, ਬਾਰੇ ਆਪਣਾ ਵਾਪਸੀ ਰਸਤਾ ਲੱਭੋ।",
+  "settings_pane_highlights_options_visited": "ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ",
+  "settings_pane_done_button": "ਮੁਕੰਮਲ",
+  "settings_pane_topstories_options_sponsored": "ਸਪਾਂਸਰ ਕੀਤੀਆਂ ਕਹਾਣੀਆਂ ਵੇਖਾਓ"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Szukaj</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Szukaj" title="Szukaj"/><button id="searchSubmit" class="search-button" title="Szukaj"><span class="sr-only"><span>Szukaj</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Popularne</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otwórz menu kontekstowe sekcji</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edytuj tę stronę"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Poleca: Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otwórz menu kontekstowe sekcji</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popularne tematy:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Wyróżnione</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otwórz menu kontekstowe sekcji</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Dostosuj stronę nowej karty"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Szukaj",
   "search_header": "Wyszukiwanie w {search_engine_name}",
   "search_web_placeholder": "Szukaj",
   "section_disclaimer_topstories": "Najciekawsze artykuły w Internecie, wybierane na podstawie już przeczytanych. Od serwisu Pocket, będącego teraz częścią Mozilli.",
   "section_disclaimer_topstories_linktext": "Zobacz, jak to działa.",
   "section_disclaimer_topstories_buttontext": "OK!",
   "prefs_home_header": "Strona startowa Firefoksa",
   "prefs_home_description": "Wybierz, co wyświetlać na stronie startowej Firefoksa.",
-  "prefs_restore_defaults_button": "Przywróć domyślne",
   "prefs_section_rows_option": "{num} rząd;{num} rzędy;{num} rzędów",
   "prefs_search_header": "Wyszukiwanie",
   "prefs_topsites_description": "Najczęściej odwiedzane strony",
   "prefs_topstories_description2": "Świetne rzeczy z całego Internetu, wybrane specjalnie dla Ciebie",
   "prefs_topstories_options_sponsored_label": "Sponsorowane artykuły",
   "prefs_topstories_sponsored_learn_more": "Więcej informacji",
   "prefs_highlights_description": "Wybór zachowanych i odwiedzonych stron",
   "prefs_highlights_options_visited_label": "Odwiedzone strony",
   "prefs_highlights_options_download_label": "Ostatnio pobrane",
   "prefs_highlights_options_pocket_label": "Strony zachowane w Pocket",
   "prefs_snippets_description": "Informacje od Mozilli i Firefoksa",
   "settings_pane_button_label": "Dostosuj stronę nowej karty",
-  "settings_pane_header": "Preferencje nowej karty",
-  "settings_pane_body2": "Wybierz, co wyświetlać na tej stronie.",
-  "settings_pane_search_header": "Wyszukiwanie",
-  "settings_pane_search_body": "Szukaj w Internecie na nowej karcie.",
   "settings_pane_topsites_header": "Popularne",
-  "settings_pane_topsites_body": "Otwieraj najczęściej odwiedzane strony.",
-  "settings_pane_topsites_options_showmore": "Dwa rzędy",
   "settings_pane_highlights_header": "Wyróżnione",
-  "settings_pane_highlights_body2": "Szybko wracaj do niedawno odwiedzonych stron i dodanych zakładek.",
   "settings_pane_highlights_options_bookmarks": "Zakładki",
-  "settings_pane_highlights_options_visited": "Odwiedzone",
   "settings_pane_snippets_header": "Notki",
-  "settings_pane_snippets_body": "Krótkie informacje od Mozilli o Firefoksie i kulturze internetowej, a od czasu do czasu także jakiś żart.",
-  "settings_pane_done_button": "Gotowe",
-  "settings_pane_topstories_options_sponsored": "Sponsorowane artykuły",
   "edit_topsites_button_text": "Edytuj",
   "edit_topsites_edit_button": "Edytuj tę stronę",
   "topsites_form_add_header": "Nowa popularna strona",
   "topsites_form_edit_header": "Edytuj popularną stronę",
   "topsites_form_title_label": "Tytuł",
   "topsites_form_title_placeholder": "Wpisz tytuł",
   "topsites_form_url_label": "Adres",
   "topsites_form_image_url_label": "Adres niestandardowego obrazu",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Podgląd",
   "topsites_form_add_button": "Dodaj",
   "topsites_form_save_button": "Zapisz",
   "topsites_form_cancel_button": "Anuluj",
   "topsites_form_url_validation": "Wymagany jest prawidłowy adres",
   "topsites_form_image_validation": "Wczytanie obrazu się nie powiodło. Spróbuj innego adresu.",
   "pocket_read_more": "Popularne tematy:",
   "pocket_read_even_more": "Więcej artykułów",
-  "pocket_description": "Odkrywaj wysokiej jakości treści dzięki serwisowi Pocket, będącego teraz częścią Mozilli.",
   "highlights_empty_state": "Zacznij przeglądać Internet, a pojawią się tutaj niedawno dodane zakładki i odwiedzone artykuły, filmy i inne strony.",
   "topstories_empty_state": "To na razie wszystko. {provider} później będzie mieć więcej popularnych artykułów. Nie możesz się doczekać? Wybierz popularny temat, aby znaleźć więcej artykułów z całego Internetu.",
   "manual_migration_explanation2": "Używaj Firefoksa z zakładkami, historią i hasłami z innej przeglądarki.",
   "manual_migration_cancel_button": "Nie, dziękuję",
   "manual_migration_import_button": "Importuj teraz",
   "error_fallback_default_info": "Coś się nie powiodło podczas wczytywania tej treści.",
   "error_fallback_default_refresh_suggestion": "Odśwież stronę, aby spróbować ponownie.",
   "section_menu_action_remove_section": "Usuń sekcję",
   "section_menu_action_collapse_section": "Zwiń sekcję",
   "section_menu_action_expand_section": "Rozwiń sekcję",
   "section_menu_action_manage_section": "Zarządzaj sekcją",
   "section_menu_action_add_topsite": "Dodaj popularną stronę",
   "section_menu_action_move_up": "Przenieś w górę",
   "section_menu_action_move_down": "Przenieś w dół",
-  "section_menu_action_privacy_notice": "Prywatność"
+  "section_menu_action_privacy_notice": "Prywatność",
+  "prefs_restore_defaults_button": "Przywróć domyślne",
+  "settings_pane_header": "Preferencje nowej karty",
+  "settings_pane_body2": "Wybierz, co wyświetlać na tej stronie.",
+  "settings_pane_search_header": "Wyszukiwanie",
+  "settings_pane_search_body": "Szukaj w Internecie na nowej karcie.",
+  "settings_pane_topsites_body": "Otwieraj najczęściej odwiedzane strony.",
+  "settings_pane_topsites_options_showmore": "Dwa rzędy",
+  "settings_pane_highlights_body2": "Szybko wracaj do niedawno odwiedzonych stron i dodanych zakładek.",
+  "settings_pane_highlights_options_visited": "Odwiedzone",
+  "settings_pane_snippets_body": "Krótkie informacje od Mozilli o Firefoksie i kulturze internetowej, a od czasu do czasu także jakiś żart.",
+  "settings_pane_done_button": "Gotowe",
+  "settings_pane_topstories_options_sponsored": "Sponsorowane artykuły",
+  "pocket_description": "Odkrywaj wysokiej jakości treści dzięki serwisowi Pocket, będącego teraz częścią Mozilli."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Pesquisar na Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Pesquisar na Web" title="Pesquisar na Web"/><button id="searchSubmit" class="search-button" title="Pesquisar"><span class="sr-only"><span>Pesquisar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sites preferidos</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da seção</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da seção</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Tópicos populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destaques</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da seção</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar sua página de nova aba"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Pesquisar",
   "search_header": "Pesquisa {search_engine_name}",
   "search_web_placeholder": "Pesquisar na Web",
   "section_disclaimer_topstories": "As histórias mais interessantes na web, selecionadas baseadas no que você lê. Do Pocket, agora parte da Mozilla.",
   "section_disclaimer_topstories_linktext": "Saiba como funciona.",
   "section_disclaimer_topstories_buttontext": "Ok, entendi",
   "prefs_home_header": "Conteúdo inicial do Firefox",
   "prefs_home_description": "Escolha qual conteúdo você quer na sua tela inicial do Firefox.",
-  "prefs_restore_defaults_button": "Restaurar padrões",
   "prefs_section_rows_option": "{num} linha;{num} linhas",
   "prefs_search_header": "Pesquisa na web",
   "prefs_topsites_description": "Os sites que você mais visita",
   "prefs_topstories_description2": "Os melhores conteúdos disponíveis na Web, personalizados pra você",
   "prefs_topstories_options_sponsored_label": "Histórias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Saiba mais",
   "prefs_highlights_description": "Uma seleção de sites que você salvou ou visitou",
   "prefs_highlights_options_visited_label": "Páginas visitadas",
   "prefs_highlights_options_download_label": "Download mais recente",
   "prefs_highlights_options_pocket_label": "Páginas salvas no Pocket",
   "prefs_snippets_description": "Atualizações da Mozilla e do Firefox",
   "settings_pane_button_label": "Personalizar sua página de nova aba",
-  "settings_pane_header": "Preferências de novas abas",
-  "settings_pane_body2": "Escolha o que verá nessa página.",
-  "settings_pane_search_header": "Pesquisar",
-  "settings_pane_search_body": "Pesquise na Web a partir da sua nova aba.",
   "settings_pane_topsites_header": "Sites preferidos",
-  "settings_pane_topsites_body": "Acesse os sites que você mais visita.",
-  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
   "settings_pane_highlights_header": "Destaques",
-  "settings_pane_highlights_body2": "Encontre o caminho de volta para as coisas interessantes que você favoritou ou viu recentemente.",
   "settings_pane_highlights_options_bookmarks": "Favoritos",
-  "settings_pane_highlights_options_visited": "Sites visitados",
   "settings_pane_snippets_header": "Snippets",
-  "settings_pane_snippets_body": "Saiba das notícias e novidades da Mozilla sobre o Firefox, Internet e às vezes alguns memes.",
-  "settings_pane_done_button": "Concluído",
-  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este site",
   "topsites_form_add_header": "Novo site popular",
   "topsites_form_edit_header": "Editar site popular",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Digite um título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagem personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Visualizar",
   "topsites_form_add_button": "Adicionar",
   "topsites_form_save_button": "Salvar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "É necessário um URL válido",
   "topsites_form_image_validation": "Não foi possível carregar a imagem. Tente uma URL diferente.",
   "pocket_read_more": "Tópicos populares:",
   "pocket_read_even_more": "Ver mais histórias",
-  "pocket_description": "Descubra conteúdo de alta qualidade que você poderia ter perdido, com a ajuda do Pocket, agora parte da Mozilla.",
   "highlights_empty_state": "Comece a navegar e nós mostraremos aqui alguns ótimos artigos, vídeos e outras páginas que você favoritou ou visitou recentemente.",
   "topstories_empty_state": "Você já viu tudo. Volte mais tarde para mais histórias do {provider}. Não consegue esperar? Escolha um assunto popular para encontrar mais grandes histórias através da web.",
   "manual_migration_explanation2": "Experimente o Firefox com os favoritos, histórico e senhas salvas em outro navegador.",
   "manual_migration_cancel_button": "Não, obrigado",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Opa, algo deu errado ao carregar esse conteúdo.",
   "error_fallback_default_refresh_suggestion": "Atualize a página para tentar novamente.",
   "section_menu_action_remove_section": "Remover seção",
   "section_menu_action_collapse_section": "Recolher seção",
   "section_menu_action_expand_section": "Expandir seção",
   "section_menu_action_manage_section": "Gerenciar seção",
   "section_menu_action_add_topsite": "Adicionar ao sites preferidos",
   "section_menu_action_move_up": "Mover para cima",
   "section_menu_action_move_down": "Mover para baixo",
-  "section_menu_action_privacy_notice": "Política de privacidade"
+  "section_menu_action_privacy_notice": "Política de privacidade",
+  "prefs_restore_defaults_button": "Restaurar padrões",
+  "settings_pane_header": "Preferências de novas abas",
+  "settings_pane_body2": "Escolha o que verá nessa página.",
+  "settings_pane_search_header": "Pesquisar",
+  "settings_pane_search_body": "Pesquise na Web a partir da sua nova aba.",
+  "settings_pane_topsites_body": "Acesse os sites que você mais visita.",
+  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
+  "settings_pane_highlights_body2": "Encontre o caminho de volta para as coisas interessantes que você favoritou ou viu recentemente.",
+  "settings_pane_highlights_options_visited": "Sites visitados",
+  "settings_pane_snippets_body": "Saiba das notícias e novidades da Mozilla sobre o Firefox, Internet e às vezes alguns memes.",
+  "settings_pane_done_button": "Concluído",
+  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
+  "pocket_description": "Descubra conteúdo de alta qualidade que você poderia ter perdido, com a ajuda do Pocket, agora parte da Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Pesquisar na Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Pesquisar na Web" title="Pesquisar na Web"/><button id="searchSubmit" class="search-button" title="Pesquisar"><span class="sr-only"><span>Pesquisar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sites mais visitados</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da secção</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editar este site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomendado por Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da secção</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Tópicos populares:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Destaques</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Abrir o menu de contexto da secção</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar a sua página de novo separador"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Pesquisar",
   "search_header": "Pesquisa {search_engine_name}",
   "search_web_placeholder": "Pesquisar na Web",
   "section_disclaimer_topstories": "As histórias mais interessantes na web, selecionadas baseadas no que você lê. Do Pocket, agora parte da Mozilla.",
   "section_disclaimer_topstories_linktext": "Saiba como funciona.",
   "section_disclaimer_topstories_buttontext": "Ok, entendi",
   "prefs_home_header": "Conteúdo do ecrã inicial do Firefox",
   "prefs_home_description": "Escolha que conteúdo deseja no seu ecrã inicial do Firefox.",
-  "prefs_restore_defaults_button": "Restaurar predefinições",
   "prefs_section_rows_option": "{num} linha;{num} linhas",
   "prefs_search_header": "Pesquisa Web",
   "prefs_topsites_description": "Os sites que mais visita",
   "prefs_topstories_description2": "Ótimo conteúdo de toda a web, personalizado para si",
   "prefs_topstories_options_sponsored_label": "Histórias patrocinadas",
   "prefs_topstories_sponsored_learn_more": "Saber mais",
   "prefs_highlights_description": "Uma seleção de sites que guardou ou visitou",
   "prefs_highlights_options_visited_label": "Páginas visitadas",
   "prefs_highlights_options_download_label": "Transferência mais recente",
   "prefs_highlights_options_pocket_label": "Páginas guardadas no Pocket",
   "prefs_snippets_description": "Atualizações da Mozilla e do Firefox",
   "settings_pane_button_label": "Personalizar a sua página de novo separador",
-  "settings_pane_header": "Preferências de novo separador",
-  "settings_pane_body2": "Escolha o que vê nesta página.",
-  "settings_pane_search_header": "Pesquisa",
-  "settings_pane_search_body": "Pesquise na Web a partir do seu novo separador.",
   "settings_pane_topsites_header": "Sites mais visitados",
-  "settings_pane_topsites_body": "Aceda aos websites que mais visita.",
-  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
   "settings_pane_highlights_header": "Destaques",
-  "settings_pane_highlights_body2": "Encontre o seu caminho de volta a coisas interessantes que visitou recentemente ou adicionou aos marcadores.",
   "settings_pane_highlights_options_bookmarks": "Marcadores",
-  "settings_pane_highlights_options_visited": "Sites visitados",
   "settings_pane_snippets_header": "Excertos",
-  "settings_pane_snippets_body": "Leia atualizações curtas da Mozilla acerca do Firefox, cultura da internet, e o ocasional meme aleatório.",
-  "settings_pane_done_button": "Feito",
-  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
   "edit_topsites_button_text": "Editar",
   "edit_topsites_edit_button": "Editar este site",
   "topsites_form_add_header": "Novo site mais visitado",
   "topsites_form_edit_header": "Editar site mais visitado",
   "topsites_form_title_label": "Título",
   "topsites_form_title_placeholder": "Digite um título",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL de imagem personalizada",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Pré-visualizar",
   "topsites_form_add_button": "Adicionar",
   "topsites_form_save_button": "Guardar",
   "topsites_form_cancel_button": "Cancelar",
   "topsites_form_url_validation": "URL válido requerido",
   "topsites_form_image_validation": "A imagem falhou o carregamento. Tente um URL diferente.",
   "pocket_read_more": "Tópicos populares:",
   "pocket_read_even_more": "Ver mais histórias",
-  "pocket_description": "Descubra conteúdo de alta qualidade que podia de outra maneira perder, com a ajuda do Pocket, agora parte da Mozilla.",
   "highlights_empty_state": "Comece a navegar, e iremos mostrar-lhe alguns dos ótimos artigos, vídeos, e outras páginas que visitou recentemente ou adicionou aos marcadores aqui.",
   "topstories_empty_state": "Já apanhou tudo. Verifique mais tarde para mais histórias principais de {provider}. Não pode esperar? Selecione um tópico popular para encontrar mais boas histórias de toda a web.",
   "manual_migration_explanation2": "Experimente o Firefox com marcadores, histórico e palavras-passe de outro navegador.",
   "manual_migration_cancel_button": "Não, obrigado",
   "manual_migration_import_button": "Importar agora",
   "error_fallback_default_info": "Oops, algo correu mal ao carregar este conteúdo.",
   "error_fallback_default_refresh_suggestion": "Atualize a página para tentar novamente.",
   "section_menu_action_remove_section": "Remover secção",
   "section_menu_action_collapse_section": "Colapsar secção",
   "section_menu_action_expand_section": "Expandir secção",
   "section_menu_action_manage_section": "Gerir secção",
   "section_menu_action_add_topsite": "Adicionar site mais visitado",
   "section_menu_action_move_up": "Mover para cima",
   "section_menu_action_move_down": "Mover para baixo",
-  "section_menu_action_privacy_notice": "Aviso de privacidade"
+  "section_menu_action_privacy_notice": "Aviso de privacidade",
+  "prefs_restore_defaults_button": "Restaurar predefinições",
+  "settings_pane_header": "Preferências de novo separador",
+  "settings_pane_body2": "Escolha o que vê nesta página.",
+  "settings_pane_search_header": "Pesquisa",
+  "settings_pane_search_body": "Pesquise na Web a partir do seu novo separador.",
+  "settings_pane_topsites_body": "Aceda aos websites que mais visita.",
+  "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
+  "settings_pane_highlights_body2": "Encontre o seu caminho de volta a coisas interessantes que visitou recentemente ou adicionou aos marcadores.",
+  "settings_pane_highlights_options_visited": "Sites visitados",
+  "settings_pane_snippets_body": "Leia atualizações curtas da Mozilla acerca do Firefox, cultura da internet, e o ocasional meme aleatório.",
+  "settings_pane_done_button": "Feito",
+  "settings_pane_topstories_options_sponsored": "Mostrar histórias patrocinadas",
+  "pocket_description": "Descubra conteúdo de alta qualidade que podia de outra maneira perder, com a ajuda do Pocket, agora parte da Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Tschertgar en il Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Tschertgar en il Web" title="Tschertgar en il Web"/><button id="searchSubmit" class="search-button" title="Tschertgar"><span class="sr-only"><span>Tschertgar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Paginas preferidas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recumandà da Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Temas populars:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Accents</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Persunalisar tia pagina per novs tabs"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Tschertgar",
   "search_header": "Tschertga da {search_engine_name}",
   "search_web_placeholder": "Tschertgar en il Web",
   "section_disclaimer_topstories": "Las istorgias las pli interessantas en il web, tschernidas a basa da quai che ti legias. Da Pocket che fa ussa part da Mozilla.",
   "section_disclaimer_topstories_linktext": "Ve a savair co quai funcziuna.",
   "section_disclaimer_topstories_buttontext": "Ok, chapì",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Persunalisar tia pagina per novs tabs",
-  "settings_pane_header": "Preferenzas per novs tabs",
-  "settings_pane_body2": "Tscherna tge che vegn mussà sin questa pagina.",
-  "settings_pane_search_header": "Tschertgar",
-  "settings_pane_search_body": "Tschertgar en l'internet da tes nov tab.",
   "settings_pane_topsites_header": "Paginas preferidas",
-  "settings_pane_topsites_body": "Acceder las websites che ti visitas il pli savens.",
-  "settings_pane_topsites_options_showmore": "Mussar duas colonnas",
   "settings_pane_highlights_header": "Accents",
-  "settings_pane_highlights_body2": "Chatta svelt puspè paginas interessantas che ti has visità u marcà sco segnapagina.",
   "settings_pane_highlights_options_bookmarks": "Segnapaginas",
-  "settings_pane_highlights_options_visited": "Paginas visitadas",
   "settings_pane_snippets_header": "Zinslas",
-  "settings_pane_snippets_body": "Legia infurmaziuns curtas da Mozilla davart Firefox, la cultura da l'internet e da temp en temp in meme.",
-  "settings_pane_done_button": "Finì",
-  "settings_pane_topstories_options_sponsored": "Mussar istorgias sponsorisadas",
   "edit_topsites_button_text": "Modifitgar",
   "edit_topsites_edit_button": "Modifitgar questa pagina",
   "topsites_form_add_header": "Nova pagina populara",
   "topsites_form_edit_header": "Modifitgar la pagina populara",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Endatar in titel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Agiuntar",
   "topsites_form_save_button": "Memorisar",
   "topsites_form_cancel_button": "Interrumper",
   "topsites_form_url_validation": "In URL valid è necessari",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Temas populars:",
   "pocket_read_even_more": "Mussar dapli artitgels",
-  "pocket_description": "Scuvra cuntegn dad auta qualitad cun agid da Pocket che fa ussa part da Mozilla.",
   "highlights_empty_state": "Cumenza a navigar e nus ta mussain qua artitgels, videos ed autras paginas che ti has visità dacurt u che ti has agiuntà dacurt sco segnapagina.",
   "topstories_empty_state": "Ussa has ti legì tut las novitads. Turna pli tard per ulteriuras novitads da {provider}. Na pos betg spetgar? Tscherna in tema popular per chattar ulteriuras istorgias ord il web.",
   "manual_migration_explanation2": "Emprova Firefox cun ils segnapaginas, la cronologia ed ils pleds-clav importads d'in auter navigatur.",
   "manual_migration_cancel_button": "Na, grazia",
   "manual_migration_import_button": "Importar ussa",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,22 +108,34 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Infurmaziuns davart la protecziun da datas",
   "welcome_title": "Bainvegni sin in nov tab",
   "welcome_body": "Firefox utilisescha quest plaz per ta mussar ils segnapaginas, ils artitgels, ils videos e las paginas las pli relevantas che ti has visità dacurt, uschè che ti pos turnar a moda simpla tar quellas.",
   "welcome_label": "Identifitgar tes accents",
   "time_label_less_than_minute": "< 1 min",
   "time_label_minute": "{number} min",
   "time_label_hour": "{number} uras",
   "time_label_day": "{number} dis",
+  "settings_pane_header": "Preferenzas per novs tabs",
+  "settings_pane_body2": "Tscherna tge che vegn mussà sin questa pagina.",
+  "settings_pane_search_header": "Tschertgar",
+  "settings_pane_search_body": "Tschertgar en l'internet da tes nov tab.",
+  "settings_pane_topsites_body": "Acceder las websites che ti visitas il pli savens.",
+  "settings_pane_topsites_options_showmore": "Mussar duas colonnas",
   "settings_pane_bookmarks_header": "Novs segnapaginas",
   "settings_pane_bookmarks_body": "Tes novs segnapaginas en in lieu pratic.",
   "settings_pane_visit_again_header": "Turnar a visitar",
   "settings_pane_visit_again_body": "Firefox ta mussa parts da tia cronologia da navigaziun che pudessan esser interessantas per turnar.",
+  "settings_pane_highlights_body2": "Chatta svelt puspè paginas interessantas che ti has visità u marcà sco segnapagina.",
+  "settings_pane_highlights_options_visited": "Paginas visitadas",
+  "settings_pane_snippets_body": "Legia infurmaziuns curtas da Mozilla davart Firefox, la cultura da l'internet e da temp en temp in meme.",
+  "settings_pane_done_button": "Finì",
+  "settings_pane_topstories_options_sponsored": "Mussar istorgias sponsorisadas",
   "edit_topsites_button_label": "Persunalisar la secziun da paginas preferidas",
   "edit_topsites_showmore_button": "Mussar dapli",
   "edit_topsites_showless_button": "Mussar pli pauc",
   "edit_topsites_done_button": "Finì",
   "edit_topsites_pin_button": "Fixar questa pagina",
   "edit_topsites_unpin_button": "Betg pli fixar questa pagina",
   "edit_topsites_dismiss_button": "Allontanar questa pagina",
   "edit_topsites_add_button": "Agiuntar",
-  "pocket_feedback_header": "Il meglier ord il web, selecziunà da dapli che 25 milliuns umans."
+  "pocket_feedback_header": "Il meglier ord il web, selecziunà da dapli che 25 milliuns umans.",
+  "pocket_description": "Scuvra cuntegn dad auta qualitad cun agid da Pocket che fa ussa part da Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Caută pe web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Caută pe web" title="Caută pe web"/><button id="searchSubmit" class="search-button" title="Caută"><span class="sr-only"><span>Caută</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Site-uri de top</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Editează acest site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomandat de Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Subiecte populare:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Evidențieri</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Deschide meniul contextual al secțiunii</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Particularizează pagina de filă nouă"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Caută",
   "search_header": "Căutare {search_engine_name}",
   "search_web_placeholder": "Caută pe web",
   "section_disclaimer_topstories": "Cele mai interesante articole de pe web, alese pe baza lucrurilor pe care le citești. De la Pocket, acum parte din Mozilla.",
   "section_disclaimer_topstories_linktext": "Află cum funcționează.",
   "section_disclaimer_topstories_buttontext": "Ok, am înțeles",
   "prefs_home_header": "Conținutul paginii de start Firefox",
   "prefs_home_description": "Alege ce conținut vrei pe ecranul de start Firefox.",
-  "prefs_restore_defaults_button": "Restaurează valorile implicite",
   "prefs_section_rows_option": "{num} rând;{num} rânduri;{num} de rânduri",
   "prefs_search_header": "Căutare web",
   "prefs_topsites_description": "Site-urile pe care le vizitezi cel mai des",
   "prefs_topstories_description2": "Conținut nemaipomenit de pe web, personalizat pentru tine",
   "prefs_topstories_options_sponsored_label": "Articole sponsorizate",
   "prefs_topstories_sponsored_learn_more": "Află mai multe",
   "prefs_highlights_description": "O selecție a site-urilor pe care le-ai salvat sau vizitat",
   "prefs_highlights_options_visited_label": "Pagini vizitate",
   "prefs_highlights_options_download_label": "Cele mai recente descărcări",
   "prefs_highlights_options_pocket_label": "Pagini salvate în Pocket",
   "prefs_snippets_description": "Știri de la Mozilla și Firefox",
   "settings_pane_button_label": "Particularizează pagina de filă nouă",
-  "settings_pane_header": "Preferințe pentru filă nouă",
-  "settings_pane_body2": "Alege ceea ce vezi pe această pagină.",
-  "settings_pane_search_header": "Caută",
-  "settings_pane_search_body": "Caută pe web din noua filă.",
   "settings_pane_topsites_header": "Site-uri de top",
-  "settings_pane_topsites_body": "Accesează site-urile pe care le vizitezi mai des.",
-  "settings_pane_topsites_options_showmore": "Arată două rânduri",
   "settings_pane_highlights_header": "Evidențieri",
-  "settings_pane_highlights_body2": "Regăsește lucrurile interesante pe care le-ai vizitat sau marcat recent.",
   "settings_pane_highlights_options_bookmarks": "Marcaje",
-  "settings_pane_highlights_options_visited": "Site-uri vizitate",
   "settings_pane_snippets_header": "Fragmente",
-  "settings_pane_snippets_body": "Citește actualizări scurte de la Mozilla despre Firefox, cultura internetului și meme-ul ocazional aleatoriu.",
-  "settings_pane_done_button": "Gata",
-  "settings_pane_topstories_options_sponsored": "Arată articolele sponsorizate",
   "edit_topsites_button_text": "Editează",
   "edit_topsites_edit_button": "Editează acest site",
   "topsites_form_add_header": "Site de top nou",
   "topsites_form_edit_header": "Editează site-ul de top",
   "topsites_form_title_label": "Titlu",
   "topsites_form_title_placeholder": "Introdu un titlu",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL pentru imagine personalizată",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Previzualizare",
   "topsites_form_add_button": "Adaugă",
   "topsites_form_save_button": "Salvează",
   "topsites_form_cancel_button": "Renunță",
   "topsites_form_url_validation": "URL valid necesar",
   "topsites_form_image_validation": "Imaginea nu s-a încărcat. Încearcă o altă adresă.",
   "pocket_read_more": "Subiecte populare:",
   "pocket_read_even_more": "Vezi mai multe articole",
-  "pocket_description": "Descoperă conținut de calitate pe care l-ai putea rata, cu ajutorul Pocket, acum parte din Mozilla.",
   "highlights_empty_state": "Începe să navighezi și noi îți vom arăta articole interesante, videouri sau alte pagini pe care le-ai vizitat sau marcat recent.",
   "topstories_empty_state": "Ai ajuns la capăt. Revino mai târziu pentru alte articole de la {provider}. Nu mai vrei să aștepți? Selectează un subiect popular și găsește alte articole interesante de pe web.",
   "manual_migration_explanation2": "Încearcă Firefox cu marcajele, istoricul și parolele din alt browser.",
   "manual_migration_cancel_button": "Nu, mulțumesc",
   "manual_migration_import_button": "Importă acum",
   "error_fallback_default_info": "Ups, ceva a mers prost la încărcarea acestui conținut.",
   "error_fallback_default_refresh_suggestion": "Reîmprospătează pagina pentru a încerca din nou.",
   "section_menu_action_remove_section": "Elimină secțiunea",
   "section_menu_action_collapse_section": "Restrânge secțiunea",
   "section_menu_action_expand_section": "Extinde secțiunea",
   "section_menu_action_manage_section": "Gestionează secțiunea",
   "section_menu_action_add_topsite": "Adaugă site de top",
   "section_menu_action_move_up": "Mută în sus",
   "section_menu_action_move_down": "Mută în jos",
-  "section_menu_action_privacy_notice": "Politica de confidențialitate"
+  "section_menu_action_privacy_notice": "Politica de confidențialitate",
+  "prefs_restore_defaults_button": "Restaurează valorile implicite",
+  "settings_pane_header": "Preferințe pentru filă nouă",
+  "settings_pane_body2": "Alege ceea ce vezi pe această pagină.",
+  "settings_pane_search_header": "Caută",
+  "settings_pane_search_body": "Caută pe web din noua filă.",
+  "settings_pane_topsites_body": "Accesează site-urile pe care le vizitezi mai des.",
+  "settings_pane_topsites_options_showmore": "Arată două rânduri",
+  "settings_pane_highlights_body2": "Regăsește lucrurile interesante pe care le-ai vizitat sau marcat recent.",
+  "settings_pane_highlights_options_visited": "Site-uri vizitate",
+  "settings_pane_snippets_body": "Citește actualizări scurte de la Mozilla despre Firefox, cultura internetului și meme-ul ocazional aleatoriu.",
+  "settings_pane_done_button": "Gata",
+  "settings_pane_topstories_options_sponsored": "Arată articolele sponsorizate",
+  "pocket_description": "Descoperă conținut de calitate pe care l-ai putea rata, cu ajutorul Pocket, acum parte din Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Искать в Интернете</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Искать в Интернете" title="Искать в Интернете"/><button id="searchSubmit" class="search-button" title="Искать"><span class="sr-only"><span>Искать</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Топ сайтов</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Открыть контекстное меню раздела</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Изменить этот сайт"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Рекомендовано Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Открыть контекстное меню раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Популярные темы:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Избранное</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Открыть контекстное меню раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Настроить свою страницу новой вкладки"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Искать",
   "search_header": "Искать в {search_engine_name}",
   "search_web_placeholder": "Искать в Интернете",
   "section_disclaimer_topstories": "Самые интересные статьи со всего Интернета, выбираемые на основе ваших интересов. От Pocket, который теперь является частью Mozilla.",
   "section_disclaimer_topstories_linktext": "Узнайте, как это работает.",
   "section_disclaimer_topstories_buttontext": "Ок, понятно",
   "prefs_home_header": "Домашний экран Firefox",
   "prefs_home_description": "Выберите, какое содержимое вы хотите видеть на домашнем экране Firefox.",
-  "prefs_restore_defaults_button": "Восстановить по умолчанию",
   "prefs_section_rows_option": "{num} столбец;{num} столбца;{num} столбцов",
   "prefs_search_header": "Поиск в Интернете",
   "prefs_topsites_description": "Сайты, которые вы чаще всего посещаете",
   "prefs_topstories_description2": "Отличный контент со всего Интернета, отобранный по вашему вкусу",
   "prefs_topstories_options_sponsored_label": "Статьи спонсоров",
   "prefs_topstories_sponsored_learn_more": "Подробнее",
   "prefs_highlights_description": "Избранные сайты, которые вы сохранили или посещали",
   "prefs_highlights_options_visited_label": "Посещённые страницы",
   "prefs_highlights_options_download_label": "Недавние загрузки",
   "prefs_highlights_options_pocket_label": "Страницы, сохранённые в Pocket",
   "prefs_snippets_description": "Обновления от Mozilla и Firefox",
   "settings_pane_button_label": "Настроить свою страницу новой вкладки",
-  "settings_pane_header": "Настройки новой вкладки",
-  "settings_pane_body2": "Выберите, что вы увидите на этой странице.",
-  "settings_pane_search_header": "Поиск",
-  "settings_pane_search_body": "Поиск в Интернете с вашей новой вкладки.",
   "settings_pane_topsites_header": "Топ сайтов",
-  "settings_pane_topsites_body": "Получите доступ к сайтам, которые вы посещаете чаще всего.",
-  "settings_pane_topsites_options_showmore": "Показать в два ряда",
   "settings_pane_highlights_header": "Избранное",
-  "settings_pane_highlights_body2": "Найдите способ вернуться к интересным страницам, которые вы недавно посетили или добавили в закладки.",
   "settings_pane_highlights_options_bookmarks": "Закладки",
-  "settings_pane_highlights_options_visited": "Посещённые сайты",
   "settings_pane_snippets_header": "Заметки",
-  "settings_pane_snippets_body": "Читайте короткие и радостные новости от Mozilla о Firefox, интернет-культуру и случайные мемы.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Показывать статьи спонсоров",
   "edit_topsites_button_text": "Изменить",
   "edit_topsites_edit_button": "Изменить этот сайт",
   "topsites_form_add_header": "Новый сайт в топе",
   "topsites_form_edit_header": "Изменить сайт из топа",
   "topsites_form_title_label": "Заголовок",
   "topsites_form_title_placeholder": "Введите название",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Свой URL изображения",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Предпросмотр",
   "topsites_form_add_button": "Добавить",
   "topsites_form_save_button": "Сохранить",
   "topsites_form_cancel_button": "Отмена",
   "topsites_form_url_validation": "Введите корректный URL",
   "topsites_form_image_validation": "Изображение не загрузилось. Попробуйте использовать другой URL.",
   "pocket_read_more": "Популярные темы:",
   "pocket_read_even_more": "Больше статей",
-  "pocket_description": "Откройте для себя высококачественный контент, который вы могли бы пропустить, с помощью Pocket, теперь ставшего частью Mozilla.",
   "highlights_empty_state": "Начните веб-сёрфинг, и мы покажем вам здесь некоторые из интересных статей, видеороликов и других страниц, которые вы недавно посетили или добавили в закладки.",
   "topstories_empty_state": "Вы всё прочитали. Зайдите попозже, чтобы увидеть больше лучших статей от {provider}. Не можете ждать? Выберите популярную тему, чтобы найти больше интересных статей со всего Интернета.",
   "manual_migration_explanation2": "Попробуйте Firefox с закладками, историей и паролями из другого браузера.",
   "manual_migration_cancel_button": "Нет, спасибо",
   "manual_migration_import_button": "Импортировать сейчас",
   "error_fallback_default_info": "К сожалению что-то пошло не так при загрузке этого содержимого.",
   "error_fallback_default_refresh_suggestion": "Обновите страницу, чтобы повторить попытку.",
   "section_menu_action_remove_section": "Удалить раздел",
   "section_menu_action_collapse_section": "Свернуть раздел",
   "section_menu_action_expand_section": "Развернуть раздел",
   "section_menu_action_manage_section": "Управление разделом",
   "section_menu_action_add_topsite": "Добавить в топ сайтов",
   "section_menu_action_move_up": "Вверх",
   "section_menu_action_move_down": "Вниз",
-  "section_menu_action_privacy_notice": "Уведомление о приватности"
+  "section_menu_action_privacy_notice": "Уведомление о приватности",
+  "prefs_restore_defaults_button": "Восстановить по умолчанию",
+  "settings_pane_header": "Настройки новой вкладки",
+  "settings_pane_body2": "Выберите, что вы увидите на этой странице.",
+  "settings_pane_search_header": "Поиск",
+  "settings_pane_search_body": "Поиск в Интернете с вашей новой вкладки.",
+  "settings_pane_topsites_body": "Получите доступ к сайтам, которые вы посещаете чаще всего.",
+  "settings_pane_topsites_options_showmore": "Показать в два ряда",
+  "settings_pane_highlights_body2": "Найдите способ вернуться к интересным страницам, которые вы недавно посетили или добавили в закладки.",
+  "settings_pane_highlights_options_visited": "Посещённые сайты",
+  "settings_pane_snippets_body": "Читайте короткие и радостные новости от Mozilla о Firefox, интернет-культуру и случайные мемы.",
+  "settings_pane_done_button": "Готово",
+  "settings_pane_topstories_options_sponsored": "Показывать статьи спонсоров",
+  "pocket_description": "Откройте для себя высококачественный контент, который вы могли бы пропустить, с помощью Pocket, теперь ставшего частью Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ජාලය තුළ සොයන්න</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ජාලය තුළ සොයන්න" title="ජාලය තුළ සොයන්න"/><button id="searchSubmit" class="search-button" title="සොයන්න"><span class="sr-only"><span>සොයන්න</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ප්‍රමුඛ අඩවි</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="මෙම අඩවිය සකසන්න"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket විසින් නිර්දේශිතයි</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ජනප්‍රිය මාතෘකා:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>ඉස්මතු කිරීම්</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="ඔබේ නව ටැබ පිටුව රුචිකරණය කරන්න"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "සොයන්න",
   "search_header": "{search_engine_name} ෙසවුම",
   "search_web_placeholder": "ජාලය තුළ සොයන්න",
   "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": "එය ක්‍රියාකරන්නේ කෙසේදැයි අධ්‍යපනය කරන්න.",
   "section_disclaimer_topstories_buttontext": "හරි, තේරුණා",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "ඔබේ නව ටැබ පිටුව රුචිකරණය කරන්න",
-  "settings_pane_header": "නව ටැබ අභිප්‍රේත",
-  "settings_pane_body2": "මෙම පිටුවේ ඔබ දැකිය යුතු දේ තෝරන්න.",
-  "settings_pane_search_header": "සොයන්න",
-  "settings_pane_search_body": "ඔබේ නව ටැබයෙන් වෙබ් සෙවීම.",
   "settings_pane_topsites_header": "ප්‍රමුඛ අඩවි",
-  "settings_pane_topsites_body": "ඔබ නිරතුරුව පිවිසෙන වෙබ් අඩවි වෙත ප්‍රවේශය.",
-  "settings_pane_topsites_options_showmore": "පේළි දෙකක් පෙන්වන්න",
   "settings_pane_highlights_header": "ඉස්මතු කිරීම්",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "පිටු සලකුණු",
-  "settings_pane_highlights_options_visited": "පිවිසුණු අඩවි",
   "settings_pane_snippets_header": "Snippets",
-  "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": "අනුග්‍රහක පුවත් පෙන්වන්න",
   "edit_topsites_button_text": "සැකසුම්",
   "edit_topsites_edit_button": "මෙම අඩවිය සකසන්න",
   "topsites_form_add_header": "නව ප්‍රමුඛ අඩවියක්",
   "topsites_form_edit_header": "ප්‍රමුඛ අඩවිය සකසන්න",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "සිරස්තල එක් කරන්න",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "එක් කරන්න",
   "topsites_form_save_button": "සුරකින්න",
   "topsites_form_cancel_button": "අවලංගු කරන්න",
   "topsites_form_url_validation": "වලංගු URL එකක් අවශ්‍ය වේ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "ජනප්‍රිය මාතෘකා:",
   "pocket_read_even_more": "තවත් බොහෝ දැ",
-  "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.",
   "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": "Firefox වෙනත් ගවේශයකය පිටය සලකුණු, අතීතය සහ මුරපද සමග උත්සාහ කර බලන්න.",
   "manual_migration_cancel_button": "එපා, ස්තුතියි",
   "manual_migration_import_button": "දැන් ආයාත කරන්න",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,17 +108,25 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "පෞද්ගලිකත්ව දැනුම්දීම්",
   "welcome_title": "නව ටැබයට සාදරයෙන් පිළිගනිමු",
   "welcome_body": "ඔබට පහසුවෙන් යළි භාවිතයට පහසු කරවීමට, Firefox මෙම ඉඩ ඔබට වඩාත් අදාල පිටු සළකුණු, ලිපි, විඩියෝ සහ ඔබ මෑතකදී පිවිසි පිටු පෙන්වීම සදහා භාවිත කරයි.",
   "welcome_label": "ඔබේ ඉස්මතු කිරීම් හදුනාගනිමින්",
   "time_label_less_than_minute": "<1m",
   "time_label_minute": "{number} මිනිත්තු",
   "time_label_hour": "{number}පැය",
   "time_label_day": "{number}දින",
+  "settings_pane_header": "නව ටැබ අභිප්‍රේත",
+  "settings_pane_body2": "මෙම පිටුවේ ඔබ දැකිය යුතු දේ තෝරන්න.",
+  "settings_pane_search_header": "සොයන්න",
+  "settings_pane_search_body": "ඔබේ නව ටැබයෙන් වෙබ් සෙවීම.",
+  "settings_pane_topsites_body": "ඔබ නිරතුරුව පිවිසෙන වෙබ් අඩවි වෙත ප්‍රවේශය.",
+  "settings_pane_topsites_options_showmore": "පේළි දෙකක් පෙන්වන්න",
   "settings_pane_bookmarks_header": "නැවුම් පිටු සලකුණු",
   "settings_pane_bookmarks_body": "ඔබේ නැවුම් පිටු සලකුණු එක් ස්ථානයක.",
   "settings_pane_visit_again_header": "යළි පිවිසෙන්න",
+  "settings_pane_highlights_options_visited": "පිවිසුණු අඩවි",
+  "settings_pane_topstories_options_sponsored": "අනුග්‍රහක පුවත් පෙන්වන්න",
   "edit_topsites_showmore_button": "තවත් පෙන්වන්න",
   "edit_topsites_showless_button": "අඩුවෙන් පෙන්වන්න",
   "edit_topsites_done_button": "කළා",
   "edit_topsites_dismiss_button": "මෙම අඩවිය ඉවත ලන්න",
   "edit_topsites_add_button": "එක් කරන්න"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Vyhľadávanie na webe</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Vyhľadávanie na webe" title="Vyhľadávanie na webe"/><button id="searchSubmit" class="search-button" title="Hľadať"><span class="sr-only"><span>Hľadať</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top stránky</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorí kontextovú ponuku sekcie</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Upraviť túto stránku"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Odporúča Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorí kontextovú ponuku sekcie</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populárne témy:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Vybrané stránky</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Otvorí kontextovú ponuku sekcie</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Prispôsobte si svoju stránku Nová karta"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Hľadať",
   "search_header": "Vyhľadávanie pomocou {search_engine_name}",
   "search_web_placeholder": "Vyhľadávanie na webe",
   "section_disclaimer_topstories": "Najzaujímavejšie príbehy na webe, vybrané na základe toho, čo čítate. Od Pocketu, súčasti Mozilly.",
   "section_disclaimer_topstories_linktext": "Pozrite sa, ako to funguje.",
   "section_disclaimer_topstories_buttontext": "Ok, rozumiem",
   "prefs_home_header": "Obsah domovskej stránky Firefoxu",
   "prefs_home_description": "Vyberte si obsah, ktorý chcete mať na domovskej stránke svojho Firefoxu.",
-  "prefs_restore_defaults_button": "Obnoviť predvolené",
   "prefs_section_rows_option": "{num} riadok;{num} riadky;{num} riadkov",
   "prefs_search_header": "Vyhľadávanie na webe",
   "prefs_topsites_description": "Najnavštevovanejšie stránky",
   "prefs_topstories_description2": "Skvelý obsah z celého webu, vybraný špeciálne pre vás",
   "prefs_topstories_options_sponsored_label": "Sponzorované stránky",
   "prefs_topstories_sponsored_learn_more": "Ďalšie informácie",
   "prefs_highlights_description": "Výber stránok, ktoré ste si uložili alebo ste ich navštívili",
   "prefs_highlights_options_visited_label": "Navštívené stránky",
   "prefs_highlights_options_download_label": "Nedávne prevzatia",
   "prefs_highlights_options_pocket_label": "Stránky uložené do služby Pocket",
   "prefs_snippets_description": "Informácie od Mozilly a od Firefoxu",
   "settings_pane_button_label": "Prispôsobte si svoju stránku Nová karta",
-  "settings_pane_header": "Nastavenia Novej karty",
-  "settings_pane_body2": "Vyberte si, čo chcete na tejto stránke vidieť.",
-  "settings_pane_search_header": "Vyhľadávanie",
-  "settings_pane_search_body": "Vyhľadávanie zo stránky novej karty.",
   "settings_pane_topsites_header": "Top stránky",
-  "settings_pane_topsites_body": "Prístup k webovým stránkam, ktoré navštevujete najčastejšie.",
-  "settings_pane_topsites_options_showmore": "Zobraziť dva riadky",
   "settings_pane_highlights_header": "Vybrané stránky",
-  "settings_pane_highlights_body2": "Pozrite sa na zaujímavé stránky, ktoré ste nedávno navštívili alebo pridali do záložiek.",
   "settings_pane_highlights_options_bookmarks": "Záložky",
-  "settings_pane_highlights_options_visited": "Navštívené stránky",
   "settings_pane_snippets_header": "Snippety",
-  "settings_pane_snippets_body": "Prečítajte si krátke správy od Mozilly o Firefoxe či internetovej kultúre. Občas uvidíte aj náhodné meme.",
-  "settings_pane_done_button": "Hotovo",
-  "settings_pane_topstories_options_sponsored": "Zobraziť sponzorované stránky",
   "edit_topsites_button_text": "Upraviť",
   "edit_topsites_edit_button": "Upraviť túto stránku",
   "topsites_form_add_header": "Nová top stránka",
   "topsites_form_edit_header": "Upraviť top stránku",
   "topsites_form_title_label": "Názov",
   "topsites_form_title_placeholder": "Zadajte názov",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL adresa vlastného obrázku",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ukážka",
   "topsites_form_add_button": "Pridať",
   "topsites_form_save_button": "Uložiť",
   "topsites_form_cancel_button": "Zrušiť",
   "topsites_form_url_validation": "Vyžaduje sa platná URL",
   "topsites_form_image_validation": "Obrázok sa nepodarilo načítať. Skúste inú URL adresu.",
   "pocket_read_more": "Populárne témy:",
   "pocket_read_even_more": "Zobraziť ďalšie príbehy",
-  "pocket_description": "Objavte vysokokvalitný obsah, ktorý by ste inak prepásli. Pomôže vám s tým Pocket, súčasť Mozilly.",
   "highlights_empty_state": "Začnite s prehliadaním a my vám na tomto mieste ukážeme skvelé články, videá a ostatné stránky, ktoré ste nedávno navštívili alebo pridali medzi záložky.",
   "topstories_empty_state": "Už ste prečítali všetko. Ďalšie príbehy zo služby {provider} tu nájdete opäť neskôr. Nemôžete sa dočkať? Vyberte si populárnu tému a pozrite sa na ďalšie skvelé príbehy z celého webu.",
   "manual_migration_explanation2": "Vyskúšajte Firefox so záložkami, históriou prehliadania a heslami s iných prehliadačov.",
   "manual_migration_cancel_button": "Nie, ďakujem",
   "manual_migration_import_button": "Importovať teraz",
   "error_fallback_default_info": "Hups, pri načítavaní tohto obsahu sa niečo pokazilo.",
   "error_fallback_default_refresh_suggestion": "Obnovením stránky to skúsite znova.",
   "section_menu_action_remove_section": "Odstrániť sekciu",
   "section_menu_action_collapse_section": "Zbaliť sekciu",
   "section_menu_action_expand_section": "Rozbaliť sekciu",
   "section_menu_action_manage_section": "Spravovať sekciu",
   "section_menu_action_add_topsite": "Pridať top stránku",
   "section_menu_action_move_up": "Posunúť vyššie",
   "section_menu_action_move_down": "Posunúť nižšie",
-  "section_menu_action_privacy_notice": "Zásady ochrany súkromia"
+  "section_menu_action_privacy_notice": "Zásady ochrany súkromia",
+  "prefs_restore_defaults_button": "Obnoviť predvolené",
+  "settings_pane_header": "Nastavenia Novej karty",
+  "settings_pane_body2": "Vyberte si, čo chcete na tejto stránke vidieť.",
+  "settings_pane_search_header": "Vyhľadávanie",
+  "settings_pane_search_body": "Vyhľadávanie zo stránky novej karty.",
+  "settings_pane_topsites_body": "Prístup k webovým stránkam, ktoré navštevujete najčastejšie.",
+  "settings_pane_topsites_options_showmore": "Zobraziť dva riadky",
+  "settings_pane_highlights_body2": "Pozrite sa na zaujímavé stránky, ktoré ste nedávno navštívili alebo pridali do záložiek.",
+  "settings_pane_highlights_options_visited": "Navštívené stránky",
+  "settings_pane_snippets_body": "Prečítajte si krátke správy od Mozilly o Firefoxe či internetovej kultúre. Občas uvidíte aj náhodné meme.",
+  "settings_pane_done_button": "Hotovo",
+  "settings_pane_topstories_options_sponsored": "Zobraziť sponzorované stránky",
+  "pocket_description": "Objavte vysokokvalitný obsah, ktorý by ste inak prepásli. Pomôže vám s tým Pocket, súčasť Mozilly."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Iskanje po spletu</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Iskanje po spletu" title="Iskanje po spletu"/><button id="searchSubmit" class="search-button" title="Iskanje"><span class="sr-only"><span>Iskanje</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Glavne strani</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Odpri priročni meni odseka</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Uredi to stran"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Priporoča Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Odpri priročni meni odseka</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Priljubljene teme:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Poudarki</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Odpri priročni meni odseka</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Prilagodite stran novega zavihka"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Iskanje",
   "search_header": "Iskanje {search_engine_name}",
   "search_web_placeholder": "Iskanje po spletu",
   "section_disclaimer_topstories": "Najbolj zanimive zgodbe na spletu, izbrane na podlagi vašega branja. Iz Pocketa, ki je zdaj del Mozille.",
   "section_disclaimer_topstories_linktext": "Spoznajte, kako deluje.",
   "section_disclaimer_topstories_buttontext": "Razumem",
   "prefs_home_header": "Vsebina domače strani Firefoxa",
   "prefs_home_description": "Izberite vsebino, ki jo želite prikazati na domači strani Firefoxa.",
-  "prefs_restore_defaults_button": "Povrni privzeto",
   "prefs_section_rows_option": "{num} vrstica;{num} vrstici;{num} vrstice;{num} vrstic",
   "prefs_search_header": "Iskanje po spletu",
   "prefs_topsites_description": "Strani, ki jih največkrat obiščete",
   "prefs_topstories_description2": "Odlična vsebina iz celega spleta, prilagojena vašemu okusu",
   "prefs_topstories_options_sponsored_label": "Zgodbe oglaševalcev",
   "prefs_topstories_sponsored_learn_more": "Več o tem",
   "prefs_highlights_description": "Izbor strani, ki ste jih shranili ali obiskali",
   "prefs_highlights_options_visited_label": "Obiskane strani",
   "prefs_highlights_options_download_label": "Najnovejši prenos",
   "prefs_highlights_options_pocket_label": "Strani, shranjene v Pocket",
   "prefs_snippets_description": "Novice iz sveta Mozille in Firefoxa",
   "settings_pane_button_label": "Prilagodite stran novega zavihka",
-  "settings_pane_header": "Nastavitve novega zavihka",
-  "settings_pane_body2": "Izberite, kaj želite videti na tej strani.",
-  "settings_pane_search_header": "Iskanje",
-  "settings_pane_search_body": "Iščite po spletu z novega zavihka.",
   "settings_pane_topsites_header": "Glavne strani",
-  "settings_pane_topsites_body": "Priročen dostop do najbolj obiskanih strani.",
-  "settings_pane_topsites_options_showmore": "Prikaži dve vrsti",
   "settings_pane_highlights_header": "Poudarki",
-  "settings_pane_highlights_body2": "Najdite pot nazaj do zanimivih strani, ki ste jih nedavno obiskali ali dodali med zaznamke.",
   "settings_pane_highlights_options_bookmarks": "Zaznamki",
-  "settings_pane_highlights_options_visited": "Obiskane strani",
   "settings_pane_snippets_header": "Izrezki",
-  "settings_pane_snippets_body": "Spremljajte kratke novice o Mozilli in Firefoxu, kulturi interneta in si občasno oglejte kak meme.",
-  "settings_pane_done_button": "Končano",
-  "settings_pane_topstories_options_sponsored": "Prikaži zgodbe oglaševalcev",
   "edit_topsites_button_text": "Uredi",
   "edit_topsites_edit_button": "Uredi to stran",
   "topsites_form_add_header": "Nova glavna stran",
   "topsites_form_edit_header": "Uredi glavno stran",
   "topsites_form_title_label": "Naslov",
   "topsites_form_title_placeholder": "Vnesite ime",
   "topsites_form_url_label": "Spletni naslov",
   "topsites_form_image_url_label": "Spletni naslov slike po meri",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Predogled",
   "topsites_form_add_button": "Dodaj",
   "topsites_form_save_button": "Shrani",
   "topsites_form_cancel_button": "Prekliči",
   "topsites_form_url_validation": "Vnesite veljaven spletni naslov",
   "topsites_form_image_validation": "Slike ni bilo mogoče naložiti. Poskusite drug spletni naslov.",
   "pocket_read_more": "Priljubljene teme:",
   "pocket_read_even_more": "Prikaži več vesti",
-  "pocket_description": "Odkrijte kakovostno vsebino, ki bi jo sicer spregledali, s pomočjo Pocketa (zdaj dela Mozille).",
   "highlights_empty_state": "Začnite z brskanjem, mi pa vam bomo tu prikazovali odlične članke, videoposnetke ter druge strani, ki ste jih nedavno obiskali ali shranili med zaznamke.",
   "topstories_empty_state": "Zdaj ste seznanjeni z novicami. Vrnite se pozneje in si oglejte nove prispevke iz {provider}. Komaj čakate? Izberite priljubljeno temo in odkrijte več velikih zgodb na spletu.",
   "manual_migration_explanation2": "Preskusite Firefox z zaznamki, zgodovino in gesli iz drugega brskalnika.",
   "manual_migration_cancel_button": "Ne, hvala",
   "manual_migration_import_button": "Uvozi zdaj",
   "error_fallback_default_info": "Ojoj, pri nalaganju te vsebine je šlo nekaj narobe.",
   "error_fallback_default_refresh_suggestion": "Osvežite stran za ponoven poskus.",
   "section_menu_action_remove_section": "Odstrani odsek",
   "section_menu_action_collapse_section": "Strni odsek",
   "section_menu_action_expand_section": "Razširi odsek",
   "section_menu_action_manage_section": "Upravljanje odseka",
   "section_menu_action_add_topsite": "Dodaj glavno stran",
   "section_menu_action_move_up": "Premakni gor",
   "section_menu_action_move_down": "Premakni dol",
-  "section_menu_action_privacy_notice": "Obvestilo o zasebnosti"
+  "section_menu_action_privacy_notice": "Obvestilo o zasebnosti",
+  "prefs_restore_defaults_button": "Povrni privzeto",
+  "settings_pane_header": "Nastavitve novega zavihka",
+  "settings_pane_body2": "Izberite, kaj želite videti na tej strani.",
+  "settings_pane_search_header": "Iskanje",
+  "settings_pane_search_body": "Iščite po spletu z novega zavihka.",
+  "settings_pane_topsites_body": "Priročen dostop do najbolj obiskanih strani.",
+  "settings_pane_topsites_options_showmore": "Prikaži dve vrsti",
+  "settings_pane_highlights_body2": "Najdite pot nazaj do zanimivih strani, ki ste jih nedavno obiskali ali dodali med zaznamke.",
+  "settings_pane_highlights_options_visited": "Obiskane strani",
+  "settings_pane_snippets_body": "Spremljajte kratke novice o Mozilli in Firefoxu, kulturi interneta in si občasno oglejte kak meme.",
+  "settings_pane_done_button": "Končano",
+  "settings_pane_topstories_options_sponsored": "Prikaži zgodbe oglaševalcev",
+  "pocket_description": "Odkrijte kakovostno vsebino, ki bi jo sicer spregledali, s pomočjo Pocketa (zdaj dela Mozille)."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Kërkoni në Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Kërkoni në Web" title="Kërkoni në Web"/><button id="searchSubmit" class="search-button" title="Kërko"><span class="sr-only"><span>Kërko</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sajte Kryesues</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Hap menu konteksti ndarjeje</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Përpunoni këtë sajt"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Rekomanduar nga Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Hap menu konteksti ndarjeje</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Tema Popullore:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Hap menu konteksti ndarjeje</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizoni faqen tuaj Skedë e Re"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Kërko",
   "search_header": "Kërkim me {search_engine_name}",
   "search_web_placeholder": "Kërkoni në Web",
   "section_disclaimer_topstories": "Historitë më interesante në internet, të përzgjedhura mbi bazën e çka lexoni. Nga Pocket-i, tani pjesë e Mozilla-.",
   "section_disclaimer_topstories_linktext": "Mësoni se si funksionon.",
   "section_disclaimer_topstories_buttontext": "OK, e mora vesh",
   "prefs_home_header": "Lëndë Firefox Home",
   "prefs_home_description": "Zgjidhni ç’lëndë doni në skenën tuaj Firefox.",
-  "prefs_restore_defaults_button": "Rikthe Parazgjedhjet",
   "prefs_section_rows_option": "{num} rresht;{num} rreshta",
   "prefs_search_header": "Kërkim Web",
   "prefs_topsites_description": "Sajtet që vizitoni më tepër",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Mësoni më tepër",
   "prefs_highlights_description": "Një përzgjedhje të sajteve që keni ruajtur ose vizituar",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Përditësime nga Mozilla dhe Firefox-i",
   "settings_pane_button_label": "Personalizoni faqen tuaj Skedë e Re",
-  "settings_pane_header": "Parapëlqime për Skedë të Re",
-  "settings_pane_body2": "Zgjidhni ç’të shihni në këtë faqe.",
-  "settings_pane_search_header": "Kërko",
-  "settings_pane_search_body": "Kërkoni në Web prej skedës tuaj të re.",
   "settings_pane_topsites_header": "Sajte Kryesues",
-  "settings_pane_topsites_body": "Hyni te sajtet që vizitoni më shpesh.",
-  "settings_pane_topsites_options_showmore": "Shfaq dy rreshta",
   "settings_pane_highlights_header": "Highlights",
-  "settings_pane_highlights_body2": "Gjeni rrugën për t’u rikthyer te gjëra interesante që keni vizituar apo faqerojtur së fundi.",
   "settings_pane_highlights_options_bookmarks": "Faqerojtës",
-  "settings_pane_highlights_options_visited": "Sajte të Vizituar",
   "settings_pane_snippets_header": "Copëza",
-  "settings_pane_snippets_body": "Lexoni rreth Firefox-it përditësime të shkurtra dhe të ngrohta nga Mozilla, kulturën e internetit, dhe memes kutur të rastësishme.",
-  "settings_pane_done_button": "U bë",
-  "settings_pane_topstories_options_sponsored": "Shfaq Histori të Sponsorizuara",
   "edit_topsites_button_text": "Përpunoni",
   "edit_topsites_edit_button": "Përpunoni këtë sajt",
   "topsites_form_add_header": "Sajt i Ri Kryesues",
   "topsites_form_edit_header": "Përpunoni Sajtin Kryesues",
   "topsites_form_title_label": "Titull",
   "topsites_form_title_placeholder": "Jepni një titull",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL Figure Vetjake",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Paraparje",
   "topsites_form_add_button": "Shtoje",
   "topsites_form_save_button": "Ruaje",
   "topsites_form_cancel_button": "Anuloje",
   "topsites_form_url_validation": "Lypset URL e vlefshme",
   "topsites_form_image_validation": "Dështoi ngarkimi i figurës. Provoni një URL tjetër.",
   "pocket_read_more": "Tema Popullore:",
   "pocket_read_even_more": "Shihni Më Tepër Histori",
-  "pocket_description": "Zbuloni lëndë të cilësisë së lartë që ndryshe mund ta humbnit, me ndihmën e Pocket-it, tani pjesë e Mozilla-s.",
   "highlights_empty_state": "Filloni shfletimin, dhe do t'ju shfaqim disa nga artikujt, videot dhe të tjera faqe interesante që keni vizituar apo faqerojtur këtu kohët e fundit.",
   "topstories_empty_state": "Gjithë ç’kish, e dini. Rikontrolloni më vonë për më tepër histori nga {provider}. S’pritni dot? Përzgjidhni një temë popullore që të gjenden në internet më tepër histori të goditura.",
   "manual_migration_explanation2": "Provojeni Firefox-in me faqerojtës, historik dhe fjalëkalime nga një tjetër shfletues.",
   "manual_migration_cancel_button": "Jo, Faleminderit",
   "manual_migration_import_button": "Importoje Tani",
   "error_fallback_default_info": "Hëm, diç shkoi ters në ngarkimin e kësaj lënde.",
   "error_fallback_default_refresh_suggestion": "Rifreskoni faqen që të riprovohet.",
   "section_menu_action_remove_section": "Hiqe Ndarjen",
@@ -121,24 +108,37 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Shënim Mbi Privatësinë",
   "welcome_title": "Mirë se vini te skedë e re",
   "welcome_body": "Firefox-i do ta përdorë këtë hapësirë për t’ju shfaqur faqerojtësit, artikujt, videot dhe faqet më me peshë që keni vizituar së fundi, që kështu të mund të ktheheni lehtë në to.",
   "welcome_label": "Po identifikohen Highlights tuaj",
   "time_label_less_than_minute": "<1m",
   "time_label_minute": "{number}m",
   "time_label_hour": "{number}h",
   "time_label_day": "{number}d",
+  "prefs_restore_defaults_button": "Rikthe Parazgjedhjet",
   "prefs_topstories_description": "Lëndë cilësore që përndryshe mund ta hmbni",
   "prefs_topstories_show_sponsored_label": "Histori të Sponsorizura nga {provider}",
+  "settings_pane_header": "Parapëlqime për Skedë të Re",
+  "settings_pane_body2": "Zgjidhni ç’të shihni në këtë faqe.",
+  "settings_pane_search_header": "Kërko",
+  "settings_pane_search_body": "Kërkoni në Web prej skedës tuaj të re.",
+  "settings_pane_topsites_body": "Hyni te sajtet që vizitoni më shpesh.",
+  "settings_pane_topsites_options_showmore": "Shfaq dy rreshta",
   "settings_pane_bookmarks_header": "Faqerojtës Së Fundi",
   "settings_pane_bookmarks_body": "Faqerojtësit tuaj të krijuar së fundi, në një vend të volitshëm.",
   "settings_pane_visit_again_header": "Rivizitojeni",
   "settings_pane_visit_again_body": "Firefox-i do t’ju shfaqë pjesë të historikut tuaj të shfletimeve që mund të doni ta mbani mend ose ku të riktheheni.",
+  "settings_pane_highlights_body2": "Gjeni rrugën për t’u rikthyer te gjëra interesante që keni vizituar apo faqerojtur së fundi.",
+  "settings_pane_highlights_options_visited": "Sajte të Vizituar",
+  "settings_pane_snippets_body": "Lexoni rreth Firefox-it përditësime të shkurtra dhe të ngrohta nga Mozilla, kulturën e internetit, dhe memes kutur të rastësishme.",
+  "settings_pane_done_button": "U bë",
+  "settings_pane_topstories_options_sponsored": "Shfaq Histori të Sponsorizuara",
   "edit_topsites_button_label": "Personalizoni ndarjen tuaj Sajte Kryesues",
   "edit_topsites_showmore_button": "Shfaq më tepër",
   "edit_topsites_showless_button": "Shfaq më pak",
   "edit_topsites_done_button": "U bë",
   "edit_topsites_pin_button": "Fiksoje këtë sajt",
   "edit_topsites_unpin_button": "Hiqe fiksimin e këtij sajti",
   "edit_topsites_dismiss_button": "Hidhe tej këtë sajt",
   "edit_topsites_add_button": "Shtoni",
-  "pocket_feedback_header": "Ajka e web-it, nën kujdesin e mbi 25 milionë vetëve."
+  "pocket_feedback_header": "Ajka e web-it, nën kujdesin e mbi 25 milionë vetëve.",
+  "pocket_description": "Zbuloni lëndë të cilësisë së lartë që ndryshe mund ta humbnit, me ndihmën e Pocket-it, tani pjesë e Mozilla-s."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Претражи веб</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Претражи веб" title="Претражи веб"/><button id="searchSubmit" class="search-button" title="Претражи"><span class="sr-only"><span>Претражи</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Омиљени сајтови</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отворите секцију контекст менија</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Уреди овај сајт"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Предложио Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отворите секцију контекст менија</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Популарне теме:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Истакнуто</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отворите секцију контекст менија</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Прилагодите страницу новог језичка"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Претражи",
   "search_header": "{search_engine_name} претрага",
   "search_web_placeholder": "Претражи веб",
   "section_disclaimer_topstories": "Најинтересантније приче на вебу, изабране на основу онога што читате. Од Pocket-а, који је сада део Mozilla-е.",
   "section_disclaimer_topstories_linktext": "Сазнајте како ради.",
   "section_disclaimer_topstories_buttontext": "У реду",
   "prefs_home_header": "Садржај Firefox почетне странице",
   "prefs_home_description": "Изаберите садржај који желите видети на вашој Firefox почетној страници.",
-  "prefs_restore_defaults_button": "Врати подразумевано",
   "prefs_section_rows_option": "{num} ред;{num} реда;{num} редова",
   "prefs_search_header": "Веб претрага",
   "prefs_topsites_description": "Сајтови које највише посећујете",
   "prefs_topstories_description2": "Одличан садржај из целог света, персонализован за вас",
   "prefs_topstories_options_sponsored_label": "Спонзорисане приче",
   "prefs_topstories_sponsored_learn_more": "Сазнајте више",
   "prefs_highlights_description": "Изабрани сајтови које сте сачували или посетили",
   "prefs_highlights_options_visited_label": "Посећене странице",
   "prefs_highlights_options_download_label": "Најновије преузимање",
   "prefs_highlights_options_pocket_label": "Странице сачуване у Pocket",
   "prefs_snippets_description": "Новости од Mozilla-е и Firefox-а",
   "settings_pane_button_label": "Прилагодите страницу новог језичка",
-  "settings_pane_header": "Поставке новог језичка",
-  "settings_pane_body2": "Изаберите шта желите видети на овој страници.",
-  "settings_pane_search_header": "Претрага",
-  "settings_pane_search_body": "Претражујте веб из вашег новог језичка.",
   "settings_pane_topsites_header": "Омиљени сајтови",
-  "settings_pane_topsites_body": "Приступите најпосећенијим веб сајтовима.",
-  "settings_pane_topsites_options_showmore": "Прикажи у два реда",
   "settings_pane_highlights_header": "Истакнуто",
-  "settings_pane_highlights_body2": "Поново погледајте занимљиве ствари које сте скоро посетили или забележили.",
   "settings_pane_highlights_options_bookmarks": "Забелешке",
-  "settings_pane_highlights_options_visited": "Посећени сајтови",
   "settings_pane_snippets_header": "Исечци",
-  "settings_pane_snippets_body": "Читајте кратке новости од Mozilla-е о Firefox-у, интернет култури и погледајте понеки насумични мем.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Прикажи промовисане приче",
   "edit_topsites_button_text": "Уреди",
   "edit_topsites_edit_button": "Уреди овај сајт",
   "topsites_form_add_header": "Нови омиљени сајт",
   "topsites_form_edit_header": "Уреди популарне сајтове",
   "topsites_form_title_label": "Наслов",
   "topsites_form_title_placeholder": "Унесите наслов",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL прилагођене слике",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Преглед",
   "topsites_form_add_button": "Додај",
   "topsites_form_save_button": "Сачувај",
   "topsites_form_cancel_button": "Откажи",
   "topsites_form_url_validation": "Исправан URL се захтева",
   "topsites_form_image_validation": "Нисам успео да учитам слику. Пробајте са другим URL-ом.",
   "pocket_read_more": "Популарне теме:",
   "pocket_read_even_more": "Погледајте још прича",
-  "pocket_description": "Откријте високо квалитетан садржај који можда не бисте видели, уз помоћ Pocket-а који је сада део Mozilla-е.",
   "highlights_empty_state": "Почните са коришћењем веба а ми ћемо вам овде приказивати неке од одличних чланака, видео записа и других страница које сте скоро посетили.",
   "topstories_empty_state": "Вратите се касније за нове вести {provider}. Не можете дочекати? Изаберите популарну тему да пронађете још занимљивих вести из света.",
   "manual_migration_explanation2": "Пробајте FIrefox са коришћењем забелешки, историјата и лозинки из другог прегледача.",
   "manual_migration_cancel_button": "Не, хвала",
   "manual_migration_import_button": "Увези сада",
   "error_fallback_default_info": "Упс, дошло је до грешке приликом учитавања овог садржаја.",
   "error_fallback_default_refresh_suggestion": "Освежите страницу да покушате поново.",
   "section_menu_action_remove_section": "Уклони секцију",
   "section_menu_action_collapse_section": "Скупи секцију",
   "section_menu_action_expand_section": "Прошири секцију",
   "section_menu_action_manage_section": "Управљај секцијом",
   "section_menu_action_add_topsite": "Додај омиљени сајт",
   "section_menu_action_move_up": "Помери горе",
   "section_menu_action_move_down": "Помери доле",
-  "section_menu_action_privacy_notice": "Обавештење о приватности"
+  "section_menu_action_privacy_notice": "Обавештење о приватности",
+  "prefs_restore_defaults_button": "Врати подразумевано",
+  "settings_pane_header": "Поставке новог језичка",
+  "settings_pane_body2": "Изаберите шта желите видети на овој страници.",
+  "settings_pane_search_header": "Претрага",
+  "settings_pane_search_body": "Претражујте веб из вашег новог језичка.",
+  "settings_pane_topsites_body": "Приступите најпосећенијим веб сајтовима.",
+  "settings_pane_topsites_options_showmore": "Прикажи у два реда",
+  "settings_pane_highlights_body2": "Поново погледајте занимљиве ствари које сте скоро посетили или забележили.",
+  "settings_pane_highlights_options_visited": "Посећени сајтови",
+  "settings_pane_snippets_body": "Читајте кратке новости од Mozilla-е о Firefox-у, интернет култури и погледајте понеки насумични мем.",
+  "settings_pane_done_button": "Готово",
+  "settings_pane_topstories_options_sponsored": "Прикажи промовисане приче",
+  "pocket_description": "Откријте високо квалитетан садржај који можда не бисте видели, уз помоћ Pocket-а који је сада део Mozilla-е."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Sök på webben</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Sök på webben" title="Sök på webben"/><button id="searchSubmit" class="search-button" title="Sök"><span class="sr-only"><span>Sök</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Mest besökta</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Öppna sektionens snabbmeny</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Redigera denna webbplats"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Rekommenderas av Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Öppna sektionens snabbmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Populära ämnen:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Höjdpunkter</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Öppna sektionens snabbmeny</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Anpassa sidan för Ny flik"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Sök",
   "search_header": "{search_engine_name}",
   "search_web_placeholder": "Sök på webben",
   "section_disclaimer_topstories": "De mest intressanta nyheterna på webben, utvalda baserat på vad du läser. Från Pocket, nu en del av Mozilla.",
   "section_disclaimer_topstories_linktext": "Lär dig hur det fungerar.",
   "section_disclaimer_topstories_buttontext": "Ok, jag förstår",
   "prefs_home_header": "Innehåll Firefox-startskärm",
   "prefs_home_description": "Välj vilket innehåll du vill ha på din startskärm i Firefox.",
-  "prefs_restore_defaults_button": "Återställ standard",
   "prefs_section_rows_option": "{num} rad;{num} rader",
   "prefs_search_header": "Webbsök",
   "prefs_topsites_description": "Sidorna du besöker mest",
   "prefs_topstories_description2": "Bra innehåll från hela webben, anpassat för dig",
   "prefs_topstories_options_sponsored_label": "Sponsrade nyheter",
   "prefs_topstories_sponsored_learn_more": "Läs mer",
   "prefs_highlights_description": "Ett urval av sidor du har sparat eller besökt",
   "prefs_highlights_options_visited_label": "Besökta sidor",
   "prefs_highlights_options_download_label": "Senaste nedladdning",
   "prefs_highlights_options_pocket_label": "Sidor sparade till Pocket",
   "prefs_snippets_description": "Uppdateringar från Mozilla och Firefox",
   "settings_pane_button_label": "Anpassa sidan för Ny flik",
-  "settings_pane_header": "Inställningar Ny flik",
-  "settings_pane_body2": "Välj vad du vill se på denna sida.",
-  "settings_pane_search_header": "Sök",
-  "settings_pane_search_body": "Sök på webben från din nya flik.",
   "settings_pane_topsites_header": "Mest besökta",
-  "settings_pane_topsites_body": "Åtkomst till de webbplatser du besökt mest.",
-  "settings_pane_topsites_options_showmore": "Visa två rader",
   "settings_pane_highlights_header": "Höjdpunkter",
-  "settings_pane_highlights_body2": "Hitta tillbaka till intressanta saker som du nyligen har besökt eller bokmärkt.",
   "settings_pane_highlights_options_bookmarks": "Bokmärken",
-  "settings_pane_highlights_options_visited": "Besökta sidor",
   "settings_pane_snippets_header": "Kort information",
-  "settings_pane_snippets_body": "Läs korta nyheter från Mozilla om Firefox, internetkultur och från tid till annan en meme.",
-  "settings_pane_done_button": "Klar",
-  "settings_pane_topstories_options_sponsored": "Visa sponsrade nyheter",
   "edit_topsites_button_text": "Redigera",
   "edit_topsites_edit_button": "Redigera denna webbplats",
   "topsites_form_add_header": "Ny mest besökt",
   "topsites_form_edit_header": "Redigera mest besökta",
   "topsites_form_title_label": "Titel",
   "topsites_form_title_placeholder": "Ange en titel",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Anpassad bild URL",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Förhandsvisa",
   "topsites_form_add_button": "Lägg till",
   "topsites_form_save_button": "Spara",
   "topsites_form_cancel_button": "Avbryt",
   "topsites_form_url_validation": "Giltig URL krävs",
   "topsites_form_image_validation": "Bilden misslyckades att ladda. Prova en annan URL.",
   "pocket_read_more": "Populära ämnen:",
   "pocket_read_even_more": "Visa fler nyheter",
-  "pocket_description": "Upptäck högkvalitativt innehåll som du annars skulle missa, med hjälp av Pocket, nu en del av Mozilla.",
   "highlights_empty_state": "Börja surfa, och vi visar några av de bästa artiklarna, videoklippen och andra sidor du nyligen har besökt eller bokmärkt här.",
   "topstories_empty_state": "Det finns inte fler. Kom tillbaka senare för fler huvudnyheter från {provider}. Kan du inte vänta? Välj ett populärt ämne för att hitta fler bra nyheter från hela världen.",
   "manual_migration_explanation2": "Testa Firefox med bokmärken, historik och lösenord från en annan webbläsare.",
   "manual_migration_cancel_button": "Nej tack",
   "manual_migration_import_button": "Importera nu",
   "error_fallback_default_info": "Oj, något gick fel när innehållet skulle laddas.",
   "error_fallback_default_refresh_suggestion": "Uppdatera sidan för att försöka igen.",
   "section_menu_action_remove_section": "Ta bort sektion",
   "section_menu_action_collapse_section": "Fäll ihop sektion",
   "section_menu_action_expand_section": "Expandera sektion",
   "section_menu_action_manage_section": "Hantera sektion",
   "section_menu_action_add_topsite": "Lägg till mest besökta",
   "section_menu_action_move_up": "Flytta upp",
   "section_menu_action_move_down": "Flytta ner",
-  "section_menu_action_privacy_notice": "Sekretesspolicy"
+  "section_menu_action_privacy_notice": "Sekretesspolicy",
+  "prefs_restore_defaults_button": "Återställ standard",
+  "settings_pane_header": "Inställningar Ny flik",
+  "settings_pane_body2": "Välj vad du vill se på denna sida.",
+  "settings_pane_search_header": "Sök",
+  "settings_pane_search_body": "Sök på webben från din nya flik.",
+  "settings_pane_topsites_body": "Åtkomst till de webbplatser du besökt mest.",
+  "settings_pane_topsites_options_showmore": "Visa två rader",
+  "settings_pane_highlights_body2": "Hitta tillbaka till intressanta saker som du nyligen har besökt eller bokmärkt.",
+  "settings_pane_highlights_options_visited": "Besökta sidor",
+  "settings_pane_snippets_body": "Läs korta nyheter från Mozilla om Firefox, internetkultur och från tid till annan en meme.",
+  "settings_pane_done_button": "Klar",
+  "settings_pane_topstories_options_sponsored": "Visa sponsrade nyheter",
+  "pocket_description": "Upptäck högkvalitativt innehåll som du annars skulle missa, med hjälp av Pocket, nu en del av Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>இணையத்தில் தேடு</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="இணையத்தில் தேடு" title="இணையத்தில் தேடு"/><button id="searchSubmit" class="search-button" title="தேடு"><span class="sr-only"><span>தேடு</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>சிறந்த தளங்கள்</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="இத்தளத்தை தொகு"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket என்பவரால் பரிந்துரைக்கப்பட்டது</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>பிரபலமான தலைப்புகள்:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>மிளிர்ப்புகள்</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="உங்கள் புதிய கீற்றுப் பக்கத்தை விருப்பமை"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "தேடு",
   "search_header": "{search_engine_name} தேடுபொறியில் தேடு",
   "search_web_placeholder": "இணையத்தில் தேடு",
   "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": "இது எப்படி வேலை செய்கிறது என்று தெரிந்துகொள்ளவும்.",
   "section_disclaimer_topstories_buttontext": "சரி, புரிந்தது",
   "prefs_home_header": "Firefox முகப்பு உள்ளடக்கம்",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "வலைதள தேடல்",
   "prefs_topsites_description": "நீங்கள் மிகவும் பார்வையிடும் தளங்கள்",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "மேலும் அறிய",
   "prefs_highlights_description": "நீங்கள் சேமித்த அல்லது பார்வையிட்ட தளங்களின் தேர்வு",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "மொசில்லா மற்றும் பயர்பாக்சிலிருந்து புதுப்பிப்புகள்",
   "settings_pane_button_label": "உங்கள் புதிய கீற்றுப் பக்கத்தை விருப்பமை",
-  "settings_pane_header": "புதிய கீற்றின் முன்னுரிமைகள்",
-  "settings_pane_body2": "இந்த பக்கத்தில் நீங்கள் பார்ப்பதை தேர்வு செய்யவும்.",
-  "settings_pane_search_header": "தேடல்",
-  "settings_pane_search_body": "புதிய கீற்றிலீருந்து இணையத்தை தேடு.",
   "settings_pane_topsites_header": "சிறந்த தளங்கள்",
-  "settings_pane_topsites_body": "நீங்கள் அடிக்கடி பார்க்கும் தளங்களை அணுகவும்.",
-  "settings_pane_topsites_options_showmore": "இரு வரிசைகளைக் காண்பி",
   "settings_pane_highlights_header": "மிளிர்ப்புகள்",
-  "settings_pane_highlights_body2": "நீங்கள் சமீபத்தில் பார்வையிட்ட புத்தகக்குறியிட்ட சுவாரசியமான விடயங்களை மீண்டும் காணுங்கள்.",
   "settings_pane_highlights_options_bookmarks": "புத்தகக்குறிகள்",
-  "settings_pane_highlights_options_visited": "பார்வையிடப்பட்ட தளம்",
   "settings_pane_snippets_header": "துணுக்குகள்",
-  "settings_pane_snippets_body": "பயர்பாக்ஸ், இணைய கலாச்சாரம், அவ்வப்போது மீம்கள் போன்ற சுருக்கமான இனிய புதுப்பிப்புகளை மொசில்லாவிடமிருந்து படியுங்கள்.",
-  "settings_pane_done_button": "முடிந்தது",
-  "settings_pane_topstories_options_sponsored": "விளம்பரங்களைக் காட்டு",
   "edit_topsites_button_text": "தொகு",
   "edit_topsites_edit_button": "இத்தளத்தை தொகு",
   "topsites_form_add_header": "புதிய முக்கிய தளம்",
   "topsites_form_edit_header": "முக்கிய தளத்தை தொகு",
   "topsites_form_title_label": "தலைப்பு",
   "topsites_form_title_placeholder": "தலைப்பை இடு",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,26 +69,36 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "முன்தோற்றம்",
   "topsites_form_add_button": "சேர்",
   "topsites_form_save_button": "சேமி",
   "topsites_form_cancel_button": "தவிர்",
   "topsites_form_url_validation": "சரியான URL தேவை",
   "topsites_form_image_validation": "படத்தை ஏற்றுவதில் தோல்வி. வேறு URL ஐ முயற்சிக்கவும்.",
   "pocket_read_more": "பிரபலமான தலைப்புகள்:",
   "pocket_read_even_more": "இன்னும் கதைகளைப் பார்க்கவும்",
-  "pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
   "highlights_empty_state": "உலாவலைத் தொடங்கவும், மேலும் நாங்கள் சில சிறந்த கட்டுரைகள், காணொளிகள், மற்றும் நீங்கள் சமீபத்தில் பார்த்த பிற பக்கங்கள் அல்லது இங்கே புத்தகக்குறியிட்டவற்றைக் காட்டுவோம்.",
   "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_cancel_button": "பரவாயில்லை",
   "manual_migration_import_button": "இப்போது இறக்கு",
   "error_fallback_default_info": "அச்சச்சோ, இந்த உள்ளடக்கத்தை ஏற்றுவதில் ஏதோ தவறு ஏற்பட்டது.",
   "error_fallback_default_refresh_suggestion": "மீண்டும் முயற்சிக்க பக்கத்தை புதுப்பி.",
   "section_menu_action_remove_section": "பகுதியை நீக்கவும்",
   "section_menu_action_collapse_section": "பகுதியைச் சுருக்கு",
   "section_menu_action_expand_section": "பகுதியை விரி",
   "section_menu_action_manage_section": "பகுதியை நிர்வகி",
   "section_menu_action_add_topsite": "முதன்மை தளத்தைச் சேர்",
   "section_menu_action_move_up": "மேலே நகர்த்து",
   "section_menu_action_move_down": "கீழே நகர்த்து",
   "section_menu_action_privacy_notice": "தனியுரிமை அறிவிப்பு",
-  "prefs_topstories_show_sponsored_label": "{provider} விளம்பரதாரர் செய்திகள்"
+  "prefs_topstories_show_sponsored_label": "{provider} விளம்பரதாரர் செய்திகள்",
+  "settings_pane_header": "புதிய கீற்றின் முன்னுரிமைகள்",
+  "settings_pane_body2": "இந்த பக்கத்தில் நீங்கள் பார்ப்பதை தேர்வு செய்யவும்.",
+  "settings_pane_search_header": "தேடல்",
+  "settings_pane_search_body": "புதிய கீற்றிலீருந்து இணையத்தை தேடு.",
+  "settings_pane_topsites_body": "நீங்கள் அடிக்கடி பார்க்கும் தளங்களை அணுகவும்.",
+  "settings_pane_topsites_options_showmore": "இரு வரிசைகளைக் காண்பி",
+  "settings_pane_highlights_body2": "நீங்கள் சமீபத்தில் பார்வையிட்ட புத்தகக்குறியிட்ட சுவாரசியமான விடயங்களை மீண்டும் காணுங்கள்.",
+  "settings_pane_highlights_options_visited": "பார்வையிடப்பட்ட தளம்",
+  "settings_pane_snippets_body": "பயர்பாக்ஸ், இணைய கலாச்சாரம், அவ்வப்போது மீம்கள் போன்ற சுருக்கமான இனிய புதுப்பிப்புகளை மொசில்லாவிடமிருந்து படியுங்கள்.",
+  "settings_pane_done_button": "முடிந்தது",
+  "settings_pane_topstories_options_sponsored": "விளம்பரங்களைக் காட்டு"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>జాలంలో వెతకండి</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="జాలంలో వెతకండి" title="జాలంలో వెతకండి"/><button id="searchSubmit" class="search-button" title="వెతకండి"><span class="sr-only"><span>వెతకండి</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>మేటి సైట్లు</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>విభాగపు కంటెక్స్టు మెనూ తెరువు</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ఈ సైటును మార్చు"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocketచే సిఫార్సు చేయబడినది</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>విభాగపు కంటెక్స్టు మెనూ తెరువు</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>ప్రముఖ అంశాలు:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>విశేషాలు</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>విభాగపు కంటెక్స్టు మెనూ తెరువు</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="మీ కొత్త ట్యాబు పేజీని మలచుకోండి"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "వెతకండి",
   "search_header": "{search_engine_name} శోధన",
   "search_web_placeholder": "జాలంలో వెతకండి",
   "section_disclaimer_topstories": "జాలంలో అత్యంత ఆసక్తికరమైన కథనాలు, మీరు చదివేవాటి ఆధారంగా ఎంచుకున్నవి. ఇప్పుడు Mozillaలో భాగమైన Pocket నుండి.",
   "section_disclaimer_topstories_linktext": "ఇది ఎలా పనిచేస్తుందో తెలుసుకోండి.",
   "section_disclaimer_topstories_buttontext": "సరే, అర్థమయ్యింది",
   "prefs_home_header": "Firefox ముంగిలి విషయం",
   "prefs_home_description": "మీ Firefox ముంగిలి తెరలో మీకు కావలసిన విషయాల్ని ఎంచుకోండి.",
-  "prefs_restore_defaults_button": "అప్రమేయాలను పునరుద్ధరించు",
   "prefs_section_rows_option": "{num} వరుస;{num} వరుసలు",
   "prefs_search_header": "జాల వెతుకులాట",
   "prefs_topsites_description": "మీరు తరచూ చూసే సైట్లు",
   "prefs_topstories_description2": "ప్రపంచం నలుమూలలనుండి మీకోసం వ్యక్తిగతీకరించబడిన ఆసక్తికర సమాచారం",
   "prefs_topstories_options_sponsored_label": "ప్రాయోజిక కథనాలు",
   "prefs_topstories_sponsored_learn_more": "ఇంకా తెలుసుకోండి",
   "prefs_highlights_description": "మీరు భద్రపరచిన లేదా సందర్శించిన సైట్ల నుండి ఎంపికచేసినవి",
   "prefs_highlights_options_visited_label": "చూసిన పేజీలు",
   "prefs_highlights_options_download_label": "ఇటీవలి దింపుకోలు",
   "prefs_highlights_options_pocket_label": "పాకెట్‌కు భద్రపరచిన పేజీలు",
   "prefs_snippets_description": "మొజిల్లా, ఫైర్‌ఫాక్స్ నుండి విశేషాలు",
   "settings_pane_button_label": "మీ కొత్త ట్యాబు పేజీని మలచుకోండి",
-  "settings_pane_header": "కొత్త ట్యాబు అభిరుచులు",
-  "settings_pane_body2": "ఈ పేజీలో ఏమేం కనబడాలో ఎంచుకోండి.",
-  "settings_pane_search_header": "వెతకడం",
-  "settings_pane_search_body": "కొత్త ట్యాబు నుండే జాలంలో వెతకండి.",
   "settings_pane_topsites_header": "మేటి సైట్లు",
-  "settings_pane_topsites_body": "మీరు ఎక్కువగా చూసే వెబ్‌సైట్లకు ఇట్టే వెళ్ళండి.",
-  "settings_pane_topsites_options_showmore": "రెండు వరుసలు చూపించు",
   "settings_pane_highlights_header": "విశేషాలు",
-  "settings_pane_highlights_body2": "ఇటీవలే మీరు చూసిన లేదా ఇష్టపడిన ఆసక్తికరమైన విషయాలు మళ్ళీ మీ ముందుకొస్తాయి.",
   "settings_pane_highlights_options_bookmarks": "ఇష్టాంశాలు",
-  "settings_pane_highlights_options_visited": "చూసిన సైట్లు",
   "settings_pane_snippets_header": "సంగతులు",
-  "settings_pane_snippets_body": "Firefox గురించి, అంతర్జాల సంస్కృతి గురించి, ఏదో ఒక సరదా పుకారు గురించి Mozilla వారు చెప్పే చిట్టి పొట్టి సంగతులు చదవండి.",
-  "settings_pane_done_button": "పూర్తయింది",
-  "settings_pane_topstories_options_sponsored": "ప్రాయోజిత కథనాలను చూపించు",
   "edit_topsites_button_text": "మార్చు",
   "edit_topsites_edit_button": "ఈ సైటును మార్చు",
   "topsites_form_add_header": "కొత్త మేటి సైటు",
   "topsites_form_edit_header": "టాప్ సైట్ను సవరించండి",
   "topsites_form_title_label": "శీర్షిక",
   "topsites_form_title_placeholder": "శీర్షికను నమోదు చేయండి",
   "topsites_form_url_label": "చిరునామా",
   "topsites_form_image_url_label": "అభిమత చిత్రపు చిరునామా",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "మునుజూపు",
   "topsites_form_add_button": "చేర్చు",
   "topsites_form_save_button": "భద్రపరచు",
   "topsites_form_cancel_button": "రద్దుచేయి",
   "topsites_form_url_validation": "చెల్లుబాటు అయ్యే URL అవసరం",
   "topsites_form_image_validation": "చిత్రాన్ని లోడు చెయ్యలేకపోయాం. మరో చిరునామా ప్రయత్నించండి.",
   "pocket_read_more": "ప్రముఖ అంశాలు:",
   "pocket_read_even_more": "మరిన్ని కథలను వీక్షించండి",
-  "pocket_description": "తప్పక చూడాల్సిన మిక్కిలి-నాణ్యమైన విషయం పాకెట్ సహాయంతో. పాకెట్ ఇప్పుడు మొజిల్లాలో భాగం.",
   "highlights_empty_state": "విహారించడం మొదలుపెట్టండి, మీరు ఈమధ్య చూసిన లేదా ఇష్టపడిన గొప్ప వ్యాసాలను, వీడియోలను, ఇతర పేజీలను ఇక్కడ చూపిస్తాం.",
   "topstories_empty_state": "మీరు పట్టుబడ్డారు. {provider} నుండి మరింత అగ్ర కథనాల కోసం తరువాత తనిఖీ చేయండి. వేచి ఉండలేరా? జాలములోని అంతటి నుండి మరింత గొప్ప కథనాలను కనుగొనడానికి ప్రసిద్ధ అంశం ఎంచుకోండి.",
   "manual_migration_explanation2": "మరొక విహారిణి లోని ఇష్టాంశాలు, చరిత్ర, సంకేతపదాలతో Firefoxను ప్రయత్నించండి.",
   "manual_migration_cancel_button": "అడిగినందుకు ధన్యవాదాలు, వద్దు",
   "manual_migration_import_button": "ఇప్పుడే దిగుమతి చేయండి",
   "error_fallback_default_info": "అయ్యో, ఈ విషయం తేవడంలో ఏదో తప్పు దొర్లింది.",
   "error_fallback_default_refresh_suggestion": "మళ్ళీ ప్రయత్నించడానికి పేజీని రీఫ్రెష్ చెయ్యండి.",
   "section_menu_action_remove_section": "విభాగాన్ని తీసివేయి",
   "section_menu_action_collapse_section": "విభాగాన్ని ముడిచివేయి",
   "section_menu_action_expand_section": "విభాగాన్ని విస్తరించు",
   "section_menu_action_manage_section": "విభాగ నిర్వహణ",
   "section_menu_action_add_topsite": "మేటి సైటును చేర్చు",
   "section_menu_action_move_up": "పైకి జరుపు",
   "section_menu_action_move_down": "కిందకి జరుపు",
-  "section_menu_action_privacy_notice": "అంతరంగికత గమనిక"
+  "section_menu_action_privacy_notice": "అంతరంగికత గమనిక",
+  "prefs_restore_defaults_button": "అప్రమేయాలను పునరుద్ధరించు",
+  "settings_pane_header": "కొత్త ట్యాబు అభిరుచులు",
+  "settings_pane_body2": "ఈ పేజీలో ఏమేం కనబడాలో ఎంచుకోండి.",
+  "settings_pane_search_header": "వెతకడం",
+  "settings_pane_search_body": "కొత్త ట్యాబు నుండే జాలంలో వెతకండి.",
+  "settings_pane_topsites_body": "మీరు ఎక్కువగా చూసే వెబ్‌సైట్లకు ఇట్టే వెళ్ళండి.",
+  "settings_pane_topsites_options_showmore": "రెండు వరుసలు చూపించు",
+  "settings_pane_highlights_body2": "ఇటీవలే మీరు చూసిన లేదా ఇష్టపడిన ఆసక్తికరమైన విషయాలు మళ్ళీ మీ ముందుకొస్తాయి.",
+  "settings_pane_highlights_options_visited": "చూసిన సైట్లు",
+  "settings_pane_snippets_body": "Firefox గురించి, అంతర్జాల సంస్కృతి గురించి, ఏదో ఒక సరదా పుకారు గురించి Mozilla వారు చెప్పే చిట్టి పొట్టి సంగతులు చదవండి.",
+  "settings_pane_done_button": "పూర్తయింది",
+  "settings_pane_topstories_options_sponsored": "ప్రాయోజిత కథనాలను చూపించు",
+  "pocket_description": "తప్పక చూడాల్సిన మిక్కిలి-నాణ్యమైన విషయం పాకెట్ సహాయంతో. పాకెట్ ఇప్పుడు మొజిల్లాలో భాగం."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ค้นหาเว็บ</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ค้นหาเว็บ" title="ค้นหาเว็บ"/><button id="searchSubmit" class="search-button" title="ค้นหา"><span class="sr-only"><span>ค้นหา</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>ไซต์เด่น</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>เปิดเมนูบริบทของส่วน</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="แก้ไขไซต์นี้"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>แนะนำโดย Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>เปิดเมนูบริบทของส่วน</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>หัวข้อยอดนิยม:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>รายการเด่น</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>เปิดเมนูบริบทของส่วน</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="ปรับแต่งหน้าแท็บใหม่ของคุณ"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "ค้นหา",
   "search_header": "ค้นหา {search_engine_name}",
   "search_web_placeholder": "ค้นหาเว็บ",
   "section_disclaimer_topstories": "เรื่องราวที่น่าสนใจที่สุดบนเว็บ เลือกตามสิ่งที่คุณอ่าน จาก Pocket ซึ่งขณะนี้เป็นส่วนหนึ่งของ Mozilla",
   "section_disclaimer_topstories_linktext": "เรียนรู้วิธีการทำงาน",
   "section_disclaimer_topstories_buttontext": "ตกลง เข้าใจแล้ว",
   "prefs_home_header": "เนื้อหาหน้าแรก Firefox",
   "prefs_home_description": "เลือกเนื้อหาที่คุณต้องการในหน้าจอหน้าแรก Firefox ของคุณ",
-  "prefs_restore_defaults_button": "เรียกคืนค่าเริ่มต้น",
   "prefs_section_rows_option": "{num} แถว",
   "prefs_search_header": "การค้นหาเว็บ",
   "prefs_topsites_description": "ไซต์ที่คุณเยี่ยมชมมากที่สุด",
   "prefs_topstories_description2": "เนื้อหาที่ยอดเยี่ยมจากเว็บต่าง ๆ ปรับแต่งให้เป็นส่วนบุคคลเพื่อคุณ",
   "prefs_topstories_options_sponsored_label": "เรื่องราวที่ได้รับการสนับสนุน",
   "prefs_topstories_sponsored_learn_more": "เรียนรู้เพิ่มเติม",
   "prefs_highlights_description": "การคัดเลือกไซต์ที่คุณได้บันทึกไว้หรือเยี่ยมชม",
   "prefs_highlights_options_visited_label": "หน้าที่เยี่ยมชมแล้ว",
   "prefs_highlights_options_download_label": "ดาวน์โหลดล่าสุด",
   "prefs_highlights_options_pocket_label": "หน้าที่บันทึกไว้ใน Pocket",
   "prefs_snippets_description": "ข้อมูลอัปเดตจาก Mozilla และ Firefox",
   "settings_pane_button_label": "ปรับแต่งหน้าแท็บใหม่ของคุณ",
-  "settings_pane_header": "ค่ากำหนดแท็บใหม่",
-  "settings_pane_body2": "เลือกสิ่งที่คุณเห็นในหน้านี้",
-  "settings_pane_search_header": "ค้นหา",
-  "settings_pane_search_body": "ค้นหาเว็บจากแท็บใหม่ของคุณ",
   "settings_pane_topsites_header": "ไซต์เด่น",
-  "settings_pane_topsites_body": "เข้าถึงเว็บไซต์ที่คุณเยี่ยมชมมากที่สุด",
-  "settings_pane_topsites_options_showmore": "แสดงสองแถว",
   "settings_pane_highlights_header": "รายการเด่น",
-  "settings_pane_highlights_body2": "ค้นหาทางของคุณกลับไปยังสิ่งที่น่าสนใจที่คุณได้เยี่ยมชมหรือเพิ่มที่คั่นหน้าไว้ล่าสุด",
   "settings_pane_highlights_options_bookmarks": "ที่คั่นหน้า",
-  "settings_pane_highlights_options_visited": "ไซต์ที่เยี่ยมชมแล้ว",
   "settings_pane_snippets_header": "ส่วนย่อย",
-  "settings_pane_snippets_body": "อ่านข้อมูลอัปเดตที่สั้นและไพเราะจาก Mozilla เกี่ยวกับ Firefox, วัฒนธรรมอินเทอร์เน็ต และมีมแบบสุ่มเป็นครั้งคราว",
-  "settings_pane_done_button": "เสร็จสิ้น",
-  "settings_pane_topstories_options_sponsored": "แสดงเรื่องราวที่ได้รับการสนับสนุน",
   "edit_topsites_button_text": "แก้ไข",
   "edit_topsites_edit_button": "แก้ไขไซต์นี้",
   "topsites_form_add_header": "ไซต์เด่นใหม่",
   "topsites_form_edit_header": "แก้ไขไซต์เด่น",
   "topsites_form_title_label": "ชื่อเรื่อง",
   "topsites_form_title_placeholder": "ป้อนชื่อเรื่อง",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL ภาพที่กำหนดเอง",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "แสดงตัวอย่าง",
   "topsites_form_add_button": "เพิ่ม",
   "topsites_form_save_button": "บันทึก",
   "topsites_form_cancel_button": "ยกเลิก",
   "topsites_form_url_validation": "ต้องการ URL ที่ถูกต้อง",
   "topsites_form_image_validation": "ไม่สามารถโหลดภาพ ลอง URL อื่น",
   "pocket_read_more": "หัวข้อยอดนิยม:",
   "pocket_read_even_more": "ดูเรื่องราวเพิ่มเติม",
-  "pocket_description": "ค้นพบเนื้อหาคุณภาพสูงที่คุณอาจพลาดไปด้วยความช่วยเหลือจาก Pocket ที่ตอนนี้เป็นส่วนหนึ่งของ Mozilla",
   "highlights_empty_state": "เริ่มการท่องเว็บและเราจะแสดงบทความ, วิดีโอ และหน้าอื่น ๆ บางส่วนที่ยอดเยี่ยมที่คุณได้เยี่ยมชมหรือเพิ่มที่คั่นหน้าไว้ล่าสุดที่นี่",
   "topstories_empty_state": "คุณได้อ่านเรื่องราวครบทั้งหมดแล้ว คุณสามารถกลับมาตรวจดูเรื่องราวเด่นจาก {provider} ได้ภายหลัง อดใจรอไม่ได้งั้นหรือ? เลือกหัวข้อยอดนิยมเพื่อค้นหาเรื่องราวที่ยอดเยี่ยมจากเว็บต่าง ๆ",
   "manual_migration_explanation2": "ลอง Firefox ด้วยที่คั่นหน้า, ประวัติ และรหัสผ่านจากเบราว์เซอร์อื่น",
   "manual_migration_cancel_button": "ไม่ ขอบคุณ",
   "manual_migration_import_button": "นำเข้าตอนนี้",
   "error_fallback_default_info": "อุปส์ มีบางอย่างผิดพลาดในการโหลดเนื้อหานี้",
   "error_fallback_default_refresh_suggestion": "เรียกหน้าใหม่เพื่อลองอีกครั้ง",
   "section_menu_action_remove_section": "เอาส่วนออก",
   "section_menu_action_collapse_section": "ยุบส่วน",
   "section_menu_action_expand_section": "ขยายส่วน",
   "section_menu_action_manage_section": "จัดการส่วน",
   "section_menu_action_add_topsite": "เพิ่มไซต์เด่น",
   "section_menu_action_move_up": "ย้ายขึ้น",
   "section_menu_action_move_down": "ย้ายลง",
-  "section_menu_action_privacy_notice": "ประกาศความเป็นส่วนตัว"
+  "section_menu_action_privacy_notice": "ประกาศความเป็นส่วนตัว",
+  "prefs_restore_defaults_button": "เรียกคืนค่าเริ่มต้น",
+  "settings_pane_header": "ค่ากำหนดแท็บใหม่",
+  "settings_pane_body2": "เลือกสิ่งที่คุณเห็นในหน้านี้",
+  "settings_pane_search_header": "ค้นหา",
+  "settings_pane_search_body": "ค้นหาเว็บจากแท็บใหม่ของคุณ",
+  "settings_pane_topsites_body": "เข้าถึงเว็บไซต์ที่คุณเยี่ยมชมมากที่สุด",
+  "settings_pane_topsites_options_showmore": "แสดงสองแถว",
+  "settings_pane_highlights_body2": "ค้นหาทางของคุณกลับไปยังสิ่งที่น่าสนใจที่คุณได้เยี่ยมชมหรือเพิ่มที่คั่นหน้าไว้ล่าสุด",
+  "settings_pane_highlights_options_visited": "ไซต์ที่เยี่ยมชมแล้ว",
+  "settings_pane_snippets_body": "อ่านข้อมูลอัปเดตที่สั้นและไพเราะจาก Mozilla เกี่ยวกับ Firefox, วัฒนธรรมอินเทอร์เน็ต และมีมแบบสุ่มเป็นครั้งคราว",
+  "settings_pane_done_button": "เสร็จสิ้น",
+  "settings_pane_topstories_options_sponsored": "แสดงเรื่องราวที่ได้รับการสนับสนุน",
+  "pocket_description": "ค้นพบเนื้อหาคุณภาพสูงที่คุณอาจพลาดไปด้วยความช่วยเหลือจาก Pocket ที่ตอนนี้เป็นส่วนหนึ่งของ Mozilla"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Hanapin sa Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Hanapin sa Web" title="Hanapin sa Web"/><button id="searchSubmit" class="search-button" title="Hanapin"><span class="sr-only"><span>Hanapin</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Tuktok na mga Site</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buksan ang menu ng konteksto ng seksyon</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="I-edit ang site na ito"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Inirekomenda ni Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buksan ang menu ng konteksto ng seksyon</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Tanyag na mga paksa:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Naka-highlight</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Buksan ang menu ng konteksto ng seksyon</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="I-customize ang iyong pahina ng Bagong Tab"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Hanapin",
   "search_header": "{search_engine_name} Hanapin",
   "search_web_placeholder": "Hanapin sa Web",
   "section_disclaimer_topstories": "Ang pinaka-kagiliw-giliw na mga kwento sa web, pinili batay sa kung ano ang iyong nabasa. Mula sa Pocket, bahagi na ngayon ng Mozilla.",
   "section_disclaimer_topstories_linktext": "Alamin kung paano ito gumagana.",
   "section_disclaimer_topstories_buttontext": "Sige, nakuha ko",
   "prefs_home_header": "Nilalaman ng Home ng Firefox",
   "prefs_home_description": "Piliin kung anong nilalaman ang gusto mo sa iyong screen ng Home ng Firefox.",
-  "prefs_restore_defaults_button": "Ibalik sa dating ayos",
   "prefs_section_rows_option": "{num} hilera;{num} mga hilera",
   "prefs_search_header": "Paghahanap sa Web",
   "prefs_topsites_description": "Ang mga site na iyong pinupuntahan",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Matuto ng higit pa",
   "prefs_highlights_description": "Ang isang seleksyon ng mga site na iyong nai-save o binisita",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mga Update mula sa Mozilla at Firefox",
   "settings_pane_button_label": "I-customize ang iyong pahina ng Bagong Tab",
-  "settings_pane_header": "Bagong Kagustuhan na Tab",
-  "settings_pane_body2": "Piliin kung ano ang gusto mong makita sa pahinang ito.",
-  "settings_pane_search_header": "Paghahanap",
-  "settings_pane_search_body": "Hanapin sa Web mula sa iyong bagong tab.",
   "settings_pane_topsites_header": "Tuktok na mga Site",
-  "settings_pane_topsites_body": "Ma-access ang mga website na karamihang binibisita.",
-  "settings_pane_topsites_options_showmore": "Ipakita ang dalawang mga hanay",
   "settings_pane_highlights_header": "Mga highlight",
-  "settings_pane_highlights_body2": "Hanapin ang iyong daan pabalik sa mga kagiliw-giliw na bagay na kamakailan mong binisita o na-bookmark.",
   "settings_pane_highlights_options_bookmarks": "Mga bookmark",
-  "settings_pane_highlights_options_visited": "Mga binisitang site",
   "settings_pane_snippets_header": "Mga snippet",
-  "settings_pane_snippets_body": "Magbasa ng maikli at matamis na mga update mula sa Mozilla tungkol sa Firefox, kultura sa internet, at paminsan-minsang random na meme.",
-  "settings_pane_done_button": "Tapos",
-  "settings_pane_topstories_options_sponsored": "Ipakita ang Mga Na-sponsor na Kuwento",
   "edit_topsites_button_text": "I-edit",
   "edit_topsites_edit_button": "I-edit ang site na ito",
   "topsites_form_add_header": "Bagong nangungunang site",
   "topsites_form_edit_header": "I-edit ang nangungunang site",
   "topsites_form_title_label": "Pamagat",
   "topsites_form_title_placeholder": "Magpasok ng isang pamagat",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL ng Custom na Larawan",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "I-preview",
   "topsites_form_add_button": "Idagdag",
   "topsites_form_save_button": "I-save",
   "topsites_form_cancel_button": "Kanselahin",
   "topsites_form_url_validation": "Wastong URL ang kinakailangan",
   "topsites_form_image_validation": "Nabigo ang pag-load ng larawan. Subukan ang ibang URL.",
   "pocket_read_more": "Tanyag na mga paksa:",
   "pocket_read_even_more": "Tignan ang higit pang mga kuwento",
-  "pocket_description": "Tuklasin ang mataas na kalidad na nilalaman na maaari mong makaligtaan, sa tulong ng Pocket, ay bahagi na ngayon ng Mozilla.",
   "highlights_empty_state": "Magsimulang mag-browse, at ipapakita namin ang ilan sa mga magagandang artikulo, video, at iba pang mga pahina na kamakailan mong binisita o na-bookmark dito.",
   "topstories_empty_state": "Nakahabol ka na. Bumalik sa ibang pagkakataon para sa higit pang mga nangungunang kuwento mula sa {provider}. Hindi makapaghintay? Pumili ng isang tanyag na paksa upang makahanap ng higit pang mahusay na mga kuwento mula sa buong web.",
   "manual_migration_explanation2": "Subukan ang Firefox gamit ang mga bookmark, kasaysayan at mga password mula sa isa pang browser.",
   "manual_migration_cancel_button": "Salamat na lang",
   "manual_migration_import_button": "Angkatin Ngayon",
   "error_fallback_default_info": "Oops, may naganap na mali sa paglo-load ng nilalamang ito.",
   "error_fallback_default_refresh_suggestion": "I-refresh ang pahina upang subukang muli.",
   "section_menu_action_remove_section": "Alisin ang Seksyon",
@@ -121,24 +108,37 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Abiso sa Privacy",
   "welcome_title": "Maligayang pagdating sa bagong tab",
   "welcome_body": "Firefox ay gagamit ng puwang upang ipakita ang iyong mga pinaka-kaugnay na bookmark, artikulo, video, at mga pahina ng kamakailan na iyong binisita, kaya maaari kang bumalik sa mga ito ng madali.",
   "welcome_label": "Ang pagkilala sa iyong Highlights",
   "time_label_less_than_minute": "<1m",
   "time_label_minute": "{number}m",
   "time_label_hour": "{number}h",
   "time_label_day": "{number}d",
+  "prefs_restore_defaults_button": "Ibalik sa dating ayos",
   "prefs_topstories_description": "Maaaring makaligtaan ang mataas na kalidad na nilalaman",
   "prefs_topstories_show_sponsored_label": "{provider} Mga Na-sponsor na Kwento",
+  "settings_pane_header": "Bagong Kagustuhan na Tab",
+  "settings_pane_body2": "Piliin kung ano ang gusto mong makita sa pahinang ito.",
+  "settings_pane_search_header": "Paghahanap",
+  "settings_pane_search_body": "Hanapin sa Web mula sa iyong bagong tab.",
+  "settings_pane_topsites_body": "Ma-access ang mga website na karamihang binibisita.",
+  "settings_pane_topsites_options_showmore": "Ipakita ang dalawang mga hanay",
   "settings_pane_bookmarks_header": "Kamakailang mga Bookmark",
   "settings_pane_bookmarks_body": "Ang iyong mga bagong gawang bookmark ay nsa isang madaling gamiting lokasyon.",
   "settings_pane_visit_again_header": "Bisitahin Muli",
   "settings_pane_visit_again_body": "Ipapakita sa iyo ng Firefox ang mga bahagi ng iyong kasaysayan ng pagba-browse na maaaring gusto mong matandaan o makabalik.",
+  "settings_pane_highlights_body2": "Hanapin ang iyong daan pabalik sa mga kagiliw-giliw na bagay na kamakailan mong binisita o na-bookmark.",
+  "settings_pane_highlights_options_visited": "Mga binisitang site",
+  "settings_pane_snippets_body": "Magbasa ng maikli at matamis na mga update mula sa Mozilla tungkol sa Firefox, kultura sa internet, at paminsan-minsang random na meme.",
+  "settings_pane_done_button": "Tapos",
+  "settings_pane_topstories_options_sponsored": "Ipakita ang Mga Na-sponsor na Kuwento",
   "edit_topsites_button_label": "I-customize ang iyong Tuktok na mga seksyon ng Sites",
   "edit_topsites_showmore_button": "Magpakita ng higit pa",
   "edit_topsites_showless_button": "Magpakita ng mas kaunti",
   "edit_topsites_done_button": "Tapos",
   "edit_topsites_pin_button": "I-pin sa site na ito",
   "edit_topsites_unpin_button": "I-unpin ang site na ito",
   "edit_topsites_dismiss_button": "I-dismiss sa site na ito",
   "edit_topsites_add_button": "Idagdag",
-  "pocket_feedback_header": "Ang pinakamahusay sa web, na gawa ng higit sa 25 milyong tao."
+  "pocket_feedback_header": "Ang pinakamahusay sa web, na gawa ng higit sa 25 milyong tao.",
+  "pocket_description": "Tuklasin ang mataas na kalidad na nilalaman na maaari mong makaligtaan, sa tulong ng Pocket, ay bahagi na ngayon ng Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Web’de ara</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Web’de ara" title="Web’de ara"/><button id="searchSubmit" class="search-button" title="Ara"><span class="sr-only"><span>Ara</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sık Kullanılan Siteler</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsünü aç</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu siteyi düzenle"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket öneriyor</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsünü aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popüler konular:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Öne Çıkanlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bölüm bağlam menüsünü aç</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Yeni Sekme sayfanızı özelleştirin"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Ara",
   "search_header": "{search_engine_name} Araması",
   "search_web_placeholder": "Web’de ara",
   "section_disclaimer_topstories": "Daha önce okuduklarınıza dayanarak seçtiğimiz en ilginç yazılar. Mozilla ailesinin yeni üyesi Pocket’tan.",
   "section_disclaimer_topstories_linktext": "Nasıl çalıştığını görün.",
   "section_disclaimer_topstories_buttontext": "Tamam, anladım",
   "prefs_home_header": "Firefox giriş sayfası içeriği",
   "prefs_home_description": "Firefox giriş sayfasında görmek istediğiniz içerikleri seçin.",
-  "prefs_restore_defaults_button": "Varsayılanları geri yükle",
   "prefs_section_rows_option": "{num} satır;{num} satır",
   "prefs_search_header": "Web araması",
   "prefs_topsites_description": "En çok ziyaret ettiğiniz siteler",
   "prefs_topstories_description2": "İnternetin her yanından sizin için seçtiğimiz kaliteli içerikler",
   "prefs_topstories_options_sponsored_label": "Sponsorlu haberler",
   "prefs_topstories_sponsored_learn_more": "Daha fazla bilgi al",
   "prefs_highlights_description": "Kaydettiğiniz ve ziyaret ettiğiniz sitelerin bir seçkisi",
   "prefs_highlights_options_visited_label": "Ziyaret ettiğim sayfalar",
   "prefs_highlights_options_download_label": "Son indirme",
   "prefs_highlights_options_pocket_label": "Pocket’a kaydettiğim sayfalar",
   "prefs_snippets_description": "Mozilla ve Firefox’tan haberler",
   "settings_pane_button_label": "Yeni Sekme sayfanızı özelleştirin",
-  "settings_pane_header": "Yeni Sekme Tercihleri",
-  "settings_pane_body2": "Bu sayfada görmek istediklerinizi seçin.",
-  "settings_pane_search_header": "Arama",
-  "settings_pane_search_body": "Yeni sekme üzerinden web’de arama yapın.",
   "settings_pane_topsites_header": "Sık kullanılan siteler",
-  "settings_pane_topsites_body": "En sık ziyaret ettiğiniz web sitelerine erişin.",
-  "settings_pane_topsites_options_showmore": "İki satır göster",
   "settings_pane_highlights_header": "Öne çıkanlar",
-  "settings_pane_highlights_body2": "Son zamanlarda baktığınız veya yer imlerinize eklediğiniz ilginç şeyleri yeniden keşfedin.",
   "settings_pane_highlights_options_bookmarks": "Yer imleri",
-  "settings_pane_highlights_options_visited": "Ziyaret ettiğim siteler",
   "settings_pane_snippets_header": "Duyurular",
-  "settings_pane_snippets_body": "Firefox, internet kültürü ve önemli gelişmeler hakkında Mozilla’dan gelen kısa güncelleme notlarını okuyun.",
-  "settings_pane_done_button": "Tamam",
-  "settings_pane_topstories_options_sponsored": "Sponsorlu haberleri göster",
   "edit_topsites_button_text": "Düzenle",
   "edit_topsites_edit_button": "Bu siteyi düzenle",
   "topsites_form_add_header": "Yeni sık kullanılan site",
   "topsites_form_edit_header": "Sık kullanılan siteyi düzenle",
   "topsites_form_title_label": "Başlık",
   "topsites_form_title_placeholder": "Başlık yazın",
   "topsites_form_url_label": "Adres",
   "topsites_form_image_url_label": "Özel resim adresi",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ön izleme yap",
   "topsites_form_add_button": "Ekle",
   "topsites_form_save_button": "Kaydet",
   "topsites_form_cancel_button": "İptal",
   "topsites_form_url_validation": "Geçerli bir adres gerekli",
   "topsites_form_image_validation": "Resim yüklenemedi. Başka bir adres deneyin.",
   "pocket_read_more": "Popüler konular:",
   "pocket_read_even_more": "Daha fazla yazı göster",
-  "pocket_description": "Mozilla ailesinin yeni üyesi Pocket’ın yardımıyla, gözünüzden kaçabilecek kaliteli içerikleri keşfedin.",
   "highlights_empty_state": "Gezinmeye başlayın. Son zamanlarda baktığınız veya yer imlerinize eklediğiniz bazı güzel makaleleri, videoları ve diğer sayfaları burada göstereceğiz.",
   "topstories_empty_state": "Hepsini bitirdiniz. Yeni {provider} haberleri için daha fazla yine gelin. Beklemek istemiyor musunuz? İlginç yazılara ulaşmak için popüler konulardan birini seçebilirsiniz.",
   "manual_migration_explanation2": "Öteki tarayıcılarınızdaki yer imlerinizi, geçmişinizi ve parolalarınızı Firefox’a aktarabilirsiniz.",
   "manual_migration_cancel_button": "Gerek yok",
   "manual_migration_import_button": "Olur, aktaralım",
   "error_fallback_default_info": "Bu içerik yüklenirken bir hata oluştu.",
   "error_fallback_default_refresh_suggestion": "Yeniden denemek için sayfayı tazeleyin.",
   "section_menu_action_remove_section": "Bölümü sil",
   "section_menu_action_collapse_section": "Bölümü daralt",
   "section_menu_action_expand_section": "Bölümü genişlet",
   "section_menu_action_manage_section": "Bölümü yönet",
   "section_menu_action_add_topsite": "Sık kullanılan site ekle",
   "section_menu_action_move_up": "Yukarı taşı",
   "section_menu_action_move_down": "Aşağı taşı",
-  "section_menu_action_privacy_notice": "Gizlilik bildirimi"
+  "section_menu_action_privacy_notice": "Gizlilik bildirimi",
+  "prefs_restore_defaults_button": "Varsayılanları geri yükle",
+  "settings_pane_header": "Yeni Sekme Tercihleri",
+  "settings_pane_body2": "Bu sayfada görmek istediklerinizi seçin.",
+  "settings_pane_search_header": "Arama",
+  "settings_pane_search_body": "Yeni sekme üzerinden web’de arama yapın.",
+  "settings_pane_topsites_body": "En sık ziyaret ettiğiniz web sitelerine erişin.",
+  "settings_pane_topsites_options_showmore": "İki satır göster",
+  "settings_pane_highlights_body2": "Son zamanlarda baktığınız veya yer imlerinize eklediğiniz ilginç şeyleri yeniden keşfedin.",
+  "settings_pane_highlights_options_visited": "Ziyaret ettiğim siteler",
+  "settings_pane_snippets_body": "Firefox, internet kültürü ve önemli gelişmeler hakkında Mozilla’dan gelen kısa güncelleme notlarını okuyun.",
+  "settings_pane_done_button": "Tamam",
+  "settings_pane_topstories_options_sponsored": "Sponsorlu haberleri göster",
+  "pocket_description": "Mozilla ailesinin yeni üyesi Pocket’ın yardımıyla, gözünüzden kaçabilecek kaliteli içerikleri keşfedin."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Пошук в Інтернеті</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Пошук в Інтернеті" title="Пошук в Інтернеті"/><button id="searchSubmit" class="search-button" title="Пошук"><span class="sr-only"><span>Пошук</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Популярні сайти</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Відкрити контекстне меню розділу</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Змінити цей сайт"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Рекомендовано Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Відкрити контекстне меню розділу</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Популярні теми:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Обране</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Відкрити контекстне меню розділу</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Налаштуйте свою сторінку нової вкладки"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Пошук",
   "search_header": "Шукати з {search_engine_name}",
   "search_web_placeholder": "Пошук в Інтернеті",
   "section_disclaimer_topstories": "Найцікавіші матеріали в Інтернеті, обрані на основі того, що ви читаєте. З Pocket, який тепер входить до складу Mozilla.",
   "section_disclaimer_topstories_linktext": "Дізнайтеся, як це працює.",
   "section_disclaimer_topstories_buttontext": "Гаразд, зрозуміло",
   "prefs_home_header": "Домівка Firefox",
   "prefs_home_description": "Оберіть бажаний вміст для показу в домівці Firefox.",
-  "prefs_restore_defaults_button": "Відновити типові",
   "prefs_section_rows_option": "{num} рядок;{num} рядки;{num} рядків",
   "prefs_search_header": "Веб пошук",
   "prefs_topsites_description": "Сайти, які ви відвідуєте найчастіше",
   "prefs_topstories_description2": "Чудові матеріали з усього інтернету, відібрані спеціально для вас",
   "prefs_topstories_options_sponsored_label": "Матеріали від спонсорів",
   "prefs_topstories_sponsored_learn_more": "Докладніше",
   "prefs_highlights_description": "Відібрані веб-сайти, які ви зберегли чи відвідали",
   "prefs_highlights_options_visited_label": "Відвідані сторінки",
   "prefs_highlights_options_download_label": "Останні завантаження",
   "prefs_highlights_options_pocket_label": "Збережене в Pocket",
   "prefs_snippets_description": "Оновлення від Mozilla та Firefox",
   "settings_pane_button_label": "Налаштуйте свою сторінку нової вкладки",
-  "settings_pane_header": "Налаштування нової вкладки",
-  "settings_pane_body2": "Оберіть, що ви побачите на цій сторінці.",
-  "settings_pane_search_header": "Пошук",
-  "settings_pane_search_body": "Пошук в Інтернеті з нової вкладки.",
   "settings_pane_topsites_header": "Популярні сайти",
-  "settings_pane_topsites_body": "Доступ до найчастіше відвідуваних веб-сайтів.",
-  "settings_pane_topsites_options_showmore": "Показувати два рядки",
   "settings_pane_highlights_header": "Обране",
-  "settings_pane_highlights_body2": "Визначте свій спосіб, як повернутися до цікавих матеріалів, які ви нещодавно переглядали чи зберігали.",
   "settings_pane_highlights_options_bookmarks": "Закладки",
-  "settings_pane_highlights_options_visited": "Відвідані сайти",
   "settings_pane_snippets_header": "Фрагменти",
-  "settings_pane_snippets_body": "Читайте короткі й цікаві новини від Mozilla про Firefox, культуру інтернету, а також випадкові меми.",
-  "settings_pane_done_button": "Готово",
-  "settings_pane_topstories_options_sponsored": "Показувати матеріали від спонсорів",
   "edit_topsites_button_text": "Змінити",
   "edit_topsites_edit_button": "Змінити цей сайт",
   "topsites_form_add_header": "Новий популярний сайт",
   "topsites_form_edit_header": "Редагувати популярний сайт",
   "topsites_form_title_label": "Заголовок",
   "topsites_form_title_placeholder": "Введіть назву",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL власного зображення",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Попередній перегляд",
   "topsites_form_add_button": "Додати",
   "topsites_form_save_button": "Зберегти",
   "topsites_form_cancel_button": "Скасувати",
   "topsites_form_url_validation": "Необхідна дійсна адреса URL",
   "topsites_form_image_validation": "Не вдалося завантажити зображення. Спробуйте інший URL.",
   "pocket_read_more": "Популярні теми:",
   "pocket_read_even_more": "Переглянути більше історій",
-  "pocket_description": "Відкривайте високоякісні матеріали, які ви могли не побачити, завдяки Pocket, що тепер входить до складу Mozilla.",
   "highlights_empty_state": "Почніть перегляд і ми покажемо вам деякі чудові статті, відео та інші сторінки, нещодавно відвідані чи збережені вами до закладок тут.",
   "topstories_empty_state": "Готово. Перевірте згодом, щоб побачити більше матеріалів від {provider}. Не хочете чекати? Оберіть популярну тему, щоб знайти більше цікавих матеріалів з усього Інтернету.",
   "manual_migration_explanation2": "Спробуйте Firefox із закладками, історією та паролями з іншого браузера.",
   "manual_migration_cancel_button": "Ні, дякую",
   "manual_migration_import_button": "Імпортувати зараз",
   "error_fallback_default_info": "Ой, при завантаженні цього вмісту щось пішло не так.",
   "error_fallback_default_refresh_suggestion": "Оновіть сторінку, щоб спробувати знову.",
   "section_menu_action_remove_section": "Вилучити розділ",
   "section_menu_action_collapse_section": "Згорнути розділ",
   "section_menu_action_expand_section": "Розгорнути розділ",
   "section_menu_action_manage_section": "Керувати розділом",
   "section_menu_action_add_topsite": "Додати до популярних сайтів",
   "section_menu_action_move_up": "Вгору",
   "section_menu_action_move_down": "Вниз",
-  "section_menu_action_privacy_notice": "Повідомлення про приватність"
+  "section_menu_action_privacy_notice": "Повідомлення про приватність",
+  "prefs_restore_defaults_button": "Відновити типові",
+  "settings_pane_header": "Налаштування нової вкладки",
+  "settings_pane_body2": "Оберіть, що ви побачите на цій сторінці.",
+  "settings_pane_search_header": "Пошук",
+  "settings_pane_search_body": "Пошук в Інтернеті з нової вкладки.",
+  "settings_pane_topsites_body": "Доступ до найчастіше відвідуваних веб-сайтів.",
+  "settings_pane_topsites_options_showmore": "Показувати два рядки",
+  "settings_pane_highlights_body2": "Визначте свій спосіб, як повернутися до цікавих матеріалів, які ви нещодавно переглядали чи зберігали.",
+  "settings_pane_highlights_options_visited": "Відвідані сайти",
+  "settings_pane_snippets_body": "Читайте короткі й цікаві новини від Mozilla про Firefox, культуру інтернету, а також випадкові меми.",
+  "settings_pane_done_button": "Готово",
+  "settings_pane_topstories_options_sponsored": "Показувати матеріали від спонсорів",
+  "pocket_description": "Відкривайте високоякісні матеріали, які ви могли не побачити, завдяки Pocket, що тепер входить до складу Mozilla."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>ويب پر تلاش کريں</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="ويب پر تلاش کريں" title="ويب پر تلاش کريں"/><button id="searchSubmit" class="search-button" title="تلاش"><span class="sr-only"><span>تلاش</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>بہترین سائٹیں</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="اس سائٹ کی تدوین کریں"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket کی جانب سے تجویز کردہ</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>مشہور مضامین:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>شہ سرخياں</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="اپنے نئے ٹیب کہ صفحہ کی تخصیص کریں"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "تلاش",
   "search_header": "{search_engine_name} پر تلاش کریں",
   "search_web_placeholder": "ويب پر تلاش کريں",
   "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": "سیکھیں کہ یہ کیسے کام کرتا ہے۔",
   "section_disclaimer_topstories_buttontext": "ٹھیک ہے مجھے سمجھ آگئی ہے",
   "prefs_home_header": "Firefox ابتائی مواد",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "طےشدہ بحال کریں",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "سائٹس جو آُپ سب سے زیادہ ملاحظہ کرتے ہیں",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "مزید سیکھیں",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Mozilla اورFirefox کی جانب سے تازہ کاریاں",
   "settings_pane_button_label": "اپنے نئے ٹیب کہ صفحہ کی تخصیص کریں",
-  "settings_pane_header": "نئے َٹیب کی ترجیحات",
-  "settings_pane_body2": "انتخاب کریں آپ اس صفحہ پر کیا دیکھنا چاہیں گے۔",
-  "settings_pane_search_header": "تلاش",
-  "settings_pane_search_body": "اپنے نئے ٹیب سے وہب پر تلاش کریں۔",
   "settings_pane_topsites_header": "بہترین سائٹیں",
-  "settings_pane_topsites_body": "اپنی سب سے زیادہ دورہ کردہ ویب سائٹ تک رسائی حاصل کریں۔",
-  "settings_pane_topsites_options_showmore": "دو قطاریں دکھائیں",
   "settings_pane_highlights_header": "شہ سرخياں",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "نشانیاں",
-  "settings_pane_highlights_options_visited": "ملاحظہ کیے گئے سائٹس",
   "settings_pane_snippets_header": "سنپیٹ",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "ہوگیا",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "تدوین",
   "edit_topsites_edit_button": "اس سائٹ کی تدوین کریں",
   "topsites_form_add_header": "نئی بہترین سائٹ",
   "topsites_form_edit_header": "بہترین سائٹٹ کیی تدوین کریں",
   "topsites_form_title_label": "عنوان",
   "topsites_form_title_placeholder": "ایک عنوان داخل کریں",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,26 +69,34 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "پیش منظر",
   "topsites_form_add_button": "اظافہ کریں",
   "topsites_form_save_button": "محفوظ کریں",
   "topsites_form_cancel_button": "منسوخ کریں",
   "topsites_form_url_validation": "جائز URL درکار ہے",
   "topsites_form_image_validation": "نقش لوڈ ہونے میں ناکام رہا۔ براہ مہربانی ایک مختلف URL کو آزمائیں۔",
   "pocket_read_more": "مشہور مضامین:",
   "pocket_read_even_more": "مزید کہانیاں دیکھیں",
-  "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.",
   "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_cancel_button": "نہیں شکریہ",
   "manual_migration_import_button": "ابھی درآمد کری",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
   "section_menu_action_collapse_section": "Collapse Section",
   "section_menu_action_expand_section": "Expand Section",
   "section_menu_action_manage_section": "Manage Section",
   "section_menu_action_add_topsite": "Add Top Site",
   "section_menu_action_move_up": "اوپر کریں",
   "section_menu_action_move_down": "نیچے کریں",
   "section_menu_action_privacy_notice": "رازداری کا نوٹس",
-  "prefs_topstories_description": "اعلی میعار کا مواد جو شاید آپ بصورت دیگر کھو دیں"
+  "prefs_restore_defaults_button": "طےشدہ بحال کریں",
+  "prefs_topstories_description": "اعلی میعار کا مواد جو شاید آپ بصورت دیگر کھو دیں",
+  "settings_pane_header": "نئے َٹیب کی ترجیحات",
+  "settings_pane_body2": "انتخاب کریں آپ اس صفحہ پر کیا دیکھنا چاہیں گے۔",
+  "settings_pane_search_header": "تلاش",
+  "settings_pane_search_body": "اپنے نئے ٹیب سے وہب پر تلاش کریں۔",
+  "settings_pane_topsites_body": "اپنی سب سے زیادہ دورہ کردہ ویب سائٹ تک رسائی حاصل کریں۔",
+  "settings_pane_topsites_options_showmore": "دو قطاریں دکھائیں",
+  "settings_pane_highlights_options_visited": "ملاحظہ کیے گئے سائٹس",
+  "settings_pane_done_button": "ہوگیا"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Internetda izlash</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Internetda izlash" title="Internetda izlash"/><button id="searchSubmit" class="search-button" title="Qidiruv"><span class="sr-only"><span>Qidiruv</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Ommabop saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bo‘lim kontekst menyusini ochish</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Bu saytni tahrirlash"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket tomonidan tavsiya qilingan</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bo‘lim kontekst menyusini ochish</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Mashhur mavzular:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Saralangan saytlar</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Bo‘lim kontekst menyusini ochish</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Yangi ichki oyna sahifasini sozlash"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Qidiruv",
   "search_header": "{search_engine_name} Qidiruv bilan izlash",
   "search_web_placeholder": "Internetda izlash",
   "section_disclaimer_topstories": "Internetdagi eng qiziqarli maqolalar siz o‘qiyotgan ma’lumotlar asosida. Hozirda Mozillaning qismiga aylangan Pocket xizmatidan.",
   "section_disclaimer_topstories_linktext": "Uning qanday ishlashini o‘rganing.",
   "section_disclaimer_topstories_buttontext": "Ok, tushundim",
   "prefs_home_header": "Firefox bosh sahifasi",
   "prefs_home_description": "Firefox bosh sahifasida qaysi kontent chiqishi kerakligini tanlang.",
-  "prefs_restore_defaults_button": "Asliga tiklash",
   "prefs_section_rows_option": "{num} qator;{num} qator",
   "prefs_search_header": "Internetdan qidirish",
   "prefs_topsites_description": "Tez-tez tashrif buyuradigan saytlaringiz",
   "prefs_topstories_description2": "Siz uchun moslangan internetdagi ajoyib kontent",
   "prefs_topstories_options_sponsored_label": "Homiylik maqolalari",
   "prefs_topstories_sponsored_learn_more": "Batafsil",
   "prefs_highlights_description": "Saqlangan yoki tashrif buyurgan saralangan saytlaringiz",
   "prefs_highlights_options_visited_label": "Kirilgan sahifalar",
   "prefs_highlights_options_download_label": "Oxirgi yuklanmalar",
   "prefs_highlights_options_pocket_label": "Pocket’ga saqlangan sahifalar",
   "prefs_snippets_description": "Mozilla va Firefox yangilanishlari",
   "settings_pane_button_label": "Yangi ichki oyna sahifasini sozlash",
-  "settings_pane_header": "Yangi ichki oyna parametrlari",
-  "settings_pane_body2": "Bu sahifada nimani ko‘rishni xohlasangiz, o‘shani tanlang.",
-  "settings_pane_search_header": "Izlash",
-  "settings_pane_search_body": "Yangi ichki oynada internetdan izlash.",
   "settings_pane_topsites_header": "Ommabop saytlar",
-  "settings_pane_topsites_body": "Eng ko‘p kirilgan saytlarga kirish.",
-  "settings_pane_topsites_options_showmore": "Ikki qatorda ko‘rsatish",
   "settings_pane_highlights_header": "Ajratilgan saytlar",
-  "settings_pane_highlights_body2": "So‘nggi kirilgan qiziqarli saytlar yoki xatcho‘plarga qaytish yo‘lini toping.",
   "settings_pane_highlights_options_bookmarks": "Xatcho‘plar",
-  "settings_pane_highlights_options_visited": "Kirilgan saytlar",
   "settings_pane_snippets_header": "Parchalar",
-  "settings_pane_snippets_body": "Mozilladan internet madaniyati, tasodifiy memlar, Firefox haqidagi qisqa va oxirgi yangiliklarni o‘qib turing.",
-  "settings_pane_done_button": "Tayyor",
-  "settings_pane_topstories_options_sponsored": "Homiylik maqolalarini ko‘rsatish",
   "edit_topsites_button_text": "Tahrirlash",
   "edit_topsites_edit_button": "Bu saytni tahrirlash",
   "topsites_form_add_header": "Yangi ommabop sayt",
   "topsites_form_edit_header": "Ommabop saytni tahrirlash",
   "topsites_form_title_label": "Sarlavha",
   "topsites_form_title_placeholder": "Nomini kiriting",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "URL rasmi",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Ko’rib chiqish",
   "topsites_form_add_button": "Qo‘shish",
   "topsites_form_save_button": "Saqlash",
   "topsites_form_cancel_button": "Bekor qilish",
   "topsites_form_url_validation": "URL manzilini bexato kiriting",
   "topsites_form_image_validation": "Rasm yuklanmadi. Boshqa URL manzildan foydalaning.",
   "pocket_read_more": "Mashhur mavzular:",
   "pocket_read_even_more": "Yana maqolalar ko‘rish",
-  "pocket_description": "Endi Mozilla tarkibiga kiruvchi Pocket xizmati yordamida yuqori sifatli kontentni o‘zingiz uchun kashf qiling. Endi siz o‘qishga vaqtingiz bo‘lmagan saytlarni keyinroq ham o‘qiy olasiz.",
   "highlights_empty_state": "Saytlarni ko‘rishni boshlashingiz bilan biz sizga ajoyib maqola, video va oxirgi kirilgan yoki xatcho‘plarga qo‘shilgan sahifalarni ko‘rsatamiz.",
   "topstories_empty_state": "Hammasini ko‘rib chiqdingiz. {provider}dan so‘nggi hikoyalarni o‘qish uchun keyinroq bu sahifaga qayting. Kuta olmaysizmi? Internetdan eng zo‘r hikoyalarni topish uchun ommabop mavzuni tanlang.",
   "manual_migration_explanation2": "Firefox brauzerida boshqa brauzerdagi xatcho‘p, tarix va parollarni ochib ko‘ring.",
   "manual_migration_cancel_button": "Yoʻq, kerak emas",
   "manual_migration_import_button": "Hozir import qilish",
   "error_fallback_default_info": "Kontent yuklanayotganda qandaydir xatolik yuz berdi.",
   "error_fallback_default_refresh_suggestion": "Yana urinib ko‘rish uchun sahifani yangilang.",
   "section_menu_action_remove_section": "Qismni olib tashlash",
   "section_menu_action_collapse_section": "Qismni yig‘ish",
   "section_menu_action_expand_section": "Qismni yoyish",
   "section_menu_action_manage_section": "Qismni boshqarish",
   "section_menu_action_add_topsite": "Ommabop saytga qo‘shish",
   "section_menu_action_move_up": "Tepaga ko‘tarish",
   "section_menu_action_move_down": "Pastga tushirish",
-  "section_menu_action_privacy_notice": "Maxfiylik eslatmalari"
+  "section_menu_action_privacy_notice": "Maxfiylik eslatmalari",
+  "prefs_restore_defaults_button": "Asliga tiklash",
+  "settings_pane_header": "Yangi ichki oyna parametrlari",
+  "settings_pane_body2": "Bu sahifada nimani ko‘rishni xohlasangiz, o‘shani tanlang.",
+  "settings_pane_search_header": "Izlash",
+  "settings_pane_search_body": "Yangi ichki oynada internetdan izlash.",
+  "settings_pane_topsites_body": "Eng ko‘p kirilgan saytlarga kirish.",
+  "settings_pane_topsites_options_showmore": "Ikki qatorda ko‘rsatish",
+  "settings_pane_highlights_body2": "So‘nggi kirilgan qiziqarli saytlar yoki xatcho‘plarga qaytish yo‘lini toping.",
+  "settings_pane_highlights_options_visited": "Kirilgan saytlar",
+  "settings_pane_snippets_body": "Mozilladan internet madaniyati, tasodifiy memlar, Firefox haqidagi qisqa va oxirgi yangiliklarni o‘qib turing.",
+  "settings_pane_done_button": "Tayyor",
+  "settings_pane_topstories_options_sponsored": "Homiylik maqolalarini ko‘rsatish",
+  "pocket_description": "Endi Mozilla tarkibiga kiruvchi Pocket xizmati yordamida yuqori sifatli kontentni o‘zingiz uchun kashf qiling. Endi siz o‘qishga vaqtingiz bo‘lmagan saytlarni keyinroq ham o‘qiy olasiz."
 };
--- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Tìm trên mạng</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Tìm trên mạng" title="Tìm trên mạng"/><button id="searchSubmit" class="search-button" title="Tìm kiếm"><span class="sr-only"><span>Tìm kiếm</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Trang web hàng đầu</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Chỉnh sửa trang web này"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Được đề nghị bởi Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Các chủ đề phổ biến:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Nổi bật</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Tùy biến trang Tab mới"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "Tìm kiếm",
   "search_header": "Công cụ tìm kiếm {search_engine_name}",
   "search_web_placeholder": "Tìm trên mạng",
   "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": "Ok, đã hiểu",
   "prefs_home_header": "Firefox Home Content",
   "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
-  "prefs_restore_defaults_button": "Restore Defaults",
   "prefs_section_rows_option": "{num} row;{num} rows",
   "prefs_search_header": "Web Search",
   "prefs_topsites_description": "The sites you visit most",
   "prefs_topstories_description2": "Great content from around the web, personalized for you",
   "prefs_topstories_options_sponsored_label": "Sponsored Stories",
   "prefs_topstories_sponsored_learn_more": "Learn more",
   "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
   "prefs_highlights_options_visited_label": "Visited Pages",
   "prefs_highlights_options_download_label": "Most Recent Download",
   "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
   "prefs_snippets_description": "Updates from Mozilla and Firefox",
   "settings_pane_button_label": "Tùy biến trang Tab mới",
-  "settings_pane_header": "Tùy chỉnh cho tab mới",
-  "settings_pane_body2": "Chọn những gì bạn thấy trên trang này.",
-  "settings_pane_search_header": "Tìm kiếm",
-  "settings_pane_search_body": "Tìm kiếm Web từ thẻ mới của bạn.",
   "settings_pane_topsites_header": "Các trang Web hàng đầu",
-  "settings_pane_topsites_body": "Truy cập vào các trang web mà bạn truy cập vào nhiều nhất.",
-  "settings_pane_topsites_options_showmore": "Hiển thị hai hàng",
   "settings_pane_highlights_header": "Nổi bật",
-  "settings_pane_highlights_body2": "Find your way back to interesting things you’ve recently visited or bookmarked.",
   "settings_pane_highlights_options_bookmarks": "Trang đánh dấu",
-  "settings_pane_highlights_options_visited": "Visited Sites",
   "settings_pane_snippets_header": "Snippets",
-  "settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
-  "settings_pane_done_button": "Xong",
-  "settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
   "edit_topsites_button_text": "Chỉnh sửa",
   "edit_topsites_edit_button": "Chỉnh sửa trang web này",
   "topsites_form_add_header": "New Top Site",
   "topsites_form_edit_header": "Edit Top Site",
   "topsites_form_title_label": "Title",
   "topsites_form_title_placeholder": "Enter a title",
   "topsites_form_url_label": "URL",
   "topsites_form_image_url_label": "Custom Image URL",
@@ -81,17 +69,16 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "Preview",
   "topsites_form_add_button": "Thêm",
   "topsites_form_save_button": "Lưu lại",
   "topsites_form_cancel_button": "Hủy bỏ",
   "topsites_form_url_validation": "Yêu cầu URL hợp lệ",
   "topsites_form_image_validation": "Image failed to load. Try a different URL.",
   "pocket_read_more": "Các chủ đề phổ biến:",
   "pocket_read_even_more": "Xem nhiều câu chuyện hơn",
-  "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.",
   "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": "Thử Firefox với trang đánh dấu, lịch sử và mật khẩu từ trình duyệt khác.",
   "manual_migration_cancel_button": "Không, cảm ơn",
   "manual_migration_import_button": "Nhập ngay bây giờ",
   "error_fallback_default_info": "Oops, something went wrong loading this content.",
   "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
   "section_menu_action_remove_section": "Remove Section",
@@ -121,18 +108,25 @@ window.gActivityStreamStrings = {
   "section_info_privacy_notice": "Chính sách riêng tư",
   "welcome_title": "Chào mừng đến với tab mới",
   "welcome_body": "Firefox sẽ sử dụng không gian này để hiển thị của bạn có liên quan nhất đánh dấu, bài viết, video và các trang bạn đã truy cập gần đây, do đó, bạn có thể quay lại công việc một cách dễ dàng.",
   "welcome_label": "Đang xác định phần nổi bật của bạn",
   "time_label_less_than_minute": "<1phút",
   "time_label_minute": "{number}phút",
   "time_label_hour": "{number}giờ",
   "time_label_day": "{number}ngày",
+  "settings_pane_header": "Tùy chỉnh cho tab mới",
+  "settings_pane_body2": "Chọn những gì bạn thấy trên trang này.",
+  "settings_pane_search_header": "Tìm kiếm",
+  "settings_pane_search_body": "Tìm kiếm Web từ thẻ mới của bạn.",
+  "settings_pane_topsites_body": "Truy cập vào các trang web mà bạn truy cập vào nhiều nhất.",
+  "settings_pane_topsites_options_showmore": "Hiển thị hai hàng",
   "settings_pane_bookmarks_header": "Trang đánh dấu gần đây",
   "settings_pane_visit_again_header": "Truy cập lại",
+  "settings_pane_done_button": "Xong",
   "edit_topsites_showmore_button": "Xem thêm",
   "edit_topsites_showless_button": "Hiển thị ngắn gọn lại",
   "edit_topsites_done_button": "Xong",
   "edit_topsites_pin_button": "Ghim trang này",
   "edit_topsites_unpin_button": "Bỏ ghim trang này",
   "edit_topsites_dismiss_button": "Bỏ qua trang này",
   "edit_topsites_add_button": "Thêm",
   "pocket_feedback_header": "Tốt nhất của web, được quản lý bởi hơn 25 triệu người."
--- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>在网络上搜索</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="在网络上搜索" title="在网络上搜索"/><button id="searchSubmit" class="search-button" title="搜索"><span class="sr-only"><span>搜索</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>常用网站</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>打开板块快捷菜单</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="编辑此网站"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket 推荐</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>打开板块快捷菜单</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>热门主题:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>集锦</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>打开板块快捷菜单</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="定制您的新标签页"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "搜索",
   "search_header": "{search_engine_name} 搜索",
   "search_web_placeholder": "在网络上搜索",
   "section_disclaimer_topstories": "根据您的阅读喜好推荐网上的有趣报道。出自 Pocket,现在是 Mozilla 的一部分。",
   "section_disclaimer_topstories_linktext": "了解它的工作原理。",
   "section_disclaimer_topstories_buttontext": "我明白了",
   "prefs_home_header": "Firefox 主页内容",
   "prefs_home_description": "选择要在您的 Firefox 主页上显示的板块。",
-  "prefs_restore_defaults_button": "恢复默认设置",
   "prefs_section_rows_option": "{num} 行",
   "prefs_search_header": "网络搜索",
   "prefs_topsites_description": "您经常访问的网站",
   "prefs_topstories_description2": "来自网络的精彩内容,为您量身打造",
   "prefs_topstories_options_sponsored_label": "赞助内容",
   "prefs_topstories_sponsored_learn_more": "详细了解",
-  "prefs_highlights_description": "您已保存或访问过的部分网站",
+  "prefs_highlights_description": "您访问过或保存过的网站精选",
   "prefs_highlights_options_visited_label": "访问过的页面",
   "prefs_highlights_options_download_label": "最近下载",
   "prefs_highlights_options_pocket_label": "保存在 Pocket 的页面",
   "prefs_snippets_description": "来自 Mozilla 和 Firefox 的快讯",
   "settings_pane_button_label": "定制您的新标签页",
-  "settings_pane_header": "新标签页选项",
-  "settings_pane_body2": "选择您在此页面上想看到什么。",
-  "settings_pane_search_header": "搜索",
-  "settings_pane_search_body": "直接在您的新标签页搜遍网络。",
   "settings_pane_topsites_header": "常用网站",
-  "settings_pane_topsites_body": "显示您经常访问的网站。",
-  "settings_pane_topsites_options_showmore": "双行显示",
   "settings_pane_highlights_header": "集锦",
-  "settings_pane_highlights_body2": "根据您最近访问的页面和添加的书签推荐您感兴趣的东西。",
   "settings_pane_highlights_options_bookmarks": "书签",
-  "settings_pane_highlights_options_visited": "访问过的网站",
   "settings_pane_snippets_header": "只言片语",
-  "settings_pane_snippets_body": "阅读 Mozilla 就 Firefox 与互联网文化提供的简短有趣的小文章,偶尔还会介绍有关模因的小知识。",
-  "settings_pane_done_button": "完成",
-  "settings_pane_topstories_options_sponsored": "显示赞助报道",
   "edit_topsites_button_text": "编辑",
   "edit_topsites_edit_button": "编辑此网站",
   "topsites_form_add_header": "新建常用网站",
   "topsites_form_edit_header": "编辑常用网站",
   "topsites_form_title_label": "标题",
   "topsites_form_title_placeholder": "输入标题",
   "topsites_form_url_label": "网址",
   "topsites_form_image_url_label": "自定义图像网址",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "预览",
   "topsites_form_add_button": "添加",
   "topsites_form_save_button": "保存",
   "topsites_form_cancel_button": "取消",
   "topsites_form_url_validation": "需要有效的网址",
   "topsites_form_image_validation": "图像加载失败。请尝试其他网址。",
   "pocket_read_more": "热门主题:",
   "pocket_read_even_more": "查看更多文章",
-  "pocket_description": "借助 Pocket(目前属 Mozilla 旗下)发现您不容错过的高品质内容。",
-  "highlights_empty_state": "开始浏览旅程吧,之后这里会显示您最近看过或加了书签的精彩文章、视频以及其他页面。",
+  "highlights_empty_state": "开始网上冲浪之旅吧,之后这里会显示您最近看过或加了书签的精彩文章、视频与其他页面。",
   "topstories_empty_state": "所有文章都读完啦!晚点再来,{provider} 将推荐更多热门文章。等不及了?选择一个热门话题,找到更多网上的好文章。",
   "manual_migration_explanation2": "把在其他浏览器中保存的书签、历史记录和密码带到 Firefox 吧。",
   "manual_migration_cancel_button": "不用了",
   "manual_migration_import_button": "立即导入",
   "error_fallback_default_info": "哎呀,加载此内容出错了。",
   "error_fallback_default_refresh_suggestion": "刷新页面以重试。",
   "section_menu_action_remove_section": "移除板块",
   "section_menu_action_collapse_section": "折叠板块",
   "section_menu_action_expand_section": "展开板块",
   "section_menu_action_manage_section": "管理板块",
   "section_menu_action_add_topsite": "添加常用网站",
   "section_menu_action_move_up": "上移",
   "section_menu_action_move_down": "下移",
-  "section_menu_action_privacy_notice": "隐私声明"
+  "section_menu_action_privacy_notice": "隐私声明",
+  "prefs_restore_defaults_button": "恢复默认设置",
+  "settings_pane_header": "新标签页偏好设置",
+  "settings_pane_body2": "选择您想在此页面上看到什么。",
+  "settings_pane_search_header": "搜索",
+  "settings_pane_search_body": "在新标签页内就能搜遍网络。",
+  "settings_pane_topsites_body": "显示您经常访问的网站。",
+  "settings_pane_topsites_options_showmore": "双行显示",
+  "settings_pane_highlights_body2": "根据您最近访问的页面和添加的书签推荐您感兴趣的东西。",
+  "settings_pane_highlights_options_visited": "访问过的网站",
+  "settings_pane_snippets_body": "阅读 Mozilla 就 Firefox 与互联网文化提供的简短有趣的小文章,偶尔还会介绍有关模因的小知识。",
+  "settings_pane_done_button": "完成",
+  "settings_pane_topstories_options_sponsored": "显示赞助内容",
+  "pocket_description": "借助 Pocket(目前属 Mozilla 旗下)发现您不容错过的高品质内容。"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>搜尋 Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="搜尋 Web" title="搜尋 Web"/><button id="searchSubmit" class="search-button" title="搜尋"><span class="sr-only"><span>搜尋</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>熱門網站</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>開啟段落內容選單</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="編輯此網站"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Pocket 推薦</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>開啟段落內容選單</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>熱門主題:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>精選網站</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>開啟段落內容選單</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="自訂您的新分頁頁面"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- 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
@@ -35,44 +35,32 @@ window.gActivityStreamStrings = {
   "search_button": "搜尋",
   "search_header": "{search_engine_name} 搜尋",
   "search_web_placeholder": "搜尋 Web",
   "section_disclaimer_topstories": "依照您閱讀過的內容,向您推薦網路上最有趣的內容。本功能由 Pocket(Mozilla 的一員)提供。",
   "section_disclaimer_topstories_linktext": "了解運作原理。",
   "section_disclaimer_topstories_buttontext": "好的,知道了",
   "prefs_home_header": "Firefox 首頁內容",
   "prefs_home_description": "選擇要在您的 Firefox 首頁顯示哪些內容。",
-  "prefs_restore_defaults_button": "回復為預設值",
   "prefs_section_rows_option": "{num} 行",
   "prefs_search_header": "網頁搜尋",
   "prefs_topsites_description": "最常造訪的網站",
   "prefs_topstories_description2": "網路上的各種超棒內容,為您量身打造",
   "prefs_topstories_options_sponsored_label": "贊助內容",
   "prefs_topstories_sponsored_learn_more": "了解更多",
   "prefs_highlights_description": "您儲存或造訪過的網站精選",
   "prefs_highlights_options_visited_label": "造訪過的頁面",
   "prefs_highlights_options_download_label": "最新下載",
   "prefs_highlights_options_pocket_label": "已將頁面儲存至 Pocket",
   "prefs_snippets_description": "來自 Mozilla 及 Firefox 的大小事",
   "settings_pane_button_label": "自訂您的新分頁頁面",
-  "settings_pane_header": "新分頁偏好設定",
-  "settings_pane_body2": "選擇要在此頁面看到哪些東西。",
-  "settings_pane_search_header": "搜尋",
-  "settings_pane_search_body": "直接在新分頁頁面搜尋網頁。",
   "settings_pane_topsites_header": "熱門網站",
-  "settings_pane_topsites_body": "前往您最常造訪的網站。",
-  "settings_pane_topsites_options_showmore": "顯示兩行",
   "settings_pane_highlights_header": "精選網站",
-  "settings_pane_highlights_body2": "快速回到您最近在網站發現的有趣事物,或是剛加入書籤的頁面。",
   "settings_pane_highlights_options_bookmarks": "書籤",
-  "settings_pane_highlights_options_visited": "造訪過的網站",
   "settings_pane_snippets_header": "隻字片語",
-  "settings_pane_snippets_body": "閱讀來自 Mozilla,關於 Firefox、網路文化、偶而還有一些不同 meme 的最新消息。",
-  "settings_pane_done_button": "完成",
-  "settings_pane_topstories_options_sponsored": "顯示贊助內容",
   "edit_topsites_button_text": "編輯",
   "edit_topsites_edit_button": "編輯此網站",
   "topsites_form_add_header": "新增熱門網站",
   "topsites_form_edit_header": "編輯熱門網站",
   "topsites_form_title_label": "標題",
   "topsites_form_title_placeholder": "輸入標題",
   "topsites_form_url_label": "網址",
   "topsites_form_image_url_label": "自訂圖片網址",
@@ -81,25 +69,37 @@ window.gActivityStreamStrings = {
   "topsites_form_preview_button": "預覽",
   "topsites_form_add_button": "新增",
   "topsites_form_save_button": "儲存",
   "topsites_form_cancel_button": "取消",
   "topsites_form_url_validation": "請輸入有效的網址",
   "topsites_form_image_validation": "圖片載入失敗,請改用不同網址。",
   "pocket_read_more": "熱門主題:",
   "pocket_read_even_more": "檢視更多文章",
-  "pocket_description": "透過 Mozilla 旗下的 Pocket 服務,發現您可能錯過的優質內容。",
   "highlights_empty_state": "開始上網,我們就會把您在網路上發現的好文章、影片、剛加入書籤的頁面顯示於此。",
   "topstories_empty_state": "所有文章都讀完啦!晚點再來,{provider} 將提供更多推薦故事。等不及了?選擇熱門主題,看看 Web 上各式精采資訊。",
   "manual_migration_explanation2": "試試將其他瀏覽器的書籤、瀏覽記錄與密碼匯入 Firefox。",
   "manual_migration_cancel_button": "不必了",
   "manual_migration_import_button": "立即匯入",
   "error_fallback_default_info": "唉唷,載入內容時發生錯誤。",
   "error_fallback_default_refresh_suggestion": "請重新整理頁面再試一次。",
   "section_menu_action_remove_section": "移除段落",
   "section_menu_action_collapse_section": "摺疊段落",
   "section_menu_action_expand_section": "展開段落",
   "section_menu_action_manage_section": "管理段落",
   "section_menu_action_add_topsite": "新增熱門網站",
   "section_menu_action_move_up": "上移",
   "section_menu_action_move_down": "下移",
-  "section_menu_action_privacy_notice": "隱私權公告"
+  "section_menu_action_privacy_notice": "隱私權公告",
+  "prefs_restore_defaults_button": "回復為預設值",
+  "settings_pane_header": "新分頁偏好設定",
+  "settings_pane_body2": "選擇要在此頁面看到哪些東西。",
+  "settings_pane_search_header": "搜尋",
+  "settings_pane_search_body": "直接在新分頁頁面搜尋網頁。",
+  "settings_pane_topsites_body": "前往您最常造訪的網站。",
+  "settings_pane_topsites_options_showmore": "顯示兩行",
+  "settings_pane_highlights_body2": "快速回到您最近在網站發現的有趣事物,或是剛加入書籤的頁面。",
+  "settings_pane_highlights_options_visited": "造訪過的網站",
+  "settings_pane_snippets_body": "閱讀來自 Mozilla,關於 Firefox、網路文化、偶而還有一些不同 meme 的最新消息。",
+  "settings_pane_done_button": "完成",
+  "settings_pane_topstories_options_sponsored": "顯示贊助內容",
+  "pocket_description": "透過 Mozilla 旗下的 Pocket 服務,發現您可能錯過的優質內容。"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react.js",
   "resource://activity-stream/vendor/react-dom.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/static/activity-stream-debug.html
+++ b/browser/extensions/activity-stream/prerendered/static/activity-stream-debug.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react-dev.js",
   "resource://activity-stream/vendor/react-dom-dev.js",
   "resource://activity-stream/vendor/prop-types.js",
   "resource://activity-stream/vendor/react-intl.js",
@@ -34,11 +28,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
+++ b/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
@@ -8,23 +8,17 @@
     <link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
     <link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
   </head>
   <body class="activity-stream">
     <div id="root"><div class="outer-wrapper fixed-to-top" data-reactroot=""><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Search the Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Search the Web" title="Search the Web"/><button id="searchSubmit" class="search-button" title="Search"><span class="sr-only"><span>Search</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Top Sites</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section animation-enabled"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li><li class="card-outer placeholder"><a><div class="card"><div class="card-details no-image"><div class="card-text no-context no-description no-host-name no-image"><h4 class="card-title" dir="auto"></h4><p class="card-description" dir="auto"></p></div><div class="card-context"></div></div></div></a></li></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div>
     <div id="snippets-container">
       <div id="snippets"></div>
     </div>
-    <script>(() => {
-// Clear out any prerendered content if we shouldn't continue loading
-if (top !== window) {
-  document.documentElement.innerHTML = "";
-  return;
-}
-
+    <script>
 // Don't directly load the following scripts as part of html to let the page
 // finish loading to render the content sooner.
 for (const src of [
   "resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
   "chrome://browser/content/contentSearchUI.js",
   "resource://activity-stream/vendor/react-dev.js",
   "resource://activity-stream/vendor/react-dom-dev.js",
   "resource://activity-stream/vendor/prop-types.js",
@@ -35,11 +29,11 @@ for (const src of [
   "resource://activity-stream/data/content/activity-stream.bundle.js"
 ]) {
   // These dynamically inserted scripts by default are async, but we need them
   // to load in the desired order (i.e., bundle last).
   const script = document.body.appendChild(document.createElement("script"));
   script.async = false;
   script.src = src;
 }
-    })();</script>
+    </script>
   </body>
 </html>
--- a/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
@@ -1,272 +1,265 @@
-import {_ASRouter, ASRouter} from "lib/ASRouter.jsm";
-import {CHILD_TO_PARENT_MESSAGE_NAME, EXPERIMENT_PREF, PARENT_TO_CHILD_MESSAGE_NAME} from "./constants";
-import {ASRouterFeed} from "lib/ASRouterFeed.jsm";
-import {actionTypes as at} from "common/Actions.jsm";
-
-const ONBOARDING_FINISHED_PREF = "browser.onboarding.notification.finished";
+import {
+  CHILD_TO_PARENT_MESSAGE_NAME,
+  FAKE_LOCAL_MESSAGES,
+  FAKE_LOCAL_PROVIDER,
+  FAKE_REMOTE_MESSAGES,
+  FAKE_REMOTE_PROVIDER,
+  FakeRemotePageManager,
+  PARENT_TO_CHILD_MESSAGE_NAME
+} from "./constants";
+import {_ASRouter} from "lib/ASRouter.jsm";
 
-// Stubs methods on RemotePageManager
-class FakeRemotePageManager {
-  constructor() {
-    this.addMessageListener = sinon.stub();
-    this.sendAsyncMessage = sinon.stub();
-    this.removeMessageListener = sinon.stub();
-  }
-}
+const FAKE_PROVIDERS = [FAKE_LOCAL_PROVIDER, FAKE_REMOTE_PROVIDER];
+const ALL_MESSAGE_IDS = [...FAKE_LOCAL_MESSAGES, ...FAKE_REMOTE_MESSAGES].map(message => message.id);
 
-// Creates a message object that looks like messages returned by RemotePageManager listeners
-function createRemoteMessage(action) {
+// Creates a message object that looks like messages returned by
+// RemotePageManager listeners
+function fakeAsyncMessage(action) {
   return {data: action, target: new FakeRemotePageManager()};
 }
 
-const FAKE_MESSAGES = [
-  {id: "foo", template: "simple_template", content: {title: "Foo", body: "Foo123"}},
-  {id: "bar", template: "fancy_template", content: {title: "Foo", body: "Foo123"}},
-  {id: "baz", content: {title: "Foo", body: "Foo123"}}
-];
-const FAKE_MESSAGE_IDS = FAKE_MESSAGES.map(message => message.id);
-
 describe("ASRouter", () => {
   let Router;
   let channel;
   let sandbox;
   let blockList;
-  beforeEach(async () => {
-    sandbox = sinon.sandbox.create();
-    blockList = [];
-    Router = new _ASRouter({messages: FAKE_MESSAGES});
-    const storage = {
+  let fetchStub;
+  let clock;
+
+  function createFakeStorage() {
+    return {
       get: sandbox.stub().returns(Promise.resolve(blockList)),
       set: sandbox.stub().returns(Promise.resolve())
     };
+  }
+
+  async function createRouterAndInit(providers = FAKE_PROVIDERS) {
     channel = new FakeRemotePageManager();
-    await Router.init(channel, storage);
+    Router = new _ASRouter({providers});
+    await Router.init(channel, createFakeStorage());
+  }
+
+  beforeEach(async () => {
+    blockList = [];
+    sandbox = sinon.sandbox.create();
+    clock = sandbox.useFakeTimers();
+    fetchStub = sandbox.stub(global, "fetch")
+      .withArgs("http://fake.com/endpoint")
+      .resolves({ok: true, status: 200, json: () => Promise.resolve({messages: FAKE_REMOTE_MESSAGES})});
+    await createRouterAndInit();
   });
   afterEach(() => {
     sandbox.restore();
   });
+
   describe(".state", () => {
     it("should throw if an attempt to set .state was made", () => {
       assert.throws(() => {
         Router.state = {};
       });
     });
   });
+
   describe("#init", () => {
     it("should add a message listener to the RemotePageManager for incoming messages", () => {
       assert.calledWith(channel.addMessageListener, CHILD_TO_PARENT_MESSAGE_NAME);
       const [, listenerAdded] = channel.addMessageListener.firstCall.args;
       assert.isFunction(listenerAdded);
     });
-    it("should update the blockList state", () => {
-      blockList.push("MESSAGE_ID");
+    it("should set state.blockList to the block list in persistent storage", async () => {
+      blockList = ["MESSAGE_ID"];
+
+      Router = new _ASRouter({providers: FAKE_PROVIDERS});
+      await Router.init(channel, createFakeStorage());
 
-      assert.calledOnce(Router._storage.get);
-      assert.calledWithExactly(Router._storage.get, "blockList");
       assert.deepEqual(Router.state.blockList, ["MESSAGE_ID"]);
     });
+    it("should await .loadMessagesFromAllProviders() and add messages from providers to state.messages", async () => {
+      Router = new _ASRouter({providers: FAKE_PROVIDERS});
+
+      const loadMessagesSpy = sandbox.spy(Router, "loadMessagesFromAllProviders");
+      await Router.init(channel, createFakeStorage());
+
+      assert.calledOnce(loadMessagesSpy);
+      assert.isArray(Router.state.messages);
+      assert.lengthOf(Router.state.messages, FAKE_LOCAL_MESSAGES.length + FAKE_REMOTE_MESSAGES.length);
+    });
   });
-  describe("#sendNextMessage", () => {
-    afterEach(async () => {
-      // Reset the blockList after the test is finished.
-      await Router.setState(() => ({blockList: []}));
+
+  describe("#loadMessagesFromAllProviders", () => {
+    function assertRouterContainsMessages(messages) {
+      const messageIdsInRouter = Router.state.messages.map(m => m.id);
+      for (const message of messages) {
+        assert.include(messageIdsInRouter, message.id);
+      }
+    }
+
+    it("should not trigger an update if not enough time has passed for a provider", async () => {
+      await createRouterAndInit([
+        {id: "remotey", type: "remote", url: "http://fake.com/endpoint", updateCycleInMs: 300}
+      ]);
+
+      const previousState = Router.state;
+
+      // Since we've previously gotten messages during init and we haven't advanced our fake timer,
+      // no updates should be triggered.
+      await Router.loadMessagesFromAllProviders();
+      assert.equal(Router.state, previousState);
     });
+    it("should not trigger an update if we only have local providers", async () => {
+      await createRouterAndInit([
+        {id: "foo", type: "local", messages: FAKE_LOCAL_MESSAGES}
+      ]);
+
+      const previousState = Router.state;
+
+      clock.tick(300);
+
+      await Router.loadMessagesFromAllProviders();
+      assert.equal(Router.state, previousState);
+    });
+    it("should update messages for a provider if enough time has passed, without removing messages for other providers", async () => {
+      const NEW_MESSAGES = [{id: "new_123"}];
+      await createRouterAndInit([
+        {id: "remotey", type: "remote", url: "http://fake.com/endpoint", updateCycleInMs: 300},
+        {id: "alocalprovider", type: "local", messages: FAKE_LOCAL_MESSAGES}
+      ]);
+      fetchStub
+        .withArgs("http://fake.com/endpoint")
+        .resolves({ok: true, status: 200, json: () => Promise.resolve({messages: NEW_MESSAGES})});
+
+      clock.tick(301);
+      await Router.loadMessagesFromAllProviders();
+
+      // These are the new messages
+      assertRouterContainsMessages(NEW_MESSAGES);
+      // These are the local messages that should not have been deleted
+      assertRouterContainsMessages(FAKE_LOCAL_MESSAGES);
+    });
+  });
+
+  describe("blocking", () => {
     it("should not return a blocked message", async () => {
-      await Router.setState(() => ({blockList: [FAKE_MESSAGE_IDS[0], FAKE_MESSAGE_IDS[1]]}));
+      // Block all messages except the first
+      await Router.setState(() => ({blockList: ALL_MESSAGE_IDS.slice(1)}));
       const targetStub = {sendAsyncMessage: sandbox.stub()};
 
       await Router.sendNextMessage(targetStub, null);
 
       assert.calledOnce(targetStub.sendAsyncMessage);
-      assert.equal(Router.state.currentId, FAKE_MESSAGE_IDS[2]);
+      assert.equal(Router.state.currentId, ALL_MESSAGE_IDS[0]);
     });
-    it("should not return any message", async () => {
-      await Router.setState(() => ({blockList: [FAKE_MESSAGE_IDS[0], FAKE_MESSAGE_IDS[1], FAKE_MESSAGE_IDS[2]]}));
+    it("should not return a message if all messages are blocked", async () => {
+      await Router.setState(() => ({blockList: ALL_MESSAGE_IDS}));
       const targetStub = {sendAsyncMessage: sandbox.stub()};
 
       await Router.sendNextMessage(targetStub, null);
 
       assert.calledOnce(targetStub.sendAsyncMessage);
       assert.equal(Router.state.currentId, null);
     });
   });
+
   describe("#uninit", () => {
     it("should remove the message listener on the RemotePageManager", () => {
       const [, listenerAdded] = channel.addMessageListener.firstCall.args;
       assert.isFunction(listenerAdded);
 
       Router.uninit();
 
       assert.calledWith(channel.removeMessageListener, CHILD_TO_PARENT_MESSAGE_NAME, listenerAdded);
     });
   });
+
   describe("#onMessage: CONNECT_UI_REQUEST", () => {
     it("should set state.currentId to a message id", async () => {
-      await Router.onMessage(createRemoteMessage({type: "CONNECT_UI_REQUEST"}));
+      await Router.onMessage(fakeAsyncMessage({type: "CONNECT_UI_REQUEST"}));
 
-      assert.include(FAKE_MESSAGE_IDS, Router.state.currentId);
+      assert.include(ALL_MESSAGE_IDS, Router.state.currentId);
     });
     it("should send a message back to the to the target", async () => {
-      const msg = createRemoteMessage({type: "CONNECT_UI_REQUEST"});
+      const msg = fakeAsyncMessage({type: "CONNECT_UI_REQUEST"});
       await Router.onMessage(msg);
-
       const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.currentId);
       assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: currentMessage});
     });
     it("should send a CLEAR_MESSAGE message and set state.currentId to null if no messages are available", async () => {
       await Router.setState({messages: []});
-      const msg = createRemoteMessage({type: "CONNECT_UI_REQUEST"});
+      const msg = fakeAsyncMessage({type: "CONNECT_UI_REQUEST"});
       await Router.onMessage(msg);
 
       assert.isNull(Router.state.currentId);
       assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
     });
   });
+
   describe("#onMessage: BLOCK_MESSAGE_BY_ID", () => {
     it("should add the id to the blockList, state.currentId to null if it is the blocked message id, and send a CLEAR_MESSAGE message", async () => {
       await Router.setState({currentId: "foo"});
-      const msg = createRemoteMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}});
+      const msg = fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}});
       await Router.onMessage(msg);
 
       assert.isTrue(Router.state.blockList.includes("foo"));
       assert.isNull(Router.state.currentId);
       assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
       assert.calledOnce(Router._storage.set);
       assert.calledWithExactly(Router._storage.set, "blockList", ["foo"]);
     });
   });
+
   describe("#onMessage: UNBLOCK_MESSAGE_BY_ID", () => {
     it("should remove the id from the blockList", async () => {
-      await Router.onMessage(createRemoteMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+      await Router.onMessage(fakeAsyncMessage({type: "BLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
       assert.isTrue(Router.state.blockList.includes("foo"));
-      await Router.onMessage(createRemoteMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+      await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
 
       assert.isFalse(Router.state.blockList.includes("foo"));
     });
     it("should save the blockList", async () => {
-      await Router.onMessage(createRemoteMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
+      await Router.onMessage(fakeAsyncMessage({type: "UNBLOCK_MESSAGE_BY_ID", data: {id: "foo"}}));
 
       assert.calledOnce(Router._storage.set);
       assert.calledWithExactly(Router._storage.set, "blockList", []);
     });
   });
+
   describe("#onMessage: ADMIN_CONNECT_STATE", () => {
     it("should send a message containing the whole state", async () => {
-      const msg = createRemoteMessage({type: "ADMIN_CONNECT_STATE"});
+      const msg = fakeAsyncMessage({type: "ADMIN_CONNECT_STATE"});
       await Router.onMessage(msg);
 
       assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: Router.state});
     });
   });
 
   describe("#onMessage: CONNECT_UI_REQUEST GET_NEXT_MESSAGE", () => {
     it("should call sendNextMessage on CONNECT_UI_REQUEST", async () => {
       sandbox.stub(Router, "sendNextMessage").resolves();
-      const msg = createRemoteMessage({type: "CONNECT_UI_REQUEST"});
+      const msg = fakeAsyncMessage({type: "CONNECT_UI_REQUEST"});
 
       await Router.onMessage(msg);
 
       assert.calledOnce(Router.sendNextMessage);
       assert.calledWithExactly(Router.sendNextMessage, sinon.match.instanceOf(FakeRemotePageManager));
     });
     it("should call sendNextMessage on GET_NEXT_MESSAGE", async () => {
       sandbox.stub(Router, "sendNextMessage").resolves();
-      const msg = createRemoteMessage({type: "GET_NEXT_MESSAGE"});
+      const msg = fakeAsyncMessage({type: "GET_NEXT_MESSAGE"});
 
       await Router.onMessage(msg);
 
       assert.calledOnce(Router.sendNextMessage);
       assert.calledWithExactly(Router.sendNextMessage, sinon.match.instanceOf(FakeRemotePageManager));
     });
   });
-});
-
-describe("ASRouterFeed", () => {
-  let Router;
-  let feed;
-  let prefs;
-  let channel;
-  let sandbox;
-  beforeEach(() => {
-    Router = new _ASRouter();
-    feed = new ASRouterFeed({router: Router});
-    sandbox = sinon.sandbox.create();
-    sandbox.spy(global.Services.prefs, "setBoolPref");
-
-    // Add prefs to feed.store
-    prefs = {};
-    channel = new FakeRemotePageManager();
-    feed.store = {
-      _messageChannel: {channel},
-      getState: () => ({Prefs: {values: prefs}}),
-      dbStorage: {getDbTable: sandbox.stub().returns({})}
-    };
-  });
-  afterEach(() => {
-    sandbox.restore();
-  });
-  it("should set .router to the ASRouter singleton if none is specified in options", () => {
-    feed = new ASRouterFeed();
-    assert.equal(feed.router, ASRouter);
-
-    feed = new ASRouterFeed({});
-    assert.equal(feed.router, ASRouter);
-  });
-  describe("#onAction: INIT", () => {
-    it("should initialize the ASRouter if it is not initialized and override onboardin if the experiment pref is true", () => {
-      // Router starts out not initialized
-      sandbox.stub(feed, "enable");
-      prefs[EXPERIMENT_PREF] = true;
-
-      // call .onAction with INIT
-      feed.onAction({type: at.INIT});
 
-      assert.calledOnce(feed.enable);
-    });
-    it("should initialize the MessageCenterRouter and override onboarding", async () => {
-      sandbox.stub(Router, "init").returns(Promise.resolve());
-
-      await feed.enable();
-
-      assert.calledWith(Router.init, channel);
-      assert.calledOnce(feed.store.dbStorage.getDbTable);
-      assert.calledWithExactly(feed.store.dbStorage.getDbTable, "snippets");
-      assert.calledWith(global.Services.prefs.setBoolPref, ONBOARDING_FINISHED_PREF, true);
-    });
-    it("should not re-initialize the ASRouter if it is already initialized", () => {
-      // Router starts initialized
-      Router.init(new FakeRemotePageManager());
-      sinon.stub(Router, "init");
-      prefs[EXPERIMENT_PREF] = true;
-
-      // call .onAction with INIT
-      feed.onAction({type: at.INIT});
+  describe("#onMessage: OVERRIDE_MESSAGE", () => {
+    it("should broadcast a SET_MESSAGE message to all clients with a particular id", async () => {
+      const [testMessage] = Router.state.messages;
+      const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
+      await Router.onMessage(msg);
 
-      assert.notCalled(Router.init);
-    });
-  });
-  describe("#onAction: PREF_CHANGE", () => {
-    it("should uninitialize the ASRouter if it is already initialized and the experiment pref is false", () => {
-      // Router starts initialized
-      Router.init(new FakeRemotePageManager());
-      sinon.stub(Router, "uninit");
-      prefs[EXPERIMENT_PREF] = false;
-
-      // call .onAction with INIT
-      feed.onAction({type: at.PREF_CHANGED});
-
-      assert.calledOnce(Router.uninit);
-    });
-  });
-  describe("#onAction: UNINIT", () => {
-    it("should uninitialize the ASRouter and restore onboarding", () => {
-      Router.init(new FakeRemotePageManager());
-      sinon.stub(Router, "uninit");
-
-      feed.onAction({type: at.UNINIT});
-
-      assert.calledOnce(Router.uninit);
-      assert.calledWith(global.Services.prefs.setBoolPref, ONBOARDING_FINISHED_PREF, false);
+      assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
     });
   });
 });
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/test/unit/asrouter/ASRouterFeed.test.js
@@ -0,0 +1,105 @@
+import {_ASRouter, ASRouter} from "lib/ASRouter.jsm";
+import {
+  EXPERIMENT_PREF,
+  FAKE_LOCAL_PROVIDER,
+  FakeRemotePageManager
+} from "./constants";
+import {ASRouterFeed} from "lib/ASRouterFeed.jsm";
+import {actionTypes as at} from "common/Actions.jsm";
+
+const ONBOARDING_FINISHED_PREF = "browser.onboarding.notification.finished";
+
+describe("ASRouterFeed", () => {
+  let Router;
+  let feed;
+  let prefs;
+  let channel;
+  let sandbox;
+  let storage;
+  beforeEach(() => {
+    Router = new _ASRouter({providers: [FAKE_LOCAL_PROVIDER]});
+    sandbox = sinon.sandbox.create();
+    storage = {
+      get: sandbox.stub().returns(Promise.resolve([])),
+      set: sandbox.stub().returns(Promise.resolve())
+    };
+    feed = new ASRouterFeed({router: Router}, storage);
+    sandbox.spy(global.Services.prefs, "setBoolPref");
+
+    // Add prefs to feed.store
+    prefs = {};
+    channel = new FakeRemotePageManager();
+    feed.store = {
+      _messageChannel: {channel},
+      getState: () => ({Prefs: {values: prefs}}),
+      dbStorage: {getDbTable: sandbox.stub().returns({})}
+    };
+  });
+  afterEach(() => {
+    sandbox.restore();
+  });
+  it("should set .router to the ASRouter singleton if none is specified in options", () => {
+    feed = new ASRouterFeed();
+    assert.equal(feed.router, ASRouter);
+
+    feed = new ASRouterFeed({});
+    assert.equal(feed.router, ASRouter);
+  });
+  describe("#onAction: INIT", () => {
+    it("should initialize the ASRouter if it is not initialized and override onboardin if the experiment pref is true", () => {
+      // Router starts out not initialized
+      sandbox.stub(feed, "enable");
+      prefs[EXPERIMENT_PREF] = true;
+
+      // call .onAction with INIT
+      feed.onAction({type: at.INIT});
+
+      assert.calledOnce(feed.enable);
+    });
+    it("should initialize the MessageCenterRouter and override onboarding", async () => {
+      sandbox.stub(Router, "init").returns(Promise.resolve());
+
+      await feed.enable();
+
+      assert.calledWith(Router.init, channel);
+      assert.calledOnce(feed.store.dbStorage.getDbTable);
+      assert.calledWithExactly(feed.store.dbStorage.getDbTable, "snippets");
+      assert.calledWith(global.Services.prefs.setBoolPref, ONBOARDING_FINISHED_PREF, true);
+    });
+    it("should not re-initialize the ASRouter if it is already initialized", async () => {
+      // Router starts initialized
+      await Router.init(new FakeRemotePageManager(), storage);
+      sinon.stub(Router, "init");
+      prefs[EXPERIMENT_PREF] = true;
+
+      // call .onAction with INIT
+      feed.onAction({type: at.INIT});
+
+      assert.notCalled(Router.init);
+    });
+  });
+  describe("#onAction: PREF_CHANGE", () => {
+    it("should uninitialize the ASRouter if it is already initialized and the experiment pref is false", async () => {
+      // Router starts initialized
+      await Router.init(new FakeRemotePageManager(), storage);
+      sinon.stub(Router, "uninit");
+      prefs[EXPERIMENT_PREF] = false;
+
+      // call .onAction with INIT
+      feed.onAction({type: at.PREF_CHANGED});
+
+      assert.calledOnce(Router.uninit);
+    });
+  });
+  describe("#onAction: UNINIT", () => {
+    it("should uninitialize the ASRouter and restore onboarding", async () => {
+      await Router.init(new FakeRemotePageManager(), storage);
+      sinon.stub(Router, "uninit");
+
+      feed.onAction({type: at.UNINIT});
+
+      assert.calledOnce(Router.uninit);
+      assert.calledWith(global.Services.prefs.setBoolPref, ONBOARDING_FINISHED_PREF, false);
+    });
+  });
+});
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/test/unit/asrouter/MessageLoaderUtils.test.js
@@ -0,0 +1,98 @@
+import {MessageLoaderUtils} from "lib/ASRouter.jsm";
+
+describe("MessageLoaderUtils", () => {
+  let fetchStub;
+  let clock;
+
+  beforeEach(() => {
+    clock = sinon.useFakeTimers();
+    fetchStub = sinon.stub(global, "fetch");
+  });
+  afterEach(() => {
+    clock.restore();
+    fetchStub.restore();
+  });
+
+  describe("#loadMessagesForProvider", () => {
+    it("should return messages for a local provider with hardcoded messages", async () => {
+      const sourceMessage = {id: "foo"};
+      const provider = {id: "provider123", type: "local", messages: [sourceMessage]};
+
+      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+
+      assert.isArray(result.messages);
+      // Does the message have the right properties?
+      const [message] = result.messages;
+      assert.propertyVal(message, "id", "foo");
+      assert.propertyVal(message, "provider", "provider123");
+    });
+    it("should return messages for remote provider", async () => {
+      const sourceMessage = {id: "foo"};
+      fetchStub.resolves({ok: true, status: 200, json: () => Promise.resolve({messages: [sourceMessage]})});
+      const provider = {id: "provider123", type: "remote", url: "https://foo.com"};
+
+      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+      assert.isArray(result.messages);
+      // Does the message have the right properties?
+      const [message] = result.messages;
+      assert.propertyVal(message, "id", "foo");
+      assert.propertyVal(message, "provider", "provider123");
+      assert.propertyVal(message, "provider_url", "https://foo.com");
+    });
+    it("should return an empty array if the request results in an error", async () => {
+      const provider = {id: "provider123", type: "remote", url: "https://foo.com"};
+      fetchStub.rejects(new Error("something went wrong"));
+
+      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+
+      assert.deepEqual(result.messages, []);
+    });
+    it("should return an empty array for a remote provider with a blank URL without attempting a request", async () => {
+      const provider = {id: "provider123", type: "remote", url: ""};
+
+      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+
+      assert.notCalled(fetchStub);
+      assert.deepEqual(result.messages, []);
+    });
+    it("should return .lastUpdated with the time at which the messages were fetched", async () => {
+      const sourceMessage = {id: "foo"};
+      const provider = {
+        id: "provider123",
+        type: "remote",
+        url: "foo.com"
+      };
+
+      fetchStub.resolves({
+        ok: true,
+        status: 200,
+        json: () => new Promise(resolve => {
+          clock.tick(42);
+          resolve({messages: [sourceMessage]});
+        })
+      });
+
+      const result = await MessageLoaderUtils.loadMessagesForProvider(provider);
+
+      assert.propertyVal(result, "lastUpdated", 42);
+    });
+  });
+
+  describe("#shouldProviderUpdate", () => {
+    it("should return true if the provider does not had a .lastUpdated property", () => {
+      assert.isTrue(MessageLoaderUtils.shouldProviderUpdate({id: "foo"}));
+    });
+    it("should return false if the provider does not had a .updateCycleInMs property and has a .lastUpdated", () => {
+      clock.tick(1);
+      assert.isFalse(MessageLoaderUtils.shouldProviderUpdate({id: "foo", lastUpdated: 0}));
+    });
+    it("should return true if the time since .lastUpdated is greater than .updateCycleInMs", () => {
+      clock.tick(301);
+      assert.isTrue(MessageLoaderUtils.shouldProviderUpdate({id: "foo", lastUpdated: 0, updateCycleInMs: 300}));
+    });
+    it("should return false if the time since .lastUpdated is less than .updateCycleInMs", () => {
+      clock.tick(299);
+      assert.isFalse(MessageLoaderUtils.shouldProviderUpdate({id: "foo", lastUpdated: 0,  updateCycleInMs: 300}));
+    });
+  });
+});
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/test/unit/asrouter/asrouter-content.test.jsx
@@ -0,0 +1,169 @@
+import {ASRouterUISurface, ASRouterUtils} from "content-src/asrouter/asrouter-content";
+import {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from "content-src/lib/init-store";
+import {FAKE_LOCAL_MESSAGES} from "./constants";
+import {GlobalOverrider} from "test/unit/utils";
+import {mount} from "enzyme";
+import React from "react";
+let [FAKE_MESSAGE] = FAKE_LOCAL_MESSAGES;
+
+FAKE_MESSAGE = Object.assign({}, FAKE_MESSAGE, {provider: "fakeprovider"});
+
+describe("ASRouterUtils", () => {
+  let global;
+  let sandbox;
+  let fakeSendAsyncMessage;
+  beforeEach(() => {
+    global = new GlobalOverrider();
+    sandbox = sinon.sandbox.create();
+    fakeSendAsyncMessage = sandbox.stub();
+    global.set({sendAsyncMessage: fakeSendAsyncMessage});
+  });
+  afterEach(() => {
+    sandbox.restore();
+    global.restore();
+  });
+  it("should send a message with the right payload data", () => {
+    ASRouterUtils.sendTelemetry({id: 1, event: "CLICK"});
+
+    assert.calledOnce(fakeSendAsyncMessage);
+    assert.calledWith(fakeSendAsyncMessage, AS_GENERAL_OUTGOING_MESSAGE_NAME);
+    const [, payload] = fakeSendAsyncMessage.firstCall.args;
+    assert.propertyVal(payload.data, "id", 1);
+    assert.propertyVal(payload.data, "event", "CLICK");
+  });
+});
+
+describe("ASRouterUISurface", () => {
+  let wrapper;
+  let global;
+  let sandbox;
+  let fakeDocument;
+
+  beforeEach(() => {
+    sandbox = sinon.sandbox.create();
+    fakeDocument = {
+      _listeners: new Set(),
+      _visibilityState: "hidden",
+      get visibilityState() {
+        return this._visibilityState;
+      },
+      set visibilityState(value) {
+        if (this._visibilityState === value) {
+          return;
+        }
+        this._visibilityState = value;
+        this._listeners.forEach(l => l());
+      },
+      addEventListener(event, listener) {
+        this._listeners.add(listener);
+      },
+      removeEventListener(event, listener) {
+        this._listeners.delete(listener);
+      }
+    };
+    global = new GlobalOverrider();
+    global.set({
+      addMessageListener: sandbox.stub(),
+      removeMessageListener: sandbox.stub(),
+      sendAsyncMessage: sandbox.stub()
+    });
+
+    sandbox.stub(ASRouterUtils, "sendTelemetry");
+
+    wrapper = mount(<ASRouterUISurface document={fakeDocument} />);
+  });
+
+  afterEach(() => {
+    sandbox.restore();
+    global.restore();
+  });
+
+  it("should render the component if a message id is defined", () => {
+    wrapper.setState({message: FAKE_MESSAGE});
+
+    assert.isTrue(wrapper.exists());
+  });
+
+  describe("impressions", () => {
+    function simulateVisibilityChange(value) {
+      fakeDocument.visibilityState = value;
+    }
+
+    it("should not send an impression if no message exists", () => {
+      simulateVisibilityChange("visible");
+
+      assert.notCalled(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should not send an impression if the page is not visible", () => {
+      simulateVisibilityChange("hidden");
+      wrapper.setState({message: FAKE_MESSAGE});
+
+      assert.notCalled(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should send an impression ping when there is a message and the page becomes visible", () => {
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.notCalled(ASRouterUtils.sendTelemetry);
+
+      simulateVisibilityChange("visible");
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should the right data in the ", () => {
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.notCalled(ASRouterUtils.sendTelemetry);
+
+      simulateVisibilityChange("visible");
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should send an impression ping when the page is visible and a message gets loaded", () => {
+      simulateVisibilityChange("visible");
+      wrapper.setState({message: {}});
+      assert.notCalled(ASRouterUtils.sendTelemetry);
+
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should send another impression ping if the message id changes", () => {
+      simulateVisibilityChange("visible");
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+
+      wrapper.setState({message: FAKE_LOCAL_MESSAGES[1]});
+      assert.calledTwice(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should not send another impression ping if the message id has not changed", () => {
+      simulateVisibilityChange("visible");
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+
+      wrapper.setState({somethingElse: 123});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should not send another impression ping if the message is cleared", () => {
+      simulateVisibilityChange("visible");
+      wrapper.setState({message: FAKE_MESSAGE});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+
+      wrapper.setState({message: {}});
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+    });
+
+    it("should call .sendTelemetry with the right message data", () => {
+      simulateVisibilityChange("visible");
+      wrapper.setState({message: FAKE_MESSAGE});
+
+      assert.calledOnce(ASRouterUtils.sendTelemetry);
+      const [payload] = ASRouterUtils.sendTelemetry.firstCall.args;
+
+      assert.propertyVal(payload, "message_id", FAKE_MESSAGE.id);
+      assert.propertyVal(payload, "event", "IMPRESSION");
+      assert.propertyVal(payload, "action", `${FAKE_MESSAGE.provider}_user_event`);
+    });
+  });
+});
--- a/browser/extensions/activity-stream/test/unit/asrouter/constants.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/constants.js
@@ -1,3 +1,24 @@
 export const CHILD_TO_PARENT_MESSAGE_NAME = "ASRouter:child-to-parent";
 export const PARENT_TO_CHILD_MESSAGE_NAME = "ASRouter:parent-to-child";
 export const EXPERIMENT_PREF = "asrouterExperimentEnabled";
+
+export const FAKE_LOCAL_MESSAGES = [
+  {id: "foo", template: "simple_template", content: {title: "Foo", body: "Foo123"}},
+  {id: "bar", template: "fancy_template", content: {title: "Foo", body: "Foo123"}},
+  {id: "baz", content: {title: "Foo", body: "Foo123"}}
+];
+export const FAKE_LOCAL_PROVIDER = {id: "onboarding", type: "local", messages: FAKE_LOCAL_MESSAGES};
+
+export const FAKE_REMOTE_MESSAGES = [
+  {id: "qux", template: "simple_template", content: {title: "Qux", body: "hello world"}}
+];
+export const FAKE_REMOTE_PROVIDER = {id: "remotey", type: "remote", url: "http://fake.com/endpoint"};
+
+// Stubs methods on RemotePageManager
+export class FakeRemotePageManager {
+  constructor() {
+    this.addMessageListener = sinon.stub();
+    this.sendAsyncMessage = sinon.stub();
+    this.removeMessageListener = sinon.stub();
+  }
+}
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/test/unit/asrouter/template-utils.test.js
@@ -0,0 +1,28 @@
+import {safeURI} from "content-src/asrouter/template-utils";
+
+describe("safeURI", () => {
+  let warnStub;
+  beforeEach(() => {
+    warnStub = sinon.stub(console, "warn");
+  });
+  afterEach(() => {
+    warnStub.restore();
+  });
+  it("should allow http: URIs", () => {
+    assert.equal(safeURI("http://foo.com"), "http://foo.com");
+  });
+  it("should allow https: URIs", () => {
+    assert.equal(safeURI("https://foo.com"), "https://foo.com");
+  });
+  it("should allow data URIs", () => {
+    assert.equal(safeURI("data:image/png;base64,iVBO"), "data:image/png;base64,iVBO");
+  });
+  it("should not allow javascript: URIs", () => {
+    assert.equal(safeURI("javascript:foo()"), ""); // eslint-disable-line no-script-url
+    assert.calledOnce(warnStub);
+  });
+  it("should not warn if the URL is falsey ", () => {
+    assert.equal(safeURI(), "");
+    assert.notCalled(warnStub);
+  });
+});