Bug 1457543 - Fix missing Highlights, download position and bug fixes to Activity Stream. r?k88hudson draft
authorEd Lee <edilee@mozilla.com>
Wed, 02 May 2018 15:23:03 -0700
changeset 790833 026dbe078e833e5e4252d759cd80337a47827d23
parent 790721 f877359308b17e691209e1afb7193b8e86f175ce
push id108612
push userbmo:edilee@mozilla.com
push dateWed, 02 May 2018 22:44:15 +0000
reviewersk88hudson
bugs1457543
milestone61.0a1
Bug 1457543 - Fix missing Highlights, download position and bug fixes to Activity Stream. r?k88hudson MozReview-Commit-ID: 3aT0MJ2CJNM
browser/components/newtab/aboutNewTabService.js
browser/extensions/activity-stream/common/PrerenderData.jsm
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/ActivityStream.jsm
browser/extensions/activity-stream/lib/ActivityStreamStorage.jsm
browser/extensions/activity-stream/lib/DownloadsManager.jsm
browser/extensions/activity-stream/lib/TelemetryFeed.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-initial-state.js
browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
browser/extensions/activity-stream/test/unit/lib/ActivityStreamStorage.test.js
browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
browser/extensions/activity-stream/test/unit/unit-entry.js
--- a/browser/components/newtab/aboutNewTabService.js
+++ b/browser/components/newtab/aboutNewTabService.js
@@ -16,17 +16,17 @@ ChromeUtils.defineModuleGetter(this, "Ab
 // Dummy references to the files that this service no longer allows loading.
 // Bug 1409054 to remove "chrome://browser/content/abouthome/aboutHome.xhtml"
 
 const TOPIC_APP_QUIT = "quit-application-granted";
 const TOPIC_LOCALES_CHANGE = "intl:app-locales-changed";
 
 // Automated tests ensure packaged locales are in this list. Copied output of:
 // https://github.com/mozilla/activity-stream/blob/master/bin/render-activity-stream-html.js
-const ACTIVITY_STREAM_LOCALES = "en-US ach an ar ast az be bg bn-BD bn-IN br bs ca cak crh cs cy da de dsb el en-GB eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id it ja ka kab kk km kn ko lij lo lt ltg lv mk ml mr ms my nb-NO ne-NP nl nn-NO pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE ta te th tl tr uk ur uz vi zh-CN zh-TW".split(" ");
+const ACTIVITY_STREAM_LOCALES = "en-US ach an ar ast az be bg bn-BD bn-IN br bs ca cak crh cs cy da de dsb el en-CA en-GB eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id it ja ka kab kk km kn ko lij lo lt ltg lv mk ml mr ms my nb-NO ne-NP nl nn-NO pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE ta te th tl tr uk ur uz vi zh-CN zh-TW".split(" ");
 
 const ABOUT_URL = "about:newtab";
 
 const IS_MAIN_PROCESS = Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_DEFAULT;
 
 const IS_RELEASE_OR_BETA = AppConstants.RELEASE_OR_BETA;
 
 const PREF_ACTIVITY_STREAM_PRERENDER_ENABLED = "browser.newtabpage.activity-stream.prerender";
--- a/browser/extensions/activity-stream/common/PrerenderData.jsm
+++ b/browser/extensions/activity-stream/common/PrerenderData.jsm
@@ -57,31 +57,29 @@ class _PrerenderData {
 this.PrerenderData = new _PrerenderData({
   initialPrefs: {
     "migrationExpired": true,
     "feeds.topsites": true,
     "showSearch": true,
     "topSitesRows": 1,
     "feeds.section.topstories": true,
     "feeds.section.highlights": true,
-    "enableWideLayout": true,
     "sectionOrder": "topsites,topstories,highlights",
     "collapsed": false
   },
   // Prefs listed as invalidating will prevent the prerendered version
   // of AS from being used if their value is something other than what is listed
   // here. This is required because some preferences cause the page layout to be
   // too different for the prerendered version to be used. Unfortunately, this
   // will result in users who have modified some of their preferences not being
   // able to get the benefits of prerendering.
   validation: [
     "feeds.topsites",
     "showSearch",
     "topSitesRows",
-    "enableWideLayout",
     "sectionOrder",
     // This means if either of these are set to their default values,
     // prerendering can be used.
     {oneOf: ["feeds.section.topstories", "feeds.section.highlights"]},
     // If any component has the following preference set to `true` it will
     // invalidate the prerendered version.
     {indexedDB: ["collapsed"]}
   ],
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -339,24 +339,23 @@ main {
     main {
       width: 402px; } }
   @media (min-width: 610px) {
     main {
       width: 530px; } }
   @media (min-width: 866px) {
     main {
       width: 786px; } }
+  @media (min-width: 1122px) {
+    main {
+      width: 1042px; } }
   main section {
     margin-bottom: 20px;
     position: relative; }
 
-@media (min-width: 1122px) {
-  .wide-layout-enabled main {
-    width: 1042px; } }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -444,16 +443,31 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1090px) {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .top-sites-list :nth-child(8n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1346px) {
+    .top-sites-list :nth-child(8n+7) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media not all and (min-width: 1122px) {
+    .top-sites-list .hide-for-narrow {
+      display: none; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
     box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
@@ -577,37 +591,16 @@ main {
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
     visibility: hidden; }
 
-.wide-layout-disabled .top-sites-list .hide-for-narrow {
-  display: none; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) and (max-width: 1346px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n+7) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media not all and (min-width: 1122px) {
-  .wide-layout-enabled .top-sites-list .hide-for-narrow {
-    display: none; } }
-
 .edit-topsites-wrapper .modal {
   box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2);
   left: 0;
   margin: 0 auto;
   position: fixed;
   right: 0;
   top: 40px;
   width: 274px; }
@@ -771,16 +764,25 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .sections-list .section-list :nth-child(3n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) {
+    .sections-list .section-list {
+      grid-template-columns: repeat(auto-fit, 309px); } }
 
 .sections-list .section-empty-state {
   border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
@@ -796,30 +798,19 @@ main {
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
       color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .sections-list .section-list {
-    grid-template-columns: repeat(auto-fit, 309px); } }
-
-.wide-layout-enabled .section-empty-state {
-  height: 370px; }
+  @media (min-width: 1122px) {
+    .sections-list .section-empty-state {
+      height: 370px; } }
 
 .topic {
   color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
@@ -1189,44 +1180,43 @@ main {
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .card-outer {
-    height: 370px; }
-    .wide-layout-enabled .card-outer .card-preview-image-outer {
-      height: 155px; }
-    .wide-layout-enabled .card-outer .card-details {
-      padding: 13px 16px 12px; }
-    .wide-layout-enabled .card-outer .card-text {
-      max-height: 140px; }
-    .wide-layout-enabled .card-outer .card-host-name {
-      font-size: 12px;
-      padding-bottom: 5px; }
-    .wide-layout-enabled .card-outer .card-download-icon.icon-download-folder {
-      height: 54px;
-      width: 54px; }
-    .wide-layout-enabled .card-outer .card-title {
-      font-size: 17px;
-      line-height: 23px;
-      margin-bottom: 0; }
-    .wide-layout-enabled .card-outer .card-text:not(.no-description) .card-title {
-      max-height: 69px; }
-    .wide-layout-enabled .card-outer .card-description {
-      font-size: 15px;
-      line-height: 23px; }
-    .wide-layout-enabled .card-outer .card-context {
-      bottom: 4px;
-      font-size: 14px; } }
+  @media (min-width: 1122px) {
+    .card-outer {
+      height: 370px; }
+      .card-outer .card-preview-image-outer {
+        height: 155px; }
+      .card-outer .card-details {
+        padding: 13px 16px 12px; }
+      .card-outer .card-text {
+        max-height: 140px; }
+      .card-outer .card-host-name {
+        font-size: 12px;
+        padding-bottom: 5px; }
+      .card-outer .card-download-icon.icon-download-folder {
+        height: 54px;
+        width: 54px; }
+      .card-outer .card-title {
+        font-size: 17px;
+        line-height: 23px;
+        margin-bottom: 0; }
+      .card-outer .card-text:not(.no-description) .card-title {
+        max-height: 69px; }
+      .card-outer .card-description {
+        font-size: 15px;
+        line-height: 23px; }
+      .card-outer .card-context {
+        bottom: 4px;
+        font-size: 14px; } }
 
 .manual-migration-container {
   color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -26,27 +26,27 @@
 	],
 	"sourcesContent": [
 		"/* This is the linux variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
 		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  background-color: var(--newtab-background-color);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\ninput {\n  &[type='text'],\n  &[type='search'] {\n    border-radius: $border-radius;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$small-download-folder-icon-size: 36px;\n$large-download-folder-icon-size: $small-download-folder-icon-size * 1.5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		"@function textbox-shadow($color) {\n  @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n  --newtab-textbox-focus-color: $color;\n  --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-30-60;\n  --newtab-element-hover-color: $grey-20;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-text-tertiary-color: $grey-50;\n  --newtab-textbox-background-color: $white;\n  --newtab-textbox-border: $grey-90-20;\n  @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-10;\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-border-color: transparent;\n  --newtab-search-dropdown-color: $white;\n  --newtab-search-dropdown-header-color: $grey-10;\n  --newtab-search-icon-color: $grey-90-40;\n\n  // Top Sites\n  --newtab-topsites-background-color: $white;\n  --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-30;\n  --newtab-card-background-color: $white;\n  --newtab-card-hairline-color: $black-10;\n  --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n  // Snippets\n  --newtab-snippets-background-color: $white;\n  --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-10;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-10-20;\n  --newtab-element-hover-color: $grey-10-10;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-40;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-80;\n  --newtab-text-tertiary-color: $grey-10-60;\n  --newtab-textbox-background-color: $grey-70;\n  --newtab-textbox-border: $grey-10-20;\n  @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-60;\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-80;\n  --newtab-overlay-color: $grey-90-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-border-color: $grey-10-20;\n  --newtab-search-dropdown-color: $grey-70;\n  --newtab-search-dropdown-header-color: $grey-60;\n  --newtab-search-icon-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-background-color: $grey-70;\n  --newtab-topsites-icon-shadow: none;\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-60;\n  --newtab-card-background-color: $grey-70;\n  --newtab-card-hairline-color: $grey-10-10;\n  --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n  // Snippets\n  --newtab-snippets-background-color: $grey-70;\n  --newtab-snippets-hairline-color: $white-10;\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-search {\n    background-image: url('chrome://browser/skin/search-glass.svg');\n  }\n\n  &.icon-modal-delete {\n    flex-shrink: 0;\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem {\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-download {\n    background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n  }\n\n  &.icon-copy {\n    background-image: url('chrome://browser/skin/edit-copy.svg');\n  }\n\n  &.icon-open-file {\n    background-image: url('#{$image-path}glyph-open-file-16.svg');\n  }\n\n  &.icon-download-folder {\n    background-image: url('#{$image-path}glyph-download-icon.svg');\n    background-size: 100%;\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  @media (min-width: $break-point-widest) {\n    width: $wrapper-max-width-widest;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".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\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}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\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\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Eight columns\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n    :nth-child(8n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n    :nth-child(8n+7) {\n      @include context-menu-open-left;\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".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\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\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}\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",
 		".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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"
+	"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
@@ -342,24 +342,23 @@ main {
     main {
       width: 402px; } }
   @media (min-width: 610px) {
     main {
       width: 530px; } }
   @media (min-width: 866px) {
     main {
       width: 786px; } }
+  @media (min-width: 1122px) {
+    main {
+      width: 1042px; } }
   main section {
     margin-bottom: 20px;
     position: relative; }
 
-@media (min-width: 1122px) {
-  .wide-layout-enabled main {
-    width: 1042px; } }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -447,16 +446,31 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1090px) {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .top-sites-list :nth-child(8n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1346px) {
+    .top-sites-list :nth-child(8n+7) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media not all and (min-width: 1122px) {
+    .top-sites-list .hide-for-narrow {
+      display: none; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
     box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
@@ -580,37 +594,16 @@ main {
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
     visibility: hidden; }
 
-.wide-layout-disabled .top-sites-list .hide-for-narrow {
-  display: none; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) and (max-width: 1346px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n+7) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media not all and (min-width: 1122px) {
-  .wide-layout-enabled .top-sites-list .hide-for-narrow {
-    display: none; } }
-
 .edit-topsites-wrapper .modal {
   box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2);
   left: 0;
   margin: 0 auto;
   position: fixed;
   right: 0;
   top: 40px;
   width: 274px; }
@@ -774,16 +767,25 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .sections-list .section-list :nth-child(3n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) {
+    .sections-list .section-list {
+      grid-template-columns: repeat(auto-fit, 309px); } }
 
 .sections-list .section-empty-state {
   border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
@@ -799,30 +801,19 @@ main {
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
       color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .sections-list .section-list {
-    grid-template-columns: repeat(auto-fit, 309px); } }
-
-.wide-layout-enabled .section-empty-state {
-  height: 370px; }
+  @media (min-width: 1122px) {
+    .sections-list .section-empty-state {
+      height: 370px; } }
 
 .topic {
   color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
@@ -1192,44 +1183,43 @@ main {
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .card-outer {
-    height: 370px; }
-    .wide-layout-enabled .card-outer .card-preview-image-outer {
-      height: 155px; }
-    .wide-layout-enabled .card-outer .card-details {
-      padding: 13px 16px 12px; }
-    .wide-layout-enabled .card-outer .card-text {
-      max-height: 140px; }
-    .wide-layout-enabled .card-outer .card-host-name {
-      font-size: 12px;
-      padding-bottom: 5px; }
-    .wide-layout-enabled .card-outer .card-download-icon.icon-download-folder {
-      height: 54px;
-      width: 54px; }
-    .wide-layout-enabled .card-outer .card-title {
-      font-size: 17px;
-      line-height: 23px;
-      margin-bottom: 0; }
-    .wide-layout-enabled .card-outer .card-text:not(.no-description) .card-title {
-      max-height: 69px; }
-    .wide-layout-enabled .card-outer .card-description {
-      font-size: 15px;
-      line-height: 23px; }
-    .wide-layout-enabled .card-outer .card-context {
-      bottom: 4px;
-      font-size: 14px; } }
+  @media (min-width: 1122px) {
+    .card-outer {
+      height: 370px; }
+      .card-outer .card-preview-image-outer {
+        height: 155px; }
+      .card-outer .card-details {
+        padding: 13px 16px 12px; }
+      .card-outer .card-text {
+        max-height: 140px; }
+      .card-outer .card-host-name {
+        font-size: 12px;
+        padding-bottom: 5px; }
+      .card-outer .card-download-icon.icon-download-folder {
+        height: 54px;
+        width: 54px; }
+      .card-outer .card-title {
+        font-size: 17px;
+        line-height: 23px;
+        margin-bottom: 0; }
+      .card-outer .card-text:not(.no-description) .card-title {
+        max-height: 69px; }
+      .card-outer .card-description {
+        font-size: 15px;
+        line-height: 23px; }
+      .card-outer .card-context {
+        bottom: 4px;
+        font-size: 14px; } }
 
 .manual-migration-container {
   color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -26,27 +26,27 @@
 	],
 	"sourcesContent": [
 		"/* This is the mac variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 7px;\n$os-infopanel-arrow-width: 18px;\n\n.dark-theme {\n  -moz-osx-font-smoothing: grayscale;\n}\n\n@import './activity-stream';\n",
 		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  background-color: var(--newtab-background-color);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\ninput {\n  &[type='text'],\n  &[type='search'] {\n    border-radius: $border-radius;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$small-download-folder-icon-size: 36px;\n$large-download-folder-icon-size: $small-download-folder-icon-size * 1.5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		"@function textbox-shadow($color) {\n  @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n  --newtab-textbox-focus-color: $color;\n  --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-30-60;\n  --newtab-element-hover-color: $grey-20;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-text-tertiary-color: $grey-50;\n  --newtab-textbox-background-color: $white;\n  --newtab-textbox-border: $grey-90-20;\n  @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-10;\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-border-color: transparent;\n  --newtab-search-dropdown-color: $white;\n  --newtab-search-dropdown-header-color: $grey-10;\n  --newtab-search-icon-color: $grey-90-40;\n\n  // Top Sites\n  --newtab-topsites-background-color: $white;\n  --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-30;\n  --newtab-card-background-color: $white;\n  --newtab-card-hairline-color: $black-10;\n  --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n  // Snippets\n  --newtab-snippets-background-color: $white;\n  --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-10;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-10-20;\n  --newtab-element-hover-color: $grey-10-10;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-40;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-80;\n  --newtab-text-tertiary-color: $grey-10-60;\n  --newtab-textbox-background-color: $grey-70;\n  --newtab-textbox-border: $grey-10-20;\n  @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-60;\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-80;\n  --newtab-overlay-color: $grey-90-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-border-color: $grey-10-20;\n  --newtab-search-dropdown-color: $grey-70;\n  --newtab-search-dropdown-header-color: $grey-60;\n  --newtab-search-icon-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-background-color: $grey-70;\n  --newtab-topsites-icon-shadow: none;\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-60;\n  --newtab-card-background-color: $grey-70;\n  --newtab-card-hairline-color: $grey-10-10;\n  --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n  // Snippets\n  --newtab-snippets-background-color: $grey-70;\n  --newtab-snippets-hairline-color: $white-10;\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-search {\n    background-image: url('chrome://browser/skin/search-glass.svg');\n  }\n\n  &.icon-modal-delete {\n    flex-shrink: 0;\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem {\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-download {\n    background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n  }\n\n  &.icon-copy {\n    background-image: url('chrome://browser/skin/edit-copy.svg');\n  }\n\n  &.icon-open-file {\n    background-image: url('#{$image-path}glyph-open-file-16.svg');\n  }\n\n  &.icon-download-folder {\n    background-image: url('#{$image-path}glyph-download-icon.svg');\n    background-size: 100%;\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  @media (min-width: $break-point-widest) {\n    width: $wrapper-max-width-widest;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".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\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}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\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\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Eight columns\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n    :nth-child(8n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n    :nth-child(8n+7) {\n      @include context-menu-open-left;\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".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\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\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}\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",
 		".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": ";AAAA,6BAA6B;AAM7B,AAAA,WAAW,CAAC;EACV,uBAAuB,EAAE,SAAS,GACnC;;AERD,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU,GACvB;;AAED,AAAA,CAAC;AACD,AAAA,CAAC,AAAA,QAAQ;AACT,AAAA,CAAC,AAAA,OAAO,CAAC;EACP,UAAU,EAAE,OAAO,GACpB;;AAED,AAAA,CAAC,AAAA,kBAAkB,CAAC;EAClB,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,MAAM;AACN,AAAA,KAAK,CAAC;EACJ,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO,GACnB;;CAED,AAAA,AAAA,MAAC,AAAA,EAAQ;EACP,OAAO,EAAE,eAAe,GACzB;;AEPD,AAAA,IAAI,CAAC;EAEH,yBAAyB,EDjBjB,OAAO;ECkBf,6BAA6B,EDfrB,OAAO;ECgBf,+BAA+B,EDjBvB,OAAO;ECkBf,6BAA6B,EDvBrB,OAAO;ECwBf,+BAA+B,EAAE,OAAO;EACxC,6BAA6B,EDpBrB,wBAAO;ECqBf,4BAA4B,EDtBpB,OAAO;ECuBf,2BAA2B,EDhBnB,qBAAO;ECiBf,6BAA6B,EDjBrB,qBAAO;ECkBf,4BAA4B,EDxBpB,OAAO;ECyBf,+BAA+B,EDKzB,kBAAI;ECJV,2BAA2B,ED/BnB,OAAO;ECgCf,6BAA6B,EDpBrB,OAAO;ECqBf,+BAA+B,EDzBvB,OAAO;EC0Bf,2BAA2B,EDvBnB,OAAO;ECwBf,6BAA6B,ED5BrB,OAAO;EC6Bf,4BAA4B,ED7BpB,OAAO;EC8Bf,iCAAiC,EDU3B,IAAI;ECTV,uBAAuB,ED3Bf,qBAAO;ECTf,4BAA4B,EDFpB,OAAO;ECGf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDET,OAAO,ECFW,CAAC,CAAC,CAAC,CAAC,CAAC,CDgHX,GAAG,CA9Gf,qBAAO;EC0Cf,qCAAqC,EDvC7B,OAAO;ECwCf,iCAAiC,EDI3B,IAAI;ECDV,oBAAoB,EDCd,IAAI;ECAV,sBAAsB,ED3Cd,wBAAO;EC8Cf,kCAAkC,ED3C1B,OAAO;EC4Cf,sCAAsC,ED5C9B,OAAO;EC6Cf,yCAAyC,EDzCjC,OAAO;EC4Cf,4BAA4B,EAAE,WAAW;EACzC,8BAA8B,EDTxB,IAAI;ECUV,qCAAqC,EDtD7B,OAAO;ECuDf,0BAA0B,ED/ClB,qBAAO;ECkDf,kCAAkC,EDd5B,IAAI;ECeV,6BAA6B,EAAE,KAAK,CArDnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EAsD/D,6BAA6B,EAAE,OAAO;EAGtC,kCAAkC,ED7D1B,OAAO;EC8Df,8BAA8B,EDpBxB,IAAI;ECqBV,4BAA4B,EDjCtB,kBAAI;ECkCV,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CD1DzB,qBAAO;EC6Df,kCAAkC,EDzB5B,IAAI;EC0BV,gCAAgC,EAAE,WAAW,GAC9C;;AAGD,AAAA,WAAW,CAAC;EAEV,yBAAyB,EDrEjB,OAAO;ECsEf,6BAA6B,ED7ErB,wBAAO;EC8Ef,+BAA+B,ED9EvB,wBAAO;EC+Ef,6BAA6B,EDlFrB,OAAO;ECmFf,+BAA+B,ED1EvB,OAAO;EC2Ef,6BAA6B,EDjFrB,wBAAO;ECkFf,4BAA4B,EDlFpB,wBAAO;ECmFf,2BAA2B,EDnFnB,wBAAO;ECoFf,6BAA6B,EDpFrB,wBAAO;ECqFf,4BAA4B,EDrFpB,wBAAO;ECsFf,+BAA+B,EDtFvB,wBAAO;ECuFf,2BAA2B,ED5FnB,OAAO;EC6Ff,6BAA6B,ED1CjB,OAAO;EC2CnB,+BAA+B,EDzFvB,OAAO;EC0Ff,2BAA2B,ED1FnB,OAAO;EC2Ff,6BAA6B,ED3FrB,wBAAO;EC4Ff,4BAA4B,ED5FpB,wBAAO;EC6Ff,iCAAiC,EDvFzB,OAAO;ECwFf,uBAAuB,ED9Ff,wBAAO;ECDf,4BAA4B,EDJpB,OAAO;ECKf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDAT,OAAO,ECAW,CAAC,CAAC,CAAC,CAAC,CAAC,CDgHX,GAAG,CAhHf,uBAAO;ECuGf,qCAAqC,ED7F7B,OAAO;EC8Ff,iCAAiC,ED5FzB,OAAO;EC+Ff,oBAAoB,ED/FZ,OAAO;ECgGf,sBAAsB,ED/Fd,qBAAO;ECkGf,kCAAkC,ED1G1B,wBAAO;EC2Gf,sCAAsC,ED3G9B,wBAAO;EC4Gf,yCAAyC,EDhEnC,IAAI;ECmEV,4BAA4B,ED/GpB,wBAAO;ECgHf,8BAA8B,ED1GtB,OAAO;EC2Gf,qCAAqC,ED5G7B,OAAO;EC6Gf,0BAA0B,EDlHlB,wBAAO;ECqHf,kCAAkC,ED/G1B,OAAO;ECgHf,6BAA6B,EAAE,IAAI;EACnC,6BAA6B,EDvHrB,wBAAO;EC0Hf,kCAAkC,EDrH1B,OAAO;ECsHf,8BAA8B,EDrHtB,OAAO;ECsHf,4BAA4B,ED5HpB,wBAAO;EC6Hf,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDrHzB,qBAAO;ECwHf,kCAAkC,ED1H1B,OAAO;EC2Hf,gCAAgC,EDrF1B,wBAAI,GCsFX;;ACxID,AAAA,KAAK,CAAC;EACJ,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EF4DL,IAAI;EE3Dd,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,gCAAgC;EACtC,MAAM,EFwDI,IAAI;EEvDd,cAAc,EAAE,MAAM;EACtB,KAAK,EFsDK,IAAI,GEyHf;EAxLD,AAWE,KAXG,AAWH,YAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAbH,AAeE,KAfG,AAeH,kBAAmB,CAAC;IAClB,iBAAiB,EAAE,GAAG,GACvB;EAjBH,AAmBE,KAnBG,AAmBH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yCAAyC,GAC5D;EArBH,AAuBE,KAvBG,AAuBH,qBAAsB,CAAC;IACrB,gBAAgB,EAAE,gDAAgD,GACnE;EAzBH,AA2BE,KA3BG,AA2BH,iBAAkB,CAAC;IACjB,IAAI,EAAE,kCAAkC;IACxC,gBAAgB,EAAE,iDAAwC,GAC3D;EA9BH,AAgCE,KAhCG,AAgCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAlCH,AAoCE,KApCG,AAoCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,6CAA6C,GAChE;EAtCH,AAwCE,KAxCG,AAwCH,kBAAmB,CAAC;IAClB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,uDAA8C;IAChE,eAAe,EFsBA,IAAI;IErBnB,MAAM,EFqBS,IAAI;IEpBnB,KAAK,EFoBU,IAAI,GEnBpB;EA9CH,AAgDE,KAhDG,AAgDH,aAAc,CAAC;IACb,gBAAgB,EAAE,kDAAyC,GAC5D;EAlDH,AAoDE,KApDG,AAoDH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAtDH,AAwDE,KAxDG,AAwDH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EA1DH,AA4DE,KA5DG,AA4DH,gBAAiB,CAAC;IAEhB,gBAAgB,EAAE,oDAA2C,GAC9D;IA/DH,AFmLE,KEnLG,AA4DH,gBAAiB,AFuHpB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EErLH,AAiEE,KAjEG,AAiEH,wBAAyB,CAAC;IACxB,gBAAgB,EAAE,gDAAgD,GACnE;EAnEH,AAqEE,KArEG,AAqEH,cAAe,CAAC;IACd,gBAAgB,EAAE,yCAAyC,GAC5D;EAvEH,AAyEE,KAzEG,AAyEH,SAAU,CAAC;IAET,gBAAgB,EAAE,8CAAqC,GACxD;IA5EH,AFmLE,KEnLG,AAyEH,SAAU,AF0Gb,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EErLH,AA8EE,KA9EG,AA8EH,WAAY,CAAC;IAEX,gBAAgB,EAAE,gDAAuC,GAC1D;IAjFH,AFmLE,KEnLG,AA8EH,WAAY,AFqGf,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EErLH,AAmFE,KAnFG,AAmFH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EArFH,AAuFE,KAvFG,AAuFH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAzFH,AA2FE,KA3FG,AA2FH,iBAAkB,CAAC;IACjB,gBAAgB,EAAE,sDAA6C,GAChE;EA7FH,AA+FE,KA/FG,AA+FH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C;IAC5D,SAAS,EAAE,eAAe,GAC3B;EAlGH,AAoGE,KApGG,AAoGH,SAAU,CAAC;IACT,gBAAgB,EAAE,wCAAwC,GAC3D;EAtGH,AAwGE,KAxGG,AAwGH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA1GH,AA4GE,KA5GG,AA4GH,eAAgB,CAAC;IAEf,gBAAgB,EAAE,8CAAqC;IACvD,eAAe,EF/CC,IAAI;IEgDpB,MAAM,EFhDU,IAAI;IEiDpB,KAAK,EFjDW,IAAI,GEkDrB;IAlHH,AFmLE,KEnLG,AA4GH,eAAgB,AFuEnB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EErLH,AAoHE,KApHG,AAoHH,WAAY,CAAC;IACX,gBAAgB,EAAE,sCAAsC,GACzD;EAtHH,AAwHE,KAxHG,AAwHH,cAAe,CAAC;IACd,gBAAgB,EAAE,wEAAwE,GAC3F;EA1HH,AA4HE,KA5HG,AA4HH,UAAW,CAAC;IACV,gBAAgB,EAAE,0CAA0C,GAC7D;EA9HH,AAgIE,KAhIG,AAgIH,eAAgB,CAAC;IACf,gBAAgB,EAAE,oDAA2C,GAC9D;EAlIH,AAoIE,KApIG,AAoIH,qBAAsB,CAAC;IACrB,gBAAgB,EAAE,qDAA4C;IAC9D,eAAe,EAAE,IAAI,GACtB;EAvIH,AAyIE,KAzIG,AAyIH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C,GACjE;EA3IH,AA6IE,KA7IG,AA6IH,gBAAiB,CAAC;IAChB,gBAAgB,EAAE,qDAA4C,GAC/D;EA/IH,AAiJE,KAjJG,AAiJH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yDAAgD,GACnE;EAnJH,AAqJE,KArJG,AAqJH,0BAA2B,CAAC;IAC1B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EFvFC,IAAI;IEwFpB,MAAM,EFxFU,IAAI;IEyFpB,KAAK,EFzFW,IAAI,GE0FrB;EA1JH,AA4JE,KA5JG,AA4JH,6BAA8B,CAAC;IAC7B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EF9FC,IAAI;IE+FpB,MAAM,EF/FU,IAAI;IEgGpB,SAAS,EAAE,cAAc;IACzB,KAAK,EFjGW,IAAI,GEsGrB;IAtKH,AAmKI,KAnKC,AA4JH,6BAA8B,AAO5B,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,aAAa,GACzB;EArKL,AAwKE,KAxKG,AAwKH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,yDAAgD;IAClE,SAAS,EAAE,cAAc,GAC1B;EA3KH,AA6KE,KA7KG,AA6KH,SAAU,CAAC;IACT,gBAAgB,EAAE,8CAAqC,GACxD;EA/KH,AAiLE,KAjLG,AAiLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EAnLH,AAqLE,KArLG,AAqLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;;AJlLH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,IAAI;AACJ,AAAA,KAAK,CAAC;EACJ,UAAU,EAAE,KAAK,GAClB;;AAED,AAAA,IAAI,CAAC;EACH,gBAAgB,EAAE,8BAA8B;EAChD,WAAW,EAAE,qFAAqF;EAClG,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM,GACnB;;AAED,AAAA,EAAE;AACF,AAAA,EAAE,CAAC;EACD,WAAW,EAAE,MAAM,GACpB;;AAED,AAAA,CAAC,CAAC;EACA,eAAe,EAAE,IAAI,GACtB;;AAGD,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,gBAAgB;EACtB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG,GACX;;AAED,AAAA,aAAa,CAAC;EACZ,MAAM,EGhCW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiC/D,aAAa,EEUC,GAAG;EFTjB,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,cAAc,EAAE,IAAI;EACpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG,GACb;;AAED,UAAU,CAAV,MAAU;EACR,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;EAGZ,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;;AAId,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB,GAMjC;EARD,AAIE,aAJW,AAIX,GAAI,CAAC;IACH,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC,GACX;;AAGH,AAAA,QAAQ,CAAC;EACP,UAAU,EGhEO,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiE/D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,WAAW,GACrB;;AAGD,AAAA,OAAO;AACP,AAAS,QAAD,CAAC,MAAM,CAAC;EACd,gBAAgB,EAAE,oCAAoC;EACtD,MAAM,EG9ES,GAAG,CAAC,KAAK,CAAC,kCAAkC;EH+E3D,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,MAAM,GAsBpB;EA/BD,AAWE,OAXK,AAWN,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ;EAVtB,AAAS,QAAD,CAAC,MAAM,AAUd,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;IACpB,UAAU,EGhFG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IHiF9D,UAAU,EAAE,gBAAgB,GAC7B;EAdH,AAgBE,OAhBK,AAgBN,QAAU;EAfX,AAAS,QAAD,CAAC,MAAM,AAed,QAAU,CAAC;IACR,gBAAgB,EAAE,WAAW;IAC7B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,SAAS,GAC3B;EArBH,AAwBE,OAxBK,AAwBN,QAAU,EAxBX,AAyBE,OAzBK,AAyBN,KAAO;EAxBR,AAAS,QAAD,CAAC,MAAM,AAuBd,QAAU;EAvBX,AAAS,QAAD,CAAC,MAAM,AAwBd,KAAO,CAAC;IACL,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,kCAAkC;IACpD,KAAK,EE/DD,IAAI;IFgER,mBAAmB,EAAE,IAAI,GAC1B;;AAGH,AACE,KADG,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,GADJ,AAEE,KAFG,CAEH,AAAA,IAAE,CAAK,QAAQ,AAAb,EAAe;EACf,aAAa,EEnED,GAAG,GFoEhB;;AAIH,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,CAAC,GACX;;AKhID,AAAA,cAAc,CAAC;EACb,KAAK,EAAE,gCAAgC;EACvC,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,IAA8C,CHoD3C,IAAI,CAAJ,IAAI,GG3CjB;EAdD,AAOE,cAPY,AAOZ,aAAc,CAAC;IACb,OAAO,EAAE,KAAK,GACf;EATH,AAWE,cAXY,CAWZ,CAAC,CAAC;IACA,KAAK,EAAE,gCAAgC,GACxC;;AAGH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI;EAGZ,cAAc,EAAE,IAA4D;EAC5E,KAAK,EHiDiB,KAAmE,GG/B1F;EAhBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,IAAI,CAAC;MAQD,KAAK,EH+CiB,KAAmE,GGhC5F;EAZC,MAAM,EAAE,SAAS,EAAE,KAAK;IAX1B,AAAA,IAAI,CAAC;MAYD,KAAK,EH4CkB,KAAmE,GGjC7F;EARC,MAAM,EAAE,SAAS,EAAE,KAAK;IAf1B,AAAA,IAAI,CAAC;MAgBD,KAAK,EHyCiB,KAAmE,GGlC5F;EAvBD,AAmBE,IAnBE,CAmBF,OAAO,CAAC;IACN,aAAa,EHwBC,IAAoC;IGvBlD,QAAQ,EAAE,QAAQ,GACnB;;AAKC,MAAM,EAAE,SAAS,EAAE,MAAM;EAF7B,AACE,oBADkB,CAClB,IAAI,CAAC;IAED,KAAK,EH8BgB,MAAmE,GG5B3F;;AAGH,AAAA,sBAAsB,CAAC;EAErB,MAAM,EAAE,KAAK,GACd;;;AAED,AAUI,aAVS,CAUT,cAAc;AAVlB,AAWmB,aAXN,CAWT,cAAc,CAAC,QAAQ,AAAA,aAAa;AAXxC,AAYI,aAZS,CAYT,MAAM,CAHc;EACpB,OAAO,EAAE,CAAC,GACX;;;AAXH,AAeI,aAfS,AAaX,GAAI,CAEF,cAAc;AAflB,AAgBmB,aAhBN,AAaX,GAAI,CAGF,cAAc,CAAC,QAAQ,AAAA,aAAa;AAhBxC,AAiBI,aAjBS,AAaX,GAAI,CAIF,MAAM,CAHgB;EACpB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,wBAAwB,CAAC;EACvB,OAAO,EAAE,CAAC,CHjBiB,IAAI,GGkBhC;;AAED,AACE,aADW,CACX,MAAM,CAAC;EACL,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,OAAO;EACf,IAAI,EAAE,gCAAgC;EACtC,iBAAiB,EAAE,IAAI;EACvB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,KAAK,GAUf;EApBH,AACE,aADW,CACX,MAAM,AAWJ,MAAO,EAZX,AACE,aADW,CACX,MAAM,AAYJ,MAAO,CAAC;IACN,gBAAgB,EAAE,iCAAiC,GACpD;EAfL,AACE,aADW,CACX,MAAM,AAgBJ,OAAQ,CAAC;IACP,gBAAgB,EAAE,kCAAkC,GACrD;;ACjGL,AAAA,kBAAkB,CAAC;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EJoDC,GAAG;EInDjB,UAAU,EAAE,KAAK,CHSA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EGR/D,KAAK,EAAE,oCAAoC;EAC3C,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EJmGgB,IAAI;EIlG7B,eAAe,EAAE,MAAM;EACvB,aAAa,EAAE,MAAM;EACrB,WAAW,EJiGgB,GAAG,GI3F/B;EAhBD,AAYE,kBAZgB,CAYhB,CAAC,CAAC;IACA,KAAK,EAAE,oCAAoC;IAC3C,eAAe,EAAE,SAAS,GAC3B;;ACJH,AAAA,UAAU,CAAC;EAGT,aAAa,EAAE,GAA4E,GAC5F;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC,CAVQ,KAAgB;EAWjC,OAAO,EAAE,CAAC,GA0DX;EAvDC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,ALgJE,eKhJa,CAOX,UAAW,CAAA,IAAI,ELyIjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EA5GT,KAAI,GA6Gf;IKrJH,ALyJE,eKzJa,CAWX,UAAW,CAAA,EAAE,EL8If,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK7ID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAjBjD,ALyJE,eKzJa,CAkBX,UAAW,CAAA,IAAI,ELuIjB,aAAa;IKzJf,ALyJE,eKzJa,CAmBX,UAAW,CAAA,EAAE,ELsIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKrID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAzBjD,ALyJE,eKzJa,CA0BX,UAAW,CAAA,EAAE,EL+Hf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKhID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IA9BjD,ALyJE,eKzJa,CA+BX,UAAW,CAAA,IAAI,EL0HjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKzHD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IArClD,ALyJE,eKzJa,CAsCX,UAAW,CAAA,EAAE,ELmHf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKpHD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IA1ClD,ALyJE,eKzJa,CA2CX,UAAW,CAAA,IAAI,EL8GjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK9JH,AAgDE,eAhDa,CAgDb,EAAE,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,CAAC,CA/DY,GAAG,GAgE3B;EAlDH,AAsDM,eAtDS,AAoDb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAC9C,KAAK,CAAC;IL6CV,UAAU,EAAE,KAAK,CCxGA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IDoGhE,UAAU,EAAE,gBAAgB,GK5CvB;EAxDP,ALyIE,eKzIa,AAoDb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,ELoFlD,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,QAAQ,GACpB;;AK5EH,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,CAAC,CAzEO,IAAgB;EA0EjC,OAAO,EAAE,YAAY,GA6JtB;EA/JD,AAKE,eALa,CAKb,eAAe,CAAC;IACd,QAAQ,EAAE,QAAQ,GAanB;IAnBH,AAQM,eARS,CAKb,eAAe,GAGX,CAAC,CAAC;MACF,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,IAAI,GAOd;MAlBL,AAcQ,eAdO,CAKb,eAAe,GAGX,CAAC,AAKD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;QLqBZ,UAAU,EAAE,KAAK,CCxGA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QDoGhE,UAAU,EAAE,gBAAgB,GKpBrB;EAhBT,AL6CE,eK7Ca,CL6Cb,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,ECzHO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID0HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CArF3B,qBAAO;IAwHb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA9CkB,IAAI,GAoD5B;IKrEH,AL6CE,eK7Ca,CL6Cb,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EKpEL,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,aAAa,EAxGS,GAAG;IAyGzB,UAAU,EAAE,KAAK,CJ9FF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EI8FxB,yBAAyB;IAC9D,MAAM,EL9CE,IAAI;IK+CZ,QAAQ,EAAE,QAAQ;IAClB,KAAK,ELhDG,IAAI;IKmDZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,SAAS,GAK1B;IA1CH,AAuBE,eAvBa,CAuBb,KAAK,AAgBH,QAAS,CAAC;MACR,OAAO,EAAE,mBAAmB,GAC7B;EAzCL,AA4CE,eA5Ca,CA4Cb,WAAW,CAAC;IACV,gBAAgB,EL5EZ,IAAI;IK6ER,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EA5HD,KAAK;IA6HnB,aAAa,EAhIS,GAAG;IAiIzB,UAAU,EAAE,KAAK,CJtHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;IIuH7D,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,IAAI,GAKZ;IA7DH,AA4CE,eA5Ca,CA4Cb,WAAW,AAcT,OAAQ,CAAC;MACP,OAAO,EAAE,CAAC,GACX;EA5DL,AAgEE,eAhEa,CAgEb,cAAc,CAAC;IACb,gBAAgB,EAAE,uCAAuC;IACzD,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EApJS,GAAG;IAqJzB,UAAU,EAAE,kCAAkC;IAC9C,QAAQ,EAAE,QAAQ,GACnB;EAvEH,AAyEE,eAzEa,CAyEb,UAAU,CAAC;IACT,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EA/EH,AAiFE,eAjFa,CAiFb,aAAa,CAAC;IACZ,eAAe,EA5JC,IAAI;IA6JpB,MAAM,EA5JY,IAAG;IA6JrB,MAAM,EA/JkB,IAAI;IAgK5B,iBAAiB,EA9JC,IAAG;IA+JrB,KAAK,EAjKmB,IAAI;IAoK5B,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,MAAM,GAKxB;IAjGH,AAiFE,eAjFa,CAiFb,aAAa,CAaX,AAAA,aAAE,AAAA,CAAc,QAAQ,CAAC;MACvB,OAAO,EAAE,mBAAmB,GAC7B;EAhGL,AAmGE,eAnGa,CAmGb,MAAM,CAAC;IACL,KAAK,EAAE,kCAAkC;IACzC,IAAI,EAAE,WAAW;IACjB,MAAM,EArLe,IAAI;IAsLzB,WAAW,EAtLU,IAAI;IAuLzB,UAAU,EAAE,MAAM;IAClB,KAAK,EL7HG,IAAI;IK8HZ,QAAQ,EAAE,QAAQ,GAsBnB;IAhIH,AA4GI,eA5GW,CAmGb,MAAM,CASJ,KAAK,CAAC;MACJ,IAAI,EAAE,iCAAiC;MACvC,mBAAmB,EAAE,CAAC;MACtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI,GACV;IAjHL,AAmHI,eAnHW,CAmGb,MAAM,CAgBJ,IAAI,CAAC;MACH,MAAM,EAnMa,IAAI;MAoMvB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,MAAM;MAChB,aAAa,EAAE,QAAQ;MACvB,WAAW,EAAE,MAAM,GACpB;IAzHL,AA4HM,eA5HS,CAmGb,MAAM,AAwBJ,OAAQ,CACN,IAAI,CAAC;MACH,OAAO,EAAE,MAAM,GAChB;EA9HP,AAkIE,eAlIa,CAkIb,YAAY,CAAC;IACX,gBAAgB,EAAE,+CAAsC,GACzD;EApIH,AAuII,eAvIW,AAsIb,YAAa,CACX,KAAK,CAAC;IACJ,UAAU,EAAE,KAAK,CJ7MJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GI8M5D;EAzIL,AA2II,eA3IW,AAsIb,YAAa,CAKX,WAAW,CAAC;IACV,OAAO,EAAE,IAAI,GACd;EA7IL,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,CAAC;IACJ,UAAU,EL5NN,OAAO;IK6NX,UAAU,EAAE,IAAI,GAMjB;IAzJL,AAqJM,eArJS,AAgJb,QAAS,CACP,KAAK,CAIH,CAAC,EArJP,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,AAKH,QAAS,CAAC;MACR,OAAO,EAAE,IAAI,GACd;EAxJP,AA2JI,eA3JW,AAgJb,QAAS,CAWP,MAAM,CAAC;IACL,UAAU,EAAE,MAAM,GACnB;;AAKL,AAEI,qBAFiB,CACnB,eAAe,CACb,gBAAgB,CAAC;EACf,OAAO,EAAE,IAAI,GACd;;AAOD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EAHrD,ALjFE,oBKiFkB,CAClB,eAAe,CAGX,UAAW,CAAA,EAAE,ELrFjB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AKqFC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EATrD,ALjFE,oBKiFkB,CAClB,eAAe,CASX,UAAW,CAAA,IAAI,EL3FnB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AK2FC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;EAfzC,AAgBM,oBAhBc,CAClB,eAAe,CAeX,gBAAgB,CAAC;IACf,OAAO,EAAE,IAAI,GACd;;AAKP,AACE,sBADoB,CACpB,MAAM,CAAC;EACL,UAAU,EJlQK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EKuQb,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,MAAM;EACd,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,IAAI;EACT,KAAK,ELpNe,KAAmE,GKiOxF;EAXC,MAAM,EAAE,SAAS,EAAE,KAAK;IAV5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAUH,KAAK,ELtNe,KAAmE,GKgO1F;EAPC,MAAM,EAAE,SAAS,EAAE,KAAK;IAd5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAcH,KAAK,ELzNgB,KAAmE,GK+N3F;EAHC,MAAM,EAAE,SAAS,EAAE,KAAK;IAlB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAkBH,KAAK,EL5Ne,KAAmE,GK8N1F;;AAGH,AAIE,aAJW,CAIX,qBAAqB,CAAC;EACpB,SAAS,EAAE,KAAiD;EAC5D,MAAM,EAAE,MAAM;EACd,OAAO,EALM,IAAI,GAmBlB;EArBH,AASI,aATS,CAIX,qBAAqB,CAKnB,eAAe,CAAC;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAVR,IAAI;IAWf,cAAc,EAAE,IAAI,GACrB;EAdL,AAgBI,aAhBS,CAIX,qBAAqB,CAYnB,cAAc,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,QAAQ,GACjB;;AApBL,AAuBE,aAvBW,CAuBX,mBAAmB,CAAC;EAClB,OAAO,EAAE,IAAI,GACd;;AAzBH,AA2BE,aA3BW,CA2BX,KAAK,CAAC;EACJ,SAAS,ELlPa,IAAI,GKmP3B;;AA7BH,AA+BE,aA/BW,CA+BX,aAAa,CAAC;EACZ,KAAK,EAAE,IAAI,GAuIZ;EAvKH,AAkCI,aAlCS,CA+BX,aAAa,CAGX,MAAM,CAAC;IACL,QAAQ,EAAE,QAAQ,GAQnB;IA3CL,AAqCM,aArCO,CA+BX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,CAAC;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GACvB;EA1CP,AA8CM,aA9CO,CA+BX,aAAa,CAcX,IAAI,CACF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,aAAa,EAAE,IAAI,GACpB;EAhDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,YAAY,EAAE,IAAI,GAMnB;IAzDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,CAGX,IAAM,CAAA,AAAA,kBAAkB,EAAE;MACxB,SAAS,EAAE,GAAG;MACd,UAAU,EAAE,KAAK,GAClB;EAxDT,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,CAAC;IACzB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO,GAKhB;IArEL,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,AAMxB,MAAO,CAAC;MACN,eAAe,EAAE,SAAS,GAC3B;EApEP,AAuEI,aAvES,CA+BX,aAAa,CAwCX,6BAA6B,CAAC;IAC5B,UAAU,EAAE,GAAG,GAkChB;IA1GL,AA0EM,aA1EO,CA+BX,aAAa,CAwCX,6BAA6B,CAG3B,kBAAkB,CAAC;MACjB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,MAAM;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GACvB;IAlFP,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,CAAC;MASjB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,uBAAuB,EAAE,IAAI;MAC7B,IAAI,EL1YF,OAAO;MK2YT,gBAAgB,EAAE,mDAAmD;MACrE,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAK3D;;AAlBC,UAAU,CAAV,sBAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,kBAAkB;;AAGtC,UAAU,CAAV,0BAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,iBAAiB;MA5F7C,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,AAgBhB,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,cAAc,EAAE,0BAA0B,GAC3C;EAxGT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,gBAAgB,EAAE,sCAAsC;IACxD,MAAM,EJ5YC,GAAG,CAAC,KAAK,CAAC,4BAA4B;II6Y7C,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI,GAYhB;IAhIP,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,CASA,MAAO,CAAC;MACN,MAAM,EJnZM,GAAG,CAAC,KAAK,CAAC,iCAAiC;MIoZvD,UAAU,EAAE,qCAAqC,GAClD;IAzHT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAcA,AAAA,QAAE,AAAA,EAAU;MACV,MAAM,EJzZD,GAAG,CAAC,KAAK,CAAC,4BAA4B;MI0Z3C,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,GAAG,GACb;EA/HT,AAoIM,aApIO,CA+BX,aAAa,CAoGX,QAAQ,CACN,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJjaK,GAAG,CAAC,KAAK,CDCrB,OAAO;IKiaN,UAAU,EJhbV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDeV,OAAO,ECfY,CAAC,CAAC,CAAC,CAAC,CAAC,CDgHX,GAAG,CAjGhB,qBAAO,GKkaP;EAxIT,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,CAAC;IACb,SAAS,EAAE,gBAAgB;IAC3B,UAAU,ELxaP,OAAO;IKyaV,aAAa,EAAE,GAAG;IAClB,KAAK,ELxYH,IAAI;IKyYN,mBAAmB,EAAE,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,CAAC,GAiBX;IAtKL,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,AAYZ,QAAS,CAAC;MACR,UAAU,ELnbT,OAAO;MKobR,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,IAAI;MACzB,QAAQ,EAAE,QAAQ;MAClB,WAAW,EAAE,MAAM;MACnB,GAAG,EAAE,IAAI;MACT,SAAS,EAAE,aAAa;MACxB,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,EAAE,GACZ;;AArKP,AAyKE,aAzKW,CAyKX,QAAQ,CAAC;EACP,eAAe,EAAE,QAAQ,GAM1B;EAhLH,AA4KI,aA5KS,CAyKX,QAAQ,CAGN,MAAM,CAAC;IACL,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC,GACrB;;AAGH,MAAM,EAAE,SAAS,EAAE,KAAK;EAlL1B,AAmLI,aAnLS,CAmLT,mBAAmB,CAAC;IAClB,cAAc,EAAE,MAAM,GAKvB;IAzLL,AAsLM,aAtLO,CAmLT,mBAAmB,CAGjB,eAAe,CAAC;MACd,mBAAmB,EAAE,CAAC,GACvB;;AAMP,UAAU,CAAV,UAAU;EACR,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,gBAAgB;EAG7B,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,aAAa;;AChf5B,AACE,cADY,CACZ,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,ENsDE,IAAI;EMrDd,qBAAqB,EAAE,uBAA6B;EACpD,MAAM,EAAE,CAAC,GAiBV;EAfC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP5B,AN0KE,cM1KY,CACZ,aAAa,CNyKb,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EMpKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAXnD,AN0KE,cM1KY,CACZ,aAAa,CAWT,UAAW,CAAA,EAAE,EN8JjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EM9JC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IAjBpD,AN0KE,cM1KY,CACZ,aAAa,CAiBT,UAAW,CAAA,EAAE,ENwJjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;;AM/KH,AAwBE,cAxBY,CAwBZ,oBAAoB,CAAC;EACnB,MAAM,ELdS,GAAG,CAAC,KAAK,CAAC,oCAAoC;EKe7D,aAAa,EN4BD,GAAG;EM3Bf,OAAO,EAAE,IAAI;EACb,MAAM,EN2DI,KAAK;EM1Df,KAAK,EAAE,IAAI,GAyBZ;EAtDH,AA+BI,cA/BU,CAwBZ,oBAAoB,CAOlB,YAAY,CAAC;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK,GAoBjB;IArDL,AAmCM,cAnCQ,CAwBZ,oBAAoB,CAOlB,YAAY,CAIV,iBAAiB,CAAC;MAChB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,SAAS;MAC1B,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,KAAK;MACd,IAAI,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MACd,KAAK,EAAE,IAAI,GACZ;IA7CP,AA+CM,cA/CQ,CAwBZ,oBAAoB,CAOlB,YAAY,CAgBV,oBAAoB,CAAC;MACnB,KAAK,EAAE,gCAAgC;MACvC,SAAS,EAAE,IAAI;MACf,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,MAAM,GACnB;;AAQD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;EAHvD,ANiHE,oBMjHkB,CAClB,cAAc,CACZ,aAAa,CAET,UAAW,CAAA,EAAE,EN6GnB,aAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG;IACtB,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC;IACpB,mBAAmB,EAAE,IAAI,GAC1B;;AM7GG,MAAM,EAAE,SAAS,EAAE,MAAM;EAT/B,AAEI,oBAFgB,CAClB,cAAc,CACZ,aAAa,CAAC;IAQV,qBAAqB,EAAE,uBAAmC,GAE7D;;AAZL,AAeE,oBAfkB,CAelB,oBAAoB,CAAC;EACnB,MAAM,ENoBU,KAAK,GMnBtB;;AC1EH,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,2CAA2C;EAClD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,UAAU,EP4FO,IAAI,GOpBtB;EAtEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,AAAA,MAAM,CAAC;MAOH,WAAW,EAAE,IAAI,GAqEpB;EA5ED,AAUE,MAVI,CAUJ,EAAE,CAAC;IACD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC,GAKX;IAJC,MAAM,EAAE,SAAS,EAAE,KAAK;MAb5B,AAUE,MAVI,CAUJ,EAAE,CAAC;QAIC,OAAO,EAAE,MAAM;QACf,oBAAoB,EAAE,IAAI,GAE7B;EAjBH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,CAAC;IACJ,OAAO,EAAE,YAAY,GAUtB;IA/BH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAGH,OAAQ,CAAC;MACP,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,GAAG,GACb;IA1BL,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAQH,WAAY,AAAA,OAAO,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;EA9BL,AAiCE,MAjCI,CAiCJ,WAAW,CAAC;IACV,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GAClB;EApCH,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;IACf,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GA2BlB;IAzBC,MAAM,EAAE,SAAS,EAAE,KAAK;MA1C5B,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;QAOb,KAAK,EAAE,KAAK,GAsBf;QAnEH,AAsCE,MAtCI,CAsCJ,gBAAgB,AASZ,IAAM,CAAA,AAAA,GAAG,EAAE;UACT,KAAK,EAAE,IAAI,GACZ;IAjDP,AAsCE,MAtCI,CAsCJ,gBAAgB,AAcd,OAAQ,CAAC;MACP,UAAU,EAAE,oDAA2C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;MAC/E,OAAO,EAAE,EAAE;MACX,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,GAAG;MACxB,cAAc,EAAE,GAAG;MACnB,KAAK,EAAE,IAAI,GACZ;IA9DL,AAsCE,MAtCI,CAsCJ,gBAAgB,AA0Bd,IAAM,CAAA,AAAA,GAAG,CAAC,OAAO,CAAE;MACjB,SAAS,EAAE,UAAU,GACtB;EAlEL,AAuEE,MAvEI,AAuEJ,OAAQ,CAAC;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK,GACf;;AC3EH,AAAA,eAAe,CAAC;EASd,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,IAAI;EACb,MAAM,EAVU,IAAI;EAWpB,aAAa,ERgDG,IAAoC;EQ/CpD,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAuDZ;EArED,AAgBE,eAhBa,CAgBb,KAAK,CAAC;IACJ,UAAU,EAAE,sCAAsC,CAAC,yBAAyB,CAdxD,GAAG,CAc2E,WAA0B,CAAC,SAAS;IACtI,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,iCAAiC;IACnD,UAAU,EPDK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,EQKkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CRmBpC,mBAAI;IQlBR,SAAS,EAAE,IAAI;IACf,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,CAAC;IACV,kBAAkB,EAlBE,IAAI;IAmBxB,oBAAoB,EArBF,IAA4C;IAsB9D,KAAK,EAAE,IAAI,GAKZ;IA/BH,AAgBE,eAhBa,CAgBb,KAAK,AAYH,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,qBAAqB,EAAE,KAAK,CA1BV,GAAG,GA2BtB;EA9BL,AAiCU,eAjCK,AAiCb,MAAO,CAAC,KAAK,CAAC;IACZ,UAAU,EPhBK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,EQoBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CRIpC,mBAAI,GQHT;EAnCH,AAqCW,eArCI,AAqCb,OAAQ,CAAC,KAAK;EArChB,AAsCE,eAtCa,CAsCb,KAAK,AAAA,MAAM,CAAC;IACV,MAAM,EPzBY,GAAG,CAAC,KAAK,CAAC,iCAAiC;IO0B7D,UAAU,EAAE,qCAAqC,GAClD;EAzCH,AA2CE,eA3Ca,CA2Cb,cAAc,CAAC;IACb,UAAU,EArCI,wCAAwC,CAqC3B,SAAS,CAAC,MAAM,CAAC,MAAM;IAClD,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC,CROJ,GAAG,CAAH,GAAG,CQPgC,CAAC;IAChD,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EA/Ce,IAAI,GA8DzB;IApEH,AA2CE,eA3Ca,CA2Cb,cAAc,AAYZ,MAAO,EAvDX,AA2CE,eA3Ca,CA2Cb,cAAc,AAaZ,MAAO,CAAC;MACN,gBAAgB,ER3CZ,qBAAO;MQ4CX,MAAM,EAAE,OAAO,GAChB;IA3DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAkBZ,OAAQ,CAAC;MACP,gBAAgB,ERhDZ,qBAAO,GQiDZ;IA/DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAsBZ,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;;AAMH,AAAA,6BAA6B,CAAC;EAC5B,gBAAgB,EAAE,mCAAmC;EACrD,MAAM,EAAE,CAAC;EACT,UAAU,ERwBQ,CAAC,CAAC,GAAG,CAAC,IAAI,CA9DxB,kBAAI,EA8DgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA9D7C,kBAAI;EQuCR,SAAS,EAAE,eAAgC,GA0E5C;EA9ED,AAME,6BAN2B,CAM3B,oBAAoB,CAAC;IACnB,gBAAgB,EAAE,0CAA0C;IAC5D,KAAK,EAAE,kCAAkC,GAC1C;EATH,AAWE,6BAX2B,CAW3B,oBAAoB,EAXtB,AAYE,6BAZ2B,CAY3B,4BAA4B,CAAC;IAC3B,YAAY,EAAE,oCAAoC,GACnD;EAdH,AAgBE,6BAhB2B,CAgB3B,6BAA6B,CAAC;IAC5B,MAAM,EAAE,CAAC,GACV;EAlBH,AAoBE,6BApB2B,CAoB3B,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,0CAA0C;IAC5D,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAC3D;EAvBH,AAyBE,6BAzB2B,CAyB3B,wCAAwC,CAAC;IACvC,KAAK,EAAE,gCAAgC,GACxC;EA3BH,AA6BE,6BA7B2B,CA6B3B,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,mCAAmC,GACtD;EA/BH,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,CAAC;IACT,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GASxC;IA7CL,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,AAIR,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;IAxCP,AA0CM,6BA1CuB,CAiC3B,2BAA2B,AACzB,SAAU,CAQR,YAAY,CAAC;MACX,IAAI,EAAE,kCAAkC,GACzC;EA5CP,AAiDI,6BAjDyB,CAgD3B,0BAA0B,CACxB,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,0CAA0C,GAC7D;EAnDL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,CAAC;IAIvB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,qIAA+L,CAAC,CAAC;IAC/M,iBAAiB,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ,GASnB;IAtEH,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAStB,SAAU,CAAC;MACT,UAAU,EAAE,iCAAiC,GAC9C;IAjEL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAatB,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;EArEL,AAwEE,6BAxE2B,CAwE3B,4BAA4B,AAC1B,MAAO,CAAC;IACN,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GACxC;;ACrJP,AAAA,aAAa,CAAC;EACZ,UAAU,EAAE,0CAA0C;EACtD,aAAa,EToGc,GAAG;ESnG9B,UAAU,ETiGU,CAAC,CAAC,GAAG,CAAC,IAAI,CA9DxB,kBAAI,EA8DgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA9D7C,kBAAI;ESlCV,OAAO,EAAE,KAAK;EACd,SAAS,ETgGc,IAAI;ES/F3B,mBAAmB,EAAE,GAAG;EACxB,mBAAmB,EAAE,IAAI;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,MAA+B;EACpC,OAAO,EAAE,KAAK,GAyCf;EAnDD,AAYI,aAZS,GAYT,EAAE,CAAC;IACH,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,ETwFkB,GAAG,CSxFS,CAAC,GAmCvC;IAlDH,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,CAAC;MACH,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,IAAI,GA8BZ;MAjDL,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,AAIF,UAAW,CAAC;QACV,aAAa,ERXF,GAAG,CAAC,KAAK,CAAC,oCAAoC;QQYzD,MAAM,ETgFe,GAAG,CShFY,CAAC,GACtC;MAxBP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,CAAC;QACF,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,ETuEa,GAAG,CAAC,IAAI;QStE5B,WAAW,EAAE,MAAM,GAcpB;QAhDP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;UACzB,UAAU,EAAE,iCAAiC,GAC9C;QAtCT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAcD,OAAQ,CAAC;UACP,UAAU,EAAE,kCAAkC,GAC/C;QA1CT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAkBD,SAAU,CAAC;UACT,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,IAAI,GACrB;;AC/CT,AACE,oBADkB,CAClB,MAAM,CAAC;EACL,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CVoCnB,kBAAI;EUnCR,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,MAAM;EACnB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK,GACb;;AARH,AAUE,oBAVkB,CAUlB,OAAO,CAAC;EACN,MAAM,EAAE,CAAC,GACV;;AAZH,AAcE,oBAdkB,CAclB,cAAc,CAAC;EACb,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,CAAC,GAMlB;EAvBH,AAmBI,oBAnBgB,CAclB,cAAc,CAKZ,CAAC,CAAC;IACA,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,IAAI,GACpB;;AAtBL,AAyBE,oBAzBkB,CAyBlB,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,MAAM;EACjB,OAAO,EAAE,MAAM,GAchB;EA3CH,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,CAAC;IACL,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,GAAG,GAMX;IA1CL,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,AAOJ,KAAM,CAAC;MACL,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,CAAC,GACvB;;AAzCP,AA6CE,oBA7CkB,CA6ClB,KAAK,CAAC;EACJ,iBAAiB,EAAE,IAAI,GACxB;;AAGH,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,2BAA2B;EACvC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC;EACL,UAAU,EAAE,yBAAyB;EACrC,MAAM,ETnDW,GAAG,CAAC,KAAK,CAAC,oCAAoC;ESoD/D,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,KAAK,GACf;;AClED,AAAA,WAAW,CAAC;EAEV,UAAU,EAAE,mCAAmC;EAC/C,aAAa,EXmDC,GAAG;EWlDjB,OAAO,EAAE,YAAY;EACrB,MAAM,EXkFM,KAAK;EWjFjB,iBAAiB,EXmDL,IAAI;EWlDhB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAwLZ;EAhMD,AX8HE,WW9HS,CX8HT,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,ECzHO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID0HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CArF3B,qBAAO;IAwHb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA9CkB,IAAI,GAoD5B;IWtJH,AX8HE,WW9HS,CX8HT,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EWrJL,AAUE,WAVS,AAUT,YAAa,CAAC;IACZ,UAAU,EAAE,WAAW,GAKxB;IAhBH,AAaI,WAbO,AAUT,YAAa,CAGX,KAAK,CAAC;MACJ,UAAU,EAAE,KAAK,CVFJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GUG5D;EAfL,AAkBE,WAlBS,CAkBT,KAAK,CAAC;IACJ,aAAa,EXmCD,GAAG;IWlCf,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,IAAI,GACb;EAtBH,AAwBI,WAxBO,GAwBP,CAAC,CAAC;IACF,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,IAAI,GAWZ;IAzCH,AAiCM,WAjCK,GAwBP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;MXwFV,UAAU,ECxGK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;MDyGhE,UAAU,EAAE,gBAAgB,GWvFvB;IAnCP,AAqCM,WArCK,GAwBP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAKxB,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;EAvCP,AA2CE,WA3CS,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAAE;IX8EtD,UAAU,ECxGK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IDyGhE,UAAU,EAAE,gBAAgB;IW5E1B,OAAO,EAAE,IAAI,GAad;IA3DH,AX0JE,WW1JS,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EX+GpD,oBAAoB,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;IW7JH,AAgDI,WAhDO,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAKlD,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;IAlDL,AAoDiB,WApDN,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EASlD,UAAU,GAAG,eAAe,CAAC;MAC3B,OAAO,EAAE,IAAI,GACd;IAtDL,AAwDI,WAxDO,AA2CT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAalD,eAAe,AAAA,UAAU,CAAC;MACxB,OAAO,EAAE,KAAK,GACf;EA1DL,AA6DE,WA7DS,CA6DT,yBAAyB,CAAC;IACxB,aAAa,EXRD,GAAG,CAAH,GAAG,CWQ8B,CAAC,CAAC,CAAC;IAChD,MAAM,EXyBkB,KAAK;IWxB7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ,GAuBnB;IAxFH,AA6DE,WA7DS,CA6DT,yBAAyB,AAMvB,OAAQ,CAAC;MACP,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MAC1D,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI,GACZ;IAzEL,AA2EI,WA3EO,CA6DT,yBAAyB,CAcvB,mBAAmB,CAAC;MAClB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,KAAK;MACtB,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,CAAC;MACV,UAAU,EAAE,OAAO,CAAC,EAAE,CXlCZ,8BAA8B;MWmCxC,KAAK,EAAE,IAAI,GAKZ;MAvFL,AA2EI,WA3EO,CA6DT,yBAAyB,CAcvB,mBAAmB,AASjB,OAAQ,CAAC;QACP,OAAO,EAAE,CAAC,GACX;EAtFP,AA0FE,WA1FS,CA0FT,aAAa,CAAC;IACZ,OAAO,EAAE,cAAc,GAKxB;IAhGH,AA0FE,WA1FS,CA0FT,aAAa,AAGX,SAAU,CAAC;MACT,WAAW,EAAE,IAAI,GAClB;EA/FL,AAkGE,WAlGS,CAkGT,UAAU,CAAC;IACT,UAAU,EAAE,IAA+C;IAC3D,QAAQ,EAAE,MAAM,GA4BjB;IAhIH,AAkGE,WAlGS,CAkGT,UAAU,AAIR,SAAU,CAAC;MACT,UAAU,EAAE,KAAgD,GAC7D;IAxGL,AAkGE,WAlGS,CAkGT,UAAU,AAQR,aAAc,EA1GlB,AAkGE,WAlGS,CAkGT,UAAU,AASR,WAAY,CAAC;MACX,UAAU,EAAE,IAA+C,GAC5D;IA7GL,AAkGE,WAlGS,CAkGT,UAAU,AAaR,SAAU,AAAA,aAAa,EA/G3B,AAkGE,WAlGS,CAkGT,UAAU,AAcR,SAAU,AAAA,WAAW,CAAC;MACpB,UAAU,EAAE,KAAgD,GAC7D;IAlHL,AAkGE,WAlGS,CAkGT,UAAU,AAkBR,aAAc,AAAA,WAAW,CAAC;MACxB,UAAU,EAAE,KAA+C,GAC5D;IAtHL,AAkGE,WAlGS,CAkGT,UAAU,AAsBR,SAAU,AAAA,aAAa,AAAA,WAAW,CAAC;MACjC,UAAU,EAAE,KAAgD,GAC7D;IA1HL,AA4H2B,WA5HhB,CAkGT,UAAU,AA0BR,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;MACjC,UAAU,EAAE,IAA0B;MACtC,QAAQ,EAAE,MAAM,GACjB;EA/HL,AAkIE,WAlIS,CAkIT,eAAe,CAAC;IACd,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS,GAC1B;EAzIH,AA2IE,WA3IS,CA2IT,eAAe,AAAA,UAAU,CAAC;IAAE,OAAO,EAAE,IAAI,GAAK;EA3IhD,AA6IE,WA7IS,CA6IT,mBAAmB,CAAC;IAClB,KAAK,EAAE,UAAU;IACjB,mBAAmB,EAAE,IAAI;IACzB,UAAU,EAAE,GAAG,GAMhB;IAtJH,AA6IE,WA7IS,CA6IT,mBAAmB,AAKjB,qBAAsB,CAAC;MACrB,MAAM,EXhFsB,IAAI;MWiFhC,KAAK,EXjFuB,IAAI,GWkFjC;EArJL,AAwJE,WAxJS,CAwJT,WAAW,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EXjES,IAAI;IWkExB,MAAM,EAAE,CAAC,CAAC,CAAC,CXnEK,GAAG;IWoEnB,SAAS,EAAE,UAAU,GACtB;EA9JH,AAgKE,WAhKS,CAgKT,iBAAiB,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EXxES,IAAI;IWyExB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,UAAU,GACtB;EAtKH,AAwKE,WAxKS,CAwKT,aAAa,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,iCAAiC;IACxC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,CAAC,GACT;EAjLH,AAmLE,WAnLS,CAmLT,kBAAkB,CAAC;IACjB,IAAI,EAAE,iCAAiC;IACvC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAvLH,AAyLE,WAzLS,CAyLT,mBAAmB,CAAC;IAClB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;;AAOC,MAAM,EAAE,SAAS,EAAE,MAAM;EAJ7B,AAGE,oBAHkB,CAGlB,WAAW,CAAC;IAER,MAAM,EX1GQ,KAAK,GW0JtB;IArDH,AAOM,oBAPc,CAGlB,WAAW,CAIP,yBAAyB,CAAC;MACxB,MAAM,EX5GoB,KAAK,GW6GhC;IATP,AAWM,oBAXc,CAGlB,WAAW,CAQP,aAAa,CAAC;MACZ,OAAO,EAAE,cAAc,GACxB;IAbP,AAeM,oBAfc,CAGlB,WAAW,CAYP,UAAU,CAAC;MACT,UAAU,EAAE,KAAqC,GAClD;IAjBP,AAmBM,oBAnBc,CAGlB,WAAW,CAgBP,eAAe,CAAC;MACd,SAAS,EAAE,IAAI;MACf,cAAc,EAAE,GAAG,GACpB;IAtBP,AAwBM,oBAxBc,CAGlB,WAAW,CAqBP,mBAAmB,AACjB,qBAAsB,CAAC;MACrB,MAAM,EXxJkB,IAAsC;MWyJ9D,KAAK,EXzJmB,IAAsC,GW0J/D;IA5BT,AA+BM,oBA/Bc,CAGlB,WAAW,CA4BP,WAAW,CAAC;MACV,SAAS,EAAE,IAAI;MACf,WAAW,EAhCH,IAAI;MAiCZ,aAAa,EAAE,CAAC,GACjB;IAnCP,AAsCQ,oBAtCY,CAGlB,WAAW,CAkCP,UAAU,AAAA,IAAK,CAAA,AAAA,eAAe,EAC5B,WAAW,CAAC;MACV,UAAU,EAAE,IAAgB,GAC7B;IAxCT,AA2CM,oBA3Cc,CAGlB,WAAW,CAwCP,iBAAiB,CAAC;MAChB,SAAS,EAAE,IAAI;MACf,WAAW,EA5CH,IAAI,GA6Cb;IA9CP,AAgDM,oBAhDc,CAGlB,WAAW,CA6CP,aAAa,CAAC;MACZ,MAAM,EAAE,GAAG;MACX,SAAS,EAAE,IAAI,GAChB;;ACrPP,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EAAE,oCAAoC;EAC3C,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,EZwDG,IAAoC;EYvDpD,UAAU,EAAE,MAAM,GA0BnB;EAxBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,2BAA2B,CAAC;MAQxB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,UAAU,EAAE,IAAI,GAqBnB;EA/BD,AAaE,2BAbyB,CAazB,CAAC,CAAC;IACA,MAAM,EAAE,CAAC,GAMV;IALC,MAAM,EAAE,SAAS,EAAE,KAAK;MAf5B,AAaE,2BAbyB,CAazB,CAAC,CAAC;QAGE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,aAAa,GAEjC;EApBH,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;IACJ,OAAO,EAAE,IAAI,GAOd;IANC,MAAM,EAAE,SAAS,EAAE,KAAK;MAxB5B,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;QAGF,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,kCAAkC;QACxC,iBAAiB,EAAE,GAAG,GAEzB;;AAGH,AAAA,yBAAyB,CAAC;EACxB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,MAAM,GAelB;EAbC,MAAM,EAAE,SAAS,EAAE,KAAK;IAL1B,AAAA,yBAAyB,CAAC;MAMtB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,OAAO,EAAE,CAAC,GAUb;EAlBD,AAWE,yBAXuB,CAWvB,MAAM,CAAC;IACL,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IACT,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,MAAM,GAChB;;AClDH,AAAA,oBAAoB,CAAC;EACnB,OAAO,Eb0DkB,IAAI,CADF,IAAI;EaxD/B,gBAAgB,EAAE,KAAK;EACvB,mBAAmB,EAAE,KAAK;EAC1B,mBAAmB,EAAE,gBAAgB,GAiKtC;EArKD,AAME,oBANkB,CAMlB,cAAc,CAAC;IACb,SAAS,Eb6Ea,IAAI;Ia5E1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,SAAS,GAmB1B;IA7BH,AAYI,oBAZgB,CAMlB,cAAc,CAMZ,IAAI,CAAC;MACH,KAAK,EAAE,uCAAuC;MAC9C,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,uCAAuC;MAC7C,cAAc,EAAE,MAAM,GACvB;IAjBL,AAmBI,oBAnBgB,CAMlB,cAAc,CAaZ,aAAa,CAAC;MACZ,MAAM,EAAE,OAAO;MACf,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM,GACpB;IAvBL,AAyBI,oBAzBgB,CAMlB,cAAc,CAmBZ,kBAAkB,CAAC;MACjB,mBAAmB,EAAE,GAAG;MACxB,UAAU,EAAE,IAAI,GACjB;EA5BL,AA+BE,oBA/BkB,CA+BlB,gBAAgB,CAAC;IACf,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GA6BnB;IA/DH,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,CAAC;MACnB,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;MAC/E,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,OAAO;MACf,IAAI,EAAE,uCAAuC;MAC7C,MAAM,EAAE,IAAI;MACZ,iBAAiB,EAAE,CAAC;MACpB,OAAO,EAAE,CAAC;MACV,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,mBAAmB,EAAE,KAAK;MAC1B,mBAAmB,EAAE,OAAO;MAC5B,KAAK,EbkDgB,IAAI,Ga5C1B;MAtDL,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,AAclB,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;QAClC,IAAI,EbrCF,OAAO;QasCT,OAAO,EAAE,CAAC,GACX;IArDP,AAwDI,oBAxDgB,CA+BlB,gBAAgB,CAyBd,aAAa,CAAC;MACZ,GAAG,EAAE,IAAI,GACV;IAED,MAAM,EAAE,SAAS,EAAE,MAAM;MA5D7B,Ab0KE,oBa1KkB,CA+BlB,gBAAgB,Cb2IhB,aAAa,CAAC;QACZ,iBAAiB,EAAE,GAAG;QACtB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI,GAC1B;Ea/KH,AAoEM,oBApEc,AAiElB,MAAO,CAEL,gBAAgB,CACd,oBAAoB,EApE1B,AAoEM,oBApEc,AAkElB,OAAQ,CACN,gBAAgB,CACd,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC,GACX;EAtEP,AA0EE,oBA1EkB,AA0ElB,OAAQ,CAAC;IACP,UAAU,EAAE,iCAAiC;IAC7C,aAAa,EAAE,GAAG,GAOnB;IAnFH,AA+EM,oBA/Ec,AA0ElB,OAAQ,CAIN,gBAAgB,CACd,oBAAoB,CAAC;MACnB,IAAI,EAAE,8CAA8C,GACrD;EAjFP,AAqFE,oBArFkB,CAqFlB,mBAAmB,CAAC;IAIlB,KAAK,EAAE,oCAAoC;IAC3C,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GAqCnB;IAjIH,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;MACvB,OAAO,EAAE,YAAY;MACrB,UAAU,EATQ,IAAI;MAUtB,KAAK,EAAE,kBAAiC,GAKzC;MAHC,MAAM,EAAE,SAAS,EAAE,KAAK;QAnG9B,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;UAMrB,KAAK,EbdA,KAA6B,GagBrC;IAtGL,AAwGI,oBAxGgB,CAqFlB,mBAAmB,CAmBjB,CAAC,CAAC;MACA,KAAK,EAAE,gCAAgC;MACvC,WAAW,EAAE,IAAI;MACjB,YAAY,EAAE,GAAG,GAClB;IA5GL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;MACL,UAAU,EAAE,oCAAoC;MAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CbvGb,OAAO;MawGX,aAAa,EAAE,GAAG;MAClB,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,GAAG;MACf,SAAS,EA9BQ,KAAK;MA+BtB,UAAU,EA9BQ,IAAI;MA+BtB,iBAAiB,EAAE,CAAC,GAUrB;MAhIL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,AAUJ,MAAO,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;QACpB,UAAU,EZxGD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QYyG1D,UAAU,EAAE,gBAAgB,GAC7B;MAED,MAAM,EAAE,SAAS,EAAE,KAAK;QA7H9B,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;UAgBH,QAAQ,EAAE,QAAQ,GAErB;EAhIL,AAmIE,oBAnIkB,CAmIlB,sBAAsB,CAAC;IACrB,MAAM,Eb7CI,KAAK,Ga8ChB;EArIH,AAuIE,oBAvIkB,CAuIlB,aAAa,CAAC;IAGZ,MAAM,EAAE,CAAC,CADY,IAAG;IAExB,OAAO,EAAE,CAAC,CAFW,GAAG,GAQzB;IAjJH,AAuIE,oBAvIkB,CAuIlB,aAAa,AAMX,UAAW,CAAC;MACV,QAAQ,EAAE,MAAM;MAChB,cAAc,EAAE,IAAI,GACrB;EAhJL,AAqJM,oBArJc,AAmJlB,kBAAmB,CACjB,cAAc,CACZ,kBAAkB,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC,IAAI,CbvGlB,8BAA8B,GawGvC;EAvJP,AA0JI,oBA1JgB,AAmJlB,kBAAmB,CAOjB,aAAa,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC,IAAI,Cb5GjB,8BAA8B,Ga6GzC;EA5JL,AAgKI,oBAhKgB,AA+JlB,UAAW,CACT,aAAa,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,GACjB;;AClKL,AAAA,eAAe,CAAC;EAGd,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;EACd,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,QAAQ,GAoElB;EA5ED,AAUE,eAVa,CAUb,EAAE,CAAC;IACD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI,GAChB;EAbH,AAeE,eAfa,CAeb,KAAK,CAAC;IACJ,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,IAAI,GACZ;EAlBH,AAqBkB,eArBH,CAoBb,aAAa,AACX,YAAa,CAAC,EAAE,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,KAAK,CArBV,oCAAoC,GAsBhD;EAvBL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,CAAC;IACD,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG,CAAC,KAAK,CA1Bb,oCAAoC;IA2B/C,OAAO,EAAE,GAAG,GASb;IArCL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AAKA,YAAa,CAAC;MACZ,WAAW,EAAE,GAAG,CAAC,KAAK,CA9Bb,oCAAoC,GA+B9C;IAhCP,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AASA,WAAY,CAAC;MACX,YAAY,EAAE,GAAG,CAAC,KAAK,CAlCd,oCAAoC,GAmC9C;EApCP,AAwCkB,eAxCH,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EdzBN,OAAO;Ic0BX,OAAO,EAAE,OAAO,GAKjB;IAHC,AAJU,WAIC,CA5CnB,eAAe,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAIA;MACZ,KAAK,EdRP,IAAI,GcSH;EA9CT,AAmDM,eAnDS,CAoBb,aAAa,AA8BX,QAAS,CACP,WAAW;EAnDjB,AAoDM,eApDS,CAoBb,aAAa,AA8BX,QAAS,CAEP,gBAAgB,CAAC;IACf,OAAO,EAAE,GAAG,GACb;EAtDP,AAwDM,eAxDS,CAoBb,aAAa,AA8BX,QAAS,CAMP,WAAW,CAAC;IACV,OAAO,EAAE,GAAG,GACb;EA1DP,AA6DI,eA7DW,CAoBb,aAAa,CAyCX,WAAW,CAAC;IACV,WAAW,EA5DH,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS;IA6DxG,SAAS,EAAE,IAAI,GAChB;EAhEL,AAmEE,eAnEa,CAmEb,GAAG,CAAC;IACF,UAAU,EAAE,sCAAsC;IAClD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,WAAW,EAxED,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,GAyE3G;;AC5EH,AAAA,eAAe,CAAC;EACd,WAAW,EAAE,MAAM;EACnB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,oCAAoC;EACtD,gBAAgB,EAAE,oCAAoC;EACtD,WAAW,EAAE,OAAO;EACpB,OAAO,EAAE,QAAQ;EACjB,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,OAAO,GACf;;ACTD,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,gBAAgB,EAAE,uCAAuC;EACzD,KAAK,EAAE,gCAAgC;EACvC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,qCAAqC;EAC3D,UAAU,EfQO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EgBHf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM,GA6CpB;EAzDD,AAcE,qBAdmB,CAcnB,aAAa,CAAC;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI,ChBwCY,IAAI;IgBrC7B,kBAAkB,EAAE,IAAI;IAKxB,SAAS,EhB+Ca,KAAmE,GgB3C1F;IARC,MAAM,EAAE,SAAS,EAAE,KAAK;MAtB5B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QASV,kBAAkB,EhBmCK,IAAI,GgB5B9B;IAHC,MAAM,EAAE,SAAS,EAAE,MAAM;MA3B7B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QAcV,SAAS,EhB8CY,MAAmE,GgB5C3F;EA9BH,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;IACX,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,0EAA0E;IAC5F,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,gCAAgC;IACtC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,GAKhB;IAHC,MAAM,EAAE,SAAS,EAAE,KAAK;MAjD5B,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;QAkBT,iBAAiB,EAAE,IAAI,GAE1B;EApDH,AAsDU,qBAtDW,AAsDnB,MAAO,CAAC,YAAY,CAAC;IACnB,OAAO,EAAE,KAAK,GACf;;ACxDH,AACE,cADY,CACZ,MAAM,CAAC;EACL,OAAO,EAAE,MAAM;EACf,SAAS,EAAE,OAAO;EAClB,MAAM,EAAE,CAAC,GACV;;AALH,AAOE,cAPY,CAOZ,KAAK,CAAC;EACJ,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,CAAC,GACV;;AAVH,AAYE,cAZY,CAYZ,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,iBAAiB,EAAE,IAAI;EACvB,WAAW,EAAE,CAAC,GACf"
+	"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
@@ -339,24 +339,23 @@ main {
     main {
       width: 402px; } }
   @media (min-width: 610px) {
     main {
       width: 530px; } }
   @media (min-width: 866px) {
     main {
       width: 786px; } }
+  @media (min-width: 1122px) {
+    main {
+      width: 1042px; } }
   main section {
     margin-bottom: 20px;
     position: relative; }
 
-@media (min-width: 1122px) {
-  .wide-layout-enabled main {
-    width: 1042px; } }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -444,16 +443,31 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1090px) {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .top-sites-list :nth-child(8n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1346px) {
+    .top-sites-list :nth-child(8n+7) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media not all and (min-width: 1122px) {
+    .top-sites-list .hide-for-narrow {
+      display: none; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
     box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
@@ -577,37 +591,16 @@ main {
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
     visibility: hidden; }
 
-.wide-layout-disabled .top-sites-list .hide-for-narrow {
-  display: none; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) and (max-width: 1346px) {
-  .wide-layout-enabled .top-sites-list :nth-child(8n+7) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media not all and (min-width: 1122px) {
-  .wide-layout-enabled .top-sites-list .hide-for-narrow {
-    display: none; } }
-
 .edit-topsites-wrapper .modal {
   box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.2);
   left: 0;
   margin: 0 auto;
   position: fixed;
   right: 0;
   top: 40px;
   width: 274px; }
@@ -771,16 +764,25 @@ main {
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
+  @media (min-width: 1122px) and (max-width: 1570px) {
+    .sections-list .section-list :nth-child(3n) .context-menu {
+      margin-inline-end: 5px;
+      margin-inline-start: auto;
+      offset-inline-end: 0;
+      offset-inline-start: auto; } }
+  @media (min-width: 1122px) {
+    .sections-list .section-list {
+      grid-template-columns: repeat(auto-fit, 309px); } }
 
 .sections-list .section-empty-state {
   border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
@@ -796,30 +798,19 @@ main {
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
       color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
-
-@media (min-width: 1122px) and (max-width: 1570px) {
-  .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
-    margin-inline-end: 5px;
-    margin-inline-start: auto;
-    offset-inline-end: 0;
-    offset-inline-start: auto; } }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .sections-list .section-list {
-    grid-template-columns: repeat(auto-fit, 309px); } }
-
-.wide-layout-enabled .section-empty-state {
-  height: 370px; }
+  @media (min-width: 1122px) {
+    .sections-list .section-empty-state {
+      height: 370px; } }
 
 .topic {
   color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
@@ -1189,44 +1180,43 @@ main {
     height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
     line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
-
-@media (min-width: 1122px) {
-  .wide-layout-enabled .card-outer {
-    height: 370px; }
-    .wide-layout-enabled .card-outer .card-preview-image-outer {
-      height: 155px; }
-    .wide-layout-enabled .card-outer .card-details {
-      padding: 13px 16px 12px; }
-    .wide-layout-enabled .card-outer .card-text {
-      max-height: 140px; }
-    .wide-layout-enabled .card-outer .card-host-name {
-      font-size: 12px;
-      padding-bottom: 5px; }
-    .wide-layout-enabled .card-outer .card-download-icon.icon-download-folder {
-      height: 54px;
-      width: 54px; }
-    .wide-layout-enabled .card-outer .card-title {
-      font-size: 17px;
-      line-height: 23px;
-      margin-bottom: 0; }
-    .wide-layout-enabled .card-outer .card-text:not(.no-description) .card-title {
-      max-height: 69px; }
-    .wide-layout-enabled .card-outer .card-description {
-      font-size: 15px;
-      line-height: 23px; }
-    .wide-layout-enabled .card-outer .card-context {
-      bottom: 4px;
-      font-size: 14px; } }
+  @media (min-width: 1122px) {
+    .card-outer {
+      height: 370px; }
+      .card-outer .card-preview-image-outer {
+        height: 155px; }
+      .card-outer .card-details {
+        padding: 13px 16px 12px; }
+      .card-outer .card-text {
+        max-height: 140px; }
+      .card-outer .card-host-name {
+        font-size: 12px;
+        padding-bottom: 5px; }
+      .card-outer .card-download-icon.icon-download-folder {
+        height: 54px;
+        width: 54px; }
+      .card-outer .card-title {
+        font-size: 17px;
+        line-height: 23px;
+        margin-bottom: 0; }
+      .card-outer .card-text:not(.no-description) .card-title {
+        max-height: 69px; }
+      .card-outer .card-description {
+        font-size: 15px;
+        line-height: 23px; }
+      .card-outer .card-context {
+        bottom: 4px;
+        font-size: 14px; } }
 
 .manual-migration-container {
   color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -26,27 +26,27 @@
 	],
 	"sourcesContent": [
 		"/* This is the windows variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
 		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  background-color: var(--newtab-background-color);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\ninput {\n  &[type='text'],\n  &[type='search'] {\n    border-radius: $border-radius;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
 		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$small-download-folder-icon-size: 36px;\n$large-download-folder-icon-size: $small-download-folder-icon-size * 1.5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
 		"@function textbox-shadow($color) {\n  @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n  --newtab-textbox-focus-color: $color;\n  --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-30-60;\n  --newtab-element-hover-color: $grey-20;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-text-tertiary-color: $grey-50;\n  --newtab-textbox-background-color: $white;\n  --newtab-textbox-border: $grey-90-20;\n  @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-10;\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-border-color: transparent;\n  --newtab-search-dropdown-color: $white;\n  --newtab-search-dropdown-header-color: $grey-10;\n  --newtab-search-icon-color: $grey-90-40;\n\n  // Top Sites\n  --newtab-topsites-background-color: $white;\n  --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-30;\n  --newtab-card-background-color: $white;\n  --newtab-card-hairline-color: $black-10;\n  --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n  // Snippets\n  --newtab-snippets-background-color: $white;\n  --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-10;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-10-20;\n  --newtab-element-hover-color: $grey-10-10;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-40;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-80;\n  --newtab-text-tertiary-color: $grey-10-60;\n  --newtab-textbox-background-color: $grey-70;\n  --newtab-textbox-border: $grey-10-20;\n  @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n  // Context menu\n  --newtab-contextmenu-background-color: $grey-60;\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-80;\n  --newtab-overlay-color: $grey-90-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-border-color: $grey-10-20;\n  --newtab-search-dropdown-color: $grey-70;\n  --newtab-search-dropdown-header-color: $grey-60;\n  --newtab-search-icon-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-background-color: $grey-70;\n  --newtab-topsites-icon-shadow: none;\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-active-outline-color: $grey-60;\n  --newtab-card-background-color: $grey-70;\n  --newtab-card-hairline-color: $grey-10-10;\n  --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n  // Snippets\n  --newtab-snippets-background-color: $grey-70;\n  --newtab-snippets-hairline-color: $white-10;\n}\n",
 		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-search {\n    background-image: url('chrome://browser/skin/search-glass.svg');\n  }\n\n  &.icon-modal-delete {\n    flex-shrink: 0;\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem {\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-download {\n    background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n  }\n\n  &.icon-copy {\n    background-image: url('chrome://browser/skin/edit-copy.svg');\n  }\n\n  &.icon-open-file {\n    background-image: url('#{$image-path}glyph-open-file-16.svg');\n  }\n\n  &.icon-download-folder {\n    background-image: url('#{$image-path}glyph-download-icon.svg');\n    background-size: 100%;\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".outer-wrapper {\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  @media (min-width: $break-point-widest) {\n    width: $wrapper-max-width-widest;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-hover-color);\n    }\n\n    &:active {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
 		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".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\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}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\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\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Eight columns\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n    :nth-child(8n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n    :nth-child(8n+7) {\n      @include context-menu-open-left;\n    }\n  }\n\n  @media not all and (min-width: $break-point-widest) {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-topsites-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: var(--newtab-topsites-icon-shadow);\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-background-color);\n        border: $input-border;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: var(--newtab-textbox-focus-boxshadow);\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".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\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\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}\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",
 		".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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"
+	"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
@@ -3429,17 +3429,17 @@ class BaseContent extends __WEBPACK_IMPO
   render() {
     const { props } = this;
     const { App } = props;
     const { initialized } = App;
     const prefs = props.Prefs.values;
 
     const shouldBeFixedToTop = __WEBPACK_IMPORTED_MODULE_7_common_PrerenderData_jsm__["a" /* PrerenderData */].arePrefsValid(name => prefs[name]);
 
-    const outerClassName = ["outer-wrapper", shouldBeFixedToTop && "fixed-to-top", prefs.enableWideLayout ? "wide-layout-enabled" : "wide-layout-disabled"].filter(v => v).join(" ");
+    const outerClassName = ["outer-wrapper", shouldBeFixedToTop && "fixed-to-top"].filter(v => v).join(" ");
 
     return __WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(
       "div",
       { className: outerClassName },
       __WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(
         "main",
         null,
         prefs.showSearch && __WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(
@@ -3857,27 +3857,26 @@ class _PrerenderData {
 var PrerenderData = new _PrerenderData({
   initialPrefs: {
     "migrationExpired": true,
     "feeds.topsites": true,
     "showSearch": true,
     "topSitesRows": 1,
     "feeds.section.topstories": true,
     "feeds.section.highlights": true,
-    "enableWideLayout": true,
     "sectionOrder": "topsites,topstories,highlights",
     "collapsed": false
   },
   // Prefs listed as invalidating will prevent the prerendered version
   // of AS from being used if their value is something other than what is listed
   // here. This is required because some preferences cause the page layout to be
   // too different for the prerendered version to be used. Unfortunately, this
   // will result in users who have modified some of their preferences not being
   // able to get the benefits of prerendering.
-  validation: ["feeds.topsites", "showSearch", "topSitesRows", "enableWideLayout", "sectionOrder",
+  validation: ["feeds.topsites", "showSearch", "topSitesRows", "sectionOrder",
   // This means if either of these are set to their default values,
   // prerendering can be used.
   { oneOf: ["feeds.section.topstories", "feeds.section.highlights"] },
   // If any component has the following preference set to `true` it will
   // invalidate the prerendered version.
   { indexedDB: ["collapsed"] }],
   initialSections: [{
     enabled: true,
--- 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 4bde981eefc95fb0d968","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","enableWideLayout","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 4bde981eefc95fb0d968","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      prefs.enableWideLayout ? \"wide-layout-enabled\" : \"wide-layout-disabled\"\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    \"enableWideLayout\": 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    \"enableWideLayout\",\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 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
--- 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.04.26.0957-106c699e</em:version>
+    <em:version>2018.05.02.1355-ff98ea91</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
@@ -86,17 +86,17 @@ class _ASRouter {
    * @memberof _ASRouter
    */
   async init(channel, storage) {
     this.messageChannel = channel;
     this.messageChannel.addMessageListener(INCOMING_MESSAGE_NAME, this.onMessage);
     this.initialized = true;
     this._storage = storage;
 
-    const blockList = await this._storage.get("blockList");
+    const blockList = await this._storage.get("blockList") || [];
     this.setState({blockList});
   }
 
   uninit() {
     this.messageChannel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "CLEAR_MESSAGE"});
     this.messageChannel.removeMessageListener(INCOMING_MESSAGE_NAME, this.onMessage);
     this.messageChannel = null;
     this.initialized = false;
--- a/browser/extensions/activity-stream/lib/ActivityStream.jsm
+++ b/browser/extensions/activity-stream/lib/ActivityStream.jsm
@@ -142,20 +142,16 @@ const PREFS_CONFIG = new Map([
   ["section.topstories.showDisclaimer", {
     title: "Boolean flag that decides whether or not to show the topstories disclaimer.",
     value: true
   }],
   ["tippyTop.service.endpoint", {
     title: "Tippy Top service manifest url",
     value: "https://activity-stream-icons.services.mozilla.com/v1/icons.json.br"
   }],
-  ["enableWideLayout", {
-    title: "Enable the wider layout (8 topsites per row and larger pocket+highlight cards)",
-    value: true
-  }],
   ["sectionOrder", {
     title: "The rendering order for the sections",
     value: "topsites,topstories,highlights"
   }],
   ["asrouterExperimentEnabled", {
     title: "Is the message center experiment on?",
     value: false
   }]
@@ -213,18 +209,18 @@ const FEEDS_DATA = [
   },
   {
     name: "section.topstories",
     factory: () => new TopStoriesFeed(),
     title: "Fetches content recommendations from a configurable content provider",
     // Dynamically determine if Pocket should be shown for a geo / locale
     getValue: ({geo, locale}) => {
       const locales = ({
-        "US": ["en-US", "en-GB", "en-ZA"],
-        "CA": ["en-US", "en-GB", "en-ZA"],
+        "US": ["en-CA", "en-GB", "en-US", "en-ZA"],
+        "CA": ["en-CA", "en-GB", "en-US", "en-ZA"],
         "DE": ["de", "de-DE", "de-AT", "de-CH"]
       })[geo];
       return !!locales && locales.includes(locale);
     }
   },
   {
     name: "snippets",
     factory: () => new SnippetsFeed(),
--- a/browser/extensions/activity-stream/lib/ActivityStreamStorage.jsm
+++ b/browser/extensions/activity-stream/lib/ActivityStreamStorage.jsm
@@ -1,27 +1,27 @@
 ChromeUtils.defineModuleGetter(this, "IndexedDB", "resource://gre/modules/IndexedDB.jsm");
 
 this.ActivityStreamStorage = class ActivityStreamStorage {
   /**
    * @param storeNames Array of strings used to create all the required stores
    */
-  constructor(options = {}) {
-    if (!options.storeNames || !options.telemetry) {
-      throw new Error(`storeNames and telemetry are required, called only with ${Object.keys(options)}`);
+  constructor({storeNames, telemetry}) {
+    if (!storeNames) {
+      throw new Error("storeNames required");
     }
 
     this.dbName = "ActivityStream";
     this.dbVersion = 3;
-    this.storeNames = options.storeNames;
-    this.telemetry = options.telemetry;
+    this.storeNames = storeNames;
+    this.telemetry = telemetry;
   }
 
   get db() {
-    return this._db || (this._db = this._openDatabase());
+    return this._db || (this._db = this.createOrOpenDb());
   }
 
   /**
    * Public method that binds the store required by the consumer and exposes
    * the private db getters and setters.
    *
    * @param storeName String name of desired store
    */
@@ -60,16 +60,36 @@ this.ActivityStreamStorage = class Activ
       this.storeNames.forEach(store => {
         if (!db.objectStoreNames.contains(store)) {
           this._requestWrapper(() => db.createObjectStore(store));
         }
       });
     });
   }
 
+  /**
+   * createOrOpenDb - Open a db (with this.dbName) if it exists.
+   *                  If it does not exist, create it.
+   *                  If an error occurs, deleted the db and attempt to
+   *                  re-create it.
+   * @returns Promise that resolves with a db instance
+   */
+  async createOrOpenDb() {
+    try {
+      const db = await this._openDatabase();
+      return db;
+    } catch (e) {
+      if (this.telemetry) {
+        this.telemetry.handleUndesiredEvent({data: {event: "INDEXEDDB_OPEN_FAILED"}});
+      }
+      await IndexedDB.deleteDatabase(this.dbName);
+      return this._openDatabase();
+    }
+  }
+
   async _requestWrapper(request) {
     let result = null;
     try {
       result = await request();
     } catch (e) {
       if (this.telemetry) {
         this.telemetry.handleUndesiredEvent({data: {event: "TRANSACTION_FAILED"}});
       }
--- a/browser/extensions/activity-stream/lib/DownloadsManager.jsm
+++ b/browser/extensions/activity-stream/lib/DownloadsManager.jsm
@@ -61,17 +61,18 @@ this.DownloadsManager = class DownloadsM
       description = `${element.sizeStrings.stateLabel}`;
     }
     return {
       hostname: new URL(downloadedItem.source.url).hostname,
       url: downloadedItem.source.url,
       path: downloadedItem.target.path,
       title: element.displayName,
       description,
-      referrer: downloadedItem.source.referrer
+      referrer: downloadedItem.source.referrer,
+      date_added: downloadedItem.endTime
     };
   }
 
   init(store) {
     this._store = store;
     this._browser = Services.appShell.hiddenDOMWindow;
     this._downloadData = DownloadsCommon.getData(this._browser.ownerGlobal, true, false, true);
     this._downloadData.addView(this);
--- a/browser/extensions/activity-stream/lib/TelemetryFeed.jsm
+++ b/browser/extensions/activity-stream/lib/TelemetryFeed.jsm
@@ -19,16 +19,17 @@ ChromeUtils.defineModuleGetter(this, "UT
   "resource://activity-stream/lib/UTEventReporting.jsm");
 
 XPCOMUtils.defineLazyServiceGetter(this, "gUUIDGenerator",
   "@mozilla.org/uuid-generator;1",
   "nsIUUIDGenerator");
 
 const ACTIVITY_STREAM_ID = "activity-stream";
 const ACTIVITY_STREAM_ENDPOINT_PREF = "browser.newtabpage.activity-stream.telemetry.ping.endpoint";
+const ACTIVITY_STREAM_ROUTER_ID = "activity-stream-router";
 
 // This is a mapping table between the user preferences and its encoding code
 const USER_PREFS_ENCODING = {
   "showSearch": 1 << 0,
   "feeds.topsites": 1 << 1,
   "feeds.section.topstories": 1 << 2,
   "feeds.section.highlights": 1 << 3,
   "feeds.snippets": 1 << 4,
@@ -109,30 +110,42 @@ this.TelemetryFeed = class TelemetryFeed
     this.telemetryEnabled = prefVal;
   }
 
   _onEventsTelemetryPrefChange(prefVal) {
     this.eventTelemetryEnabled = prefVal;
   }
 
   /**
-   * Lazily initialize PingCentre to send pings
+   * Lazily initialize PingCentre for Activity Stream to send pings
    */
   get pingCentre() {
     Object.defineProperty(this, "pingCentre",
       {
         value: new PingCentre({
           topic: ACTIVITY_STREAM_ID,
           overrideEndpointPref: ACTIVITY_STREAM_ENDPOINT_PREF
         })
       });
     return this.pingCentre;
   }
 
   /**
+   * Lazily initialize a PingCentre client for Activity Stream Router to send pings.
+   *
+   * Unlike the PingCentre client for Activity Stream, Activity Stream Router
+   * uses a separate client with the standard PingCentre endpoint.
+   */
+  get pingCentreForASRouter() {
+    Object.defineProperty(this, "pingCentreForASRouter",
+      {value: new PingCentre({topic: ACTIVITY_STREAM_ROUTER_ID})});
+    return this.pingCentreForASRouter;
+  }
+
+  /**
    * Lazily initialize UTEventReporting to send pings
    */
   get utEvents() {
     Object.defineProperty(this, "utEvents", {value: new UTEventReporting()});
     return this.utEvents;
   }
 
   /**
@@ -347,41 +360,60 @@ this.TelemetryFeed = class TelemetryFeed
         page: session.page,
         session_duration: session.session_duration,
         action: "activity_stream_session",
         perf: session.perf
       }
     );
   }
 
+  createASRouterEvent(action) {
+    const appInfo = this.store.getState().App;
+    const ping = {
+      addon_version: appInfo.version,
+      locale: Services.locale.getAppLocaleAsLangTag()
+    };
+    return Object.assign(ping, action.data);
+  }
+
   sendEvent(event_object) {
     if (this.telemetryEnabled) {
       this.pingCentre.sendPing(event_object,
       {filter: ACTIVITY_STREAM_ID});
     }
   }
 
   sendUTEvent(event_object, eventFunction) {
     if (this.telemetryEnabled && this.eventTelemetryEnabled) {
       eventFunction(event_object);
     }
   }
 
+  sendASRouterEvent(event_object) {
+    if (this.telemetryEnabled) {
+      this.pingCentreForASRouter.sendPing(event_object,
+      {filter: ACTIVITY_STREAM_ID});
+    }
+  }
+
   handleImpressionStats(action) {
     this.sendEvent(this.createImpressionStats(action));
   }
 
   handleUserEvent(action) {
     let userEvent = this.createUserEvent(action);
     this.sendEvent(userEvent);
     this.sendUTEvent(userEvent, this.utEvents.sendUserEvent);
   }
 
   handleASRouterUserEvent(action) {
-    console.log(action) // eslint-disable-line
+    let event = this.createASRouterEvent(action);
+    // TODO call this.sendASRouterEvent(event) once the ping gets finalized
+    // and data reviewed
+    console.log(event); // eslint-disable-line
   }
 
   handleUndesiredEvent(action) {
     this.sendEvent(this.createUndesiredEvent(action));
   }
 
   onAction(action) {
     switch (action.type) {
@@ -463,16 +495,19 @@ this.TelemetryFeed = class TelemetryFeed
 
     // Only uninit if the getter has initialized it
     if (Object.prototype.hasOwnProperty.call(this, "pingCentre")) {
       this.pingCentre.uninit();
     }
     if (Object.prototype.hasOwnProperty.call(this, "utEvents")) {
       this.utEvents.uninit();
     }
+    if (Object.prototype.hasOwnProperty.call(this, "pingCentreForASRouter")) {
+      this.pingCentreForASRouter.uninit();
+    }
 
     try {
       this._prefs.ignore(TELEMETRY_PREF, this._onTelemetryPrefChange);
       this._prefs.ignore(EVENTS_TELEMETRY_PREF, this._onEventsTelemetryPrefChange);
     } catch (e) {
       Cu.reportError(e);
     }
     // TODO: Send any unfinished sessions
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Dirica matidi manyen</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ach file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Dirica matidi manyen",
   "header_top_sites": "Kakube maloyo",
   "header_highlights": "Wiye madito",
   "header_recommended_by": "Lami tam obedo {provider}",
   "context_menu_button_sr": "Yab jami ayera pi {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Kilimo",
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nueva Pestanya</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated an file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nueva Pestanya",
   "header_top_sites": "Mas freqüents",
   "header_highlights": "Destacaus",
   "header_recommended_by": "Recomendau per {provider}",
   "context_menu_button_sr": "Ubrir menú contextual pa {title}",
   "section_context_menu_button_sr": "Ubrir lo menú contextual d'a sección",
   "type_label_visited": "Vesitau",
--- a/browser/extensions/activity-stream/prerendered/locales/an/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/an/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>لسان جديد</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ar file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "لسان جديد",
   "header_top_sites": "المواقع الأكثر زيارة",
   "header_highlights": "أهم الأحداث",
   "header_recommended_by": "ينصح به {provider}",
   "context_menu_button_sr": "افتح قائمة {title} السياقية",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "مُزارة",
--- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Llingüeta nueva</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ast file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Llingüeta nueva",
   "header_top_sites": "Más visitaos",
   "header_highlights": "Destacaos",
   "header_recommended_by": "Recomendáu por {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Visitóse",
--- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Yeni Vərəq</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated az file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Yeni Vərəq",
   "header_top_sites": "Qabaqcıl Saytlar",
   "header_highlights": "Seçilmişlər",
   "header_recommended_by": "{provider} məsləhət görür",
   "context_menu_button_sr": "{title} üçün kontekst menyusunu aç",
   "section_context_menu_button_sr": "Kontekst menyusu bölməsini aç",
   "type_label_visited": "Ziyarət edilib",
   "type_label_bookmarked": "Əlfəcinlənib",
   "type_label_recommended": "Populyar",
   "type_label_pocket": "Pocket-ə saxlandı",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Endirildi",
   "menu_action_bookmark": "Əlfəcinlə",
   "menu_action_remove_bookmark": "Əlfəcini sil",
   "menu_action_open_new_window": "Yeni Pəncərədə Aç",
   "menu_action_open_private_window": "Yeni Məxfi Pəncərədə Aç",
   "menu_action_dismiss": "Rədd et",
   "menu_action_delete": "Tarixçədən Sil",
   "menu_action_pin": "Bərkid",
   "menu_action_unpin": "Çıxart",
   "confirm_history_delete_p1": "Bu səhifənin bütün parçalarını tarixçənizdən silmək istədiyinizə əminsiniz?",
   "confirm_history_delete_notice_p2": "Bu əməliyyat geri alına bilməz.",
   "menu_action_save_to_pocket": "Pocket-ə Saxla",
   "menu_action_delete_pocket": "Pocket-dən sil",
   "menu_action_archive_pocket": "Pocket-də arxivləşdir",
-  "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": "Finder-də Göstər",
+  "menu_action_show_file_windows": "Yerləşdiyi Qovluğu Aç",
+  "menu_action_show_file_linux": "Yerləşdiyi Qovluğu Aç",
+  "menu_action_show_file_default": "Faylı Göster",
+  "menu_action_open_file": "Faylı Aç",
+  "menu_action_copy_download_link": "Endirmə Ünvanını Köçür",
+  "menu_action_go_to_download_page": "Endirmə səhifəsinə get",
+  "menu_action_remove_download": "Tarixçədən Sil",
   "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": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,11 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "prefs_topstories_show_sponsored_label": "{provider} Sponsorlu Hekayələr"
+  "section_menu_action_privacy_notice": "Məxfilik Bildirişi"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/az/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/az/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Новая картка</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated be file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Новая картка",
   "header_top_sites": "Папулярныя сайты",
   "header_highlights": "Выбранае",
   "header_recommended_by": "Рэкамендавана {provider}",
   "context_menu_button_sr": "Адкрыць кантэкстнае меню для {title}",
   "section_context_menu_button_sr": "Адкрыць кантэкстнае меню раздзела",
   "type_label_visited": "Наведанае",
@@ -45,17 +45,17 @@ window.gActivityStreamStrings = {
   "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_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": "Доступ да сайтаў, якія вы часцей наведваеце.",
--- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Нов раздел</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated bg file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Нов раздел",
   "header_top_sites": "Често посещавани",
   "header_highlights": "Акценти",
   "header_recommended_by": "Препоръчано от {provider}",
   "context_menu_button_sr": "Отваряне на контекстуалното меню на {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Посетена",
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>নতুন ট্যাব</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated bn-BD file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "নতুন ট্যাব",
   "header_top_sites": "শীর্ঘ সাইট",
   "header_highlights": "হাইলাইটস",
   "header_recommended_by": "{provider} দ্বারা সুপারিশকৃত",
   "context_menu_button_sr": "{title} থেকে কনটেক্সট মেনু খুলুন",
   "section_context_menu_button_sr": "কনটেক্স মেন্যু তে সেকশনটি খুলুন",
   "type_label_visited": "পরিদর্শিত",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>নতুন ট্যাব</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated bn-IN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "নতুন ট্যাব",
   "header_top_sites": "শীর্ষ সাইটগুলি",
   "header_highlights": "হাইলাইটস",
   "header_recommended_by": "{provider} দ্বারা সুপারিশকৃত",
   "context_menu_button_sr": "{title} থেকে কনটেক্সট মেনু খুলুন",
   "section_context_menu_button_sr": "কনটেক্স মেন্যু তে সেকশনটি খুলুন",
   "type_label_visited": "দেখা হয়েছে",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Ivinell nevez</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated br file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Ivinell nevez",
   "header_top_sites": "Lec'hiennoù pennañ",
   "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",
--- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Novi tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated bs file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Novi tab",
   "header_top_sites": "Najposjećenije stranice",
   "header_highlights": "Istaknuto",
   "header_recommended_by": "Preporučeno od {provider}",
   "context_menu_button_sr": "Otvorite kontekstni meni za {title}",
   "section_context_menu_button_sr": "Otvorite kontekstni meni sekcije",
   "type_label_visited": "Posjećeno",
--- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Pestanya nova</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ca file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Pestanya nova",
   "header_top_sites": "Llocs principals",
   "header_highlights": "Destacats",
   "header_recommended_by": "Recomanat per {provider}",
   "context_menu_button_sr": "Obre el menú contextual de {title}",
   "section_context_menu_button_sr": "Obre el menú contextual de la secció",
   "type_label_visited": "Visitat",
--- a/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ca/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>K'ak'a' ruwi'</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated cak file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "K'ak'a' ruwi'",
   "header_top_sites": "Utziläj taq Ruxaq K'amaya'l",
   "header_highlights": "Taq k'ewachinïk",
   "header_recommended_by": "Chilab'en ruma {provider}",
   "context_menu_button_sr": "Tijar ri ruk'utsamaj k'ojlem richin {title}",
   "section_context_menu_button_sr": "Tijaq ruperaj rokem k'utsamaj",
   "type_label_visited": "Tz'eton",
--- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Yañı İlmek</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated crh file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Yañı İlmek",
   "header_top_sites": "Zirvedeki Saytlar",
   "header_highlights": "Yüksek-ışıtmalar",
   "header_recommended_by": "{provider} tevsiyeli",
   "context_menu_button_sr": "{title} içün bağlam menüsini aç",
   "section_context_menu_button_sr": "Bölüm bağlam menüsini aç",
   "type_label_visited": "Ziyaret etilgen",
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nový panel</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated cs file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nový panel",
   "header_top_sites": "Top stránky",
   "header_highlights": "Vybrané",
   "header_recommended_by": "Doporučení ze služby {provider}",
   "context_menu_button_sr": "Otevřít kontextovou nabídku pro {title}",
   "section_context_menu_button_sr": "Otevřít kontextovou nabídku sekce",
   "type_label_visited": "Navštívené",
@@ -96,10 +96,10 @@ window.gActivityStreamStrings = {
   "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 soukromí"
+  "section_menu_action_privacy_notice": "Zásady ochrany osobních údajů"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cs/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tab Newydd</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated cy file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tab Newydd",
   "header_top_sites": "Hoff Wefannau",
   "header_highlights": "Goreuon",
   "header_recommended_by": "Argymhellwyd gan {provider}",
   "context_menu_button_sr": "Agor dewislen cynnwys {title}",
   "section_context_menu_button_sr": "Agor dewislen cyd-destun yr adran",
   "type_label_visited": "Ymwelwyd",
--- a/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/cy/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nyt faneblad</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated da file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nyt faneblad",
   "header_top_sites": "Mest besøgte websider",
   "header_highlights": "Fremhævede",
   "header_recommended_by": "Anbefalet af {provider}",
   "context_menu_button_sr": "Åbn genvejsmenuen for {title}",
   "section_context_menu_button_sr": "Åbn genvejsmenuen afsnit",
   "type_label_visited": "Besøgt",
   "type_label_bookmarked": "Bogmærket",
   "type_label_recommended": "Populært",
-  "type_label_pocket": "Gem til Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_pocket": "Gemt til Pocket",
+  "type_label_downloaded": "Hentet",
   "menu_action_bookmark": "Bogmærk",
   "menu_action_remove_bookmark": "Fjern bogmærke",
   "menu_action_open_new_window": "Åbn i et nyt vindue",
   "menu_action_open_private_window": "Åbn i et nyt privat vindue",
   "menu_action_dismiss": "Afvis",
   "menu_action_delete": "Slet fra historik",
   "menu_action_pin": "Fastgør",
   "menu_action_unpin": "Frigør",
   "confirm_history_delete_p1": "Er du sikker på, at du vil slette alle forekomster af denne side fra din historik?",
   "confirm_history_delete_notice_p2": "Denne handling kan ikke fortrydes.",
   "menu_action_save_to_pocket": "Gem til Pocket",
   "menu_action_delete_pocket": "Slet fra Pocket",
   "menu_action_archive_pocket": "Arkiver i 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": "Vis i Finder",
+  "menu_action_show_file_windows": "Åbn hentningsmappe",
+  "menu_action_show_file_linux": "Åbn hentningsmappe",
+  "menu_action_show_file_default": "Vis fil",
+  "menu_action_open_file": "Åbn fil",
+  "menu_action_copy_download_link": "Kopier linkadresse",
+  "menu_action_go_to_download_page": "Gå til siden, filen blev hentet fra",
+  "menu_action_remove_download": "Fjern fra historik",
   "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": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,11 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "prefs_topstories_show_sponsored_label": "Sponsorerede historier fra {provider}"
+  "section_menu_action_privacy_notice": "Privatlivspolitik"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/da/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/da/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Neuer Tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated de file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Neuer Tab",
   "header_top_sites": "Wichtige Seiten",
   "header_highlights": "Überblick",
   "header_recommended_by": "Empfohlen von {provider}",
   "context_menu_button_sr": "Kontextmenü für {title} öffnen",
   "section_context_menu_button_sr": "Kontextmenü des Abschnitts öffnen",
   "type_label_visited": "Besucht",
--- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nowy rejtark</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated dsb file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nowy rejtark",
   "header_top_sites": "Nejcesćej woglědane sedła",
   "header_highlights": "Wjerški",
   "header_recommended_by": "Wót {provider} dopórucony",
   "context_menu_button_sr": "Kontekstowy meni za {title} wócyniś",
   "section_context_menu_button_sr": "Kontekstowy meni wótrězka wócyniś",
   "type_label_visited": "Woglědany",
--- a/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Νέα καρτέλα</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated el file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Νέα καρτέλα",
   "header_top_sites": "Κορυφαίες ιστοσελίδες",
   "header_highlights": "Κορυφαίες στιγμές",
   "header_recommended_by": "Προτεινόμενο από τον πάροχο {provider}",
   "context_menu_button_sr": "Άνοιγμα μενού επιλογών για το {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Από ιστορικό",
--- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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>
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-prerendered.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html lang="en-CA" dir="ltr">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
+    <title>New Tab</title>
+    <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
+    <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;
+}
+
+// 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",
+  "resource://activity-stream/vendor/react-intl.js",
+  "resource://activity-stream/vendor/redux.js",
+  "resource://activity-stream/vendor/react-redux.js",
+  "resource://activity-stream/prerendered/en-CA/activity-stream-strings.js",
+  "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>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream-strings.js
@@ -0,0 +1,107 @@
+// Note - this is a generated en-CA file.
+window.gActivityStreamStrings = {
+  "newtab_page_title": "New Tab",
+  "header_top_sites": "Top Sites",
+  "header_highlights": "Highlights",
+  "header_recommended_by": "Recommended by {provider}",
+  "context_menu_button_sr": "Open context menu for {title}",
+  "section_context_menu_button_sr": "Open the section context menu",
+  "type_label_visited": "Visited",
+  "type_label_bookmarked": "Bookmarked",
+  "type_label_recommended": "Trending",
+  "type_label_pocket": "Saved to Pocket",
+  "type_label_downloaded": "Downloaded",
+  "menu_action_bookmark": "Bookmark",
+  "menu_action_remove_bookmark": "Remove Bookmark",
+  "menu_action_open_new_window": "Open in a New Window",
+  "menu_action_open_private_window": "Open in a New Private Window",
+  "menu_action_dismiss": "Dismiss",
+  "menu_action_delete": "Delete from History",
+  "menu_action_pin": "Pin",
+  "menu_action_unpin": "Unpin",
+  "confirm_history_delete_p1": "Are you sure you want to delete every instance of this page from your history?",
+  "confirm_history_delete_notice_p2": "This action cannot be undone.",
+  "menu_action_save_to_pocket": "Save to Pocket",
+  "menu_action_delete_pocket": "Delete from Pocket",
+  "menu_action_archive_pocket": "Archive in 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",
+  "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",
+  "topsites_form_url_placeholder": "Type or paste a URL",
+  "topsites_form_use_image_link": "Use a custom image…",
+  "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_topstories_description": "High-quality content you might otherwise miss",
+  "prefs_topstories_show_sponsored_label": "{provider} Sponsored Stories"
+};
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/prerendered/locales/en-CA/activity-stream.html
@@ -0,0 +1,44 @@
+<!doctype html>
+<html lang="en-CA" dir="ltr">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
+    <title>New Tab</title>
+    <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
+    <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;
+}
+
+// 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",
+  "resource://activity-stream/vendor/redux.js",
+  "resource://activity-stream/vendor/react-redux.js",
+  "resource://activity-stream/prerendered/en-CA/activity-stream-strings.js",
+  "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>
+  </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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>New Tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated en-GB file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "New Tab",
   "header_top_sites": "Top Sites",
   "header_highlights": "Highlights",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Visited",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>New Tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated en-US file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "New Tab",
   "header_top_sites": "Top Sites",
   "header_highlights": "Highlights",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Visited",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nova langeto</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated eo file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nova langeto",
   "header_top_sites": "Plej vizititaj",
   "header_highlights": "Elstaraĵoj",
   "header_recommended_by": "Rekomendita de {provider}",
   "context_menu_button_sr": "Malfermi kuntekstan menu por {title}",
   "section_context_menu_button_sr": "Malfermi sekcion de kunteksta menuo",
   "type_label_visited": "Vizitita",
--- a/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eo/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nueva pestaña</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated es-AR file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nueva pestaña",
   "header_top_sites": "Más visitados",
   "header_highlights": "Destacados",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir el menú para {title}",
   "section_context_menu_button_sr": "Abrir el menú contextual de la sección",
   "type_label_visited": "Visitados",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nueva pestaña</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated es-CL file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nueva pestaña",
   "header_top_sites": "Sitios frecuentes",
   "header_highlights": "Destacados",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir menú contextual para {title}",
   "section_context_menu_button_sr": "Abrir sección del menú contextual",
   "type_label_visited": "Visitado",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nueva pestaña</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated es-ES file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nueva pestaña",
   "header_top_sites": "Sitios favoritos",
   "header_highlights": "Destacados",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir menú de contexto para {title}",
   "section_context_menu_button_sr": "Abrir la sección menú contextual",
   "type_label_visited": "Visitados",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nueva pestaña</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated es-MX file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nueva pestaña",
   "header_top_sites": "Sitios favoritos",
   "header_highlights": "Destacados",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir menú contextual para {title}",
   "section_context_menu_button_sr": "Abrir la sección menú contextual",
   "type_label_visited": "Visitados",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Uus kaart</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated et file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Uus kaart",
   "header_top_sites": "Top saidid",
   "header_highlights": "Esiletõstetud",
   "header_recommended_by": "{provider} soovitab",
   "context_menu_button_sr": "Ava {title} kontekstimenüü",
   "section_context_menu_button_sr": "Ava osa kontekstimenüü",
   "type_label_visited": "Külastatud",
   "type_label_bookmarked": "Järjehoidjatest",
   "type_label_recommended": "Menukad",
   "type_label_pocket": "Salvestatud Pocketisse",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Allalaaditud",
   "menu_action_bookmark": "Lisa järjehoidjatesse",
   "menu_action_remove_bookmark": "Eemalda järjehoidja",
   "menu_action_open_new_window": "Ava uues aknas",
   "menu_action_open_private_window": "Ava uues privaatses aknas",
   "menu_action_dismiss": "Peida",
   "menu_action_delete": "Kustuta ajaloost",
   "menu_action_pin": "Kinnita",
   "menu_action_unpin": "Eemalda kohakinnitus",
   "confirm_history_delete_p1": "Kas oled kindel, et soovid ajaloost kõik selle lehe kohta käivad kirjed kustutada?",
   "confirm_history_delete_notice_p2": "Seda tegevust pole võimalik tagasi võtta.",
   "menu_action_save_to_pocket": "Salvesta Pocketisse",
   "menu_action_delete_pocket": "Kustuta Pocketist",
   "menu_action_archive_pocket": "Arhiveeri Pocketis",
-  "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": "Kuva Finderis",
+  "menu_action_show_file_windows": "Ava faili sisaldav kaust",
+  "menu_action_show_file_linux": "Ava faili sisaldav kaust",
+  "menu_action_show_file_default": "Kuva fail",
+  "menu_action_open_file": "Ava fail",
+  "menu_action_copy_download_link": "Kopeeri allalaadimislink",
+  "menu_action_go_to_download_page": "Mine allalaadimise lehele",
+  "menu_action_remove_download": "Eemalda ajaloost",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,12 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "prefs_topstories_description": "Kõrge kvaliteediga sisu, mida sa ei pruugi ise märgata",
-  "prefs_topstories_show_sponsored_label": "Sponsitud lood ({provider})"
+  "section_menu_action_privacy_notice": "Privaatsuspoliitika"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Fitxa berria</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated eu file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Fitxa berria",
   "header_top_sites": "Gune erabilienak",
   "header_highlights": "Nabarmendutakoak",
   "header_recommended_by": "{provider} hornitzaileak gomendatuta",
   "context_menu_button_sr": "Ikusi {title} gunerako testuinguru-menua",
   "section_context_menu_button_sr": "Ireki atalaren testuinguru-menua",
   "type_label_visited": "Bisitatuta",
   "type_label_bookmarked": "Laster-marka eginda",
   "type_label_recommended": "Joerak",
   "type_label_pocket": "Pocket-en gordeta",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Deskargatuta",
   "menu_action_bookmark": "Egin laster-marka",
   "menu_action_remove_bookmark": "Kendu laster-marka",
   "menu_action_open_new_window": "Ireki leiho berri batean",
   "menu_action_open_private_window": "Ireki leiho pribatu berrian",
   "menu_action_dismiss": "Baztertu",
   "menu_action_delete": "Ezabatu historiatik",
   "menu_action_pin": "Ainguratu",
   "menu_action_unpin": "Desainguratu",
   "confirm_history_delete_p1": "Ziur zaude orri honen agerpen guztiak ezabatu nahi dituzula historiatik?",
   "confirm_history_delete_notice_p2": "Ekintza hau ezin da desegin.",
   "menu_action_save_to_pocket": "Gorde Pocket-en",
   "menu_action_delete_pocket": "Ezabatu Pocket-etik",
   "menu_action_archive_pocket": "Artxibatu Pocket-en",
-  "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": "Erakutsi Finder-en",
+  "menu_action_show_file_windows": "Ireki dagoen karpeta",
+  "menu_action_show_file_linux": "Ireki dagoen karpeta",
+  "menu_action_show_file_default": "Erakutsi fitxategia",
+  "menu_action_open_file": "Ireki fitxategia",
+  "menu_action_copy_download_link": "Kopiatu deskargaren lotura",
+  "menu_action_go_to_download_page": "Joan deskargaren orrira",
+  "menu_action_remove_download": "Kendu historiatik",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,12 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "prefs_topstories_description": "Bestela galduko zenukeen kalitatezko edukia",
-  "prefs_topstories_show_sponsored_label": "{provider} babeslearen istorioak"
+  "section_menu_action_privacy_notice": "Pribatutasun-oharra"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/eu/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>زبانه جدید</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated fa file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "زبانه جدید",
   "header_top_sites": "سایت‌های برتر",
   "header_highlights": "برجسته‌ها",
   "header_recommended_by": "پیشنهاد شده توسط {provider}",
   "context_menu_button_sr": "بازکردن فهرست زمینه برای {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "مشاهده شده",
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tabbere hesere</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ff file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tabbere hesere",
   "header_top_sites": "Lowe dowrowe",
   "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",
--- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Uusi välilehti</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated fi file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Uusi välilehti",
   "header_top_sites": "Ykkössivustot",
   "header_highlights": "Nostot",
   "header_recommended_by": "Suositukset lähteestä {provider}",
   "context_menu_button_sr": "Avaa pikavalikko sivustolle {title}",
   "section_context_menu_button_sr": "Avaa osion ponnahdusvalikko",
   "type_label_visited": "Vierailtu",
--- a/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fi/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nouvel onglet</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,18 +1,18 @@
-// Note - this is a generated file.
+// Note - this is a generated fr file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nouvel onglet",
   "header_top_sites": "Sites les plus visités",
   "header_highlights": "Éléments-clés",
   "header_recommended_by": "Recommandations par {provider}",
   "context_menu_button_sr": "Ouvrir le menu contextuel pour {title}",
   "section_context_menu_button_sr": "Ouvrir le menu contextuel de cette section",
   "type_label_visited": "Visité",
-  "type_label_bookmarked": "Ajoutée aux marque-pages",
+  "type_label_bookmarked": "Ajouté aux marque-pages",
   "type_label_recommended": "Tendance",
   "type_label_pocket": "Enregistré dans Pocket",
   "type_label_downloaded": "Téléchargé",
   "menu_action_bookmark": "Marquer cette page",
   "menu_action_remove_bookmark": "Supprimer le marque-page",
   "menu_action_open_new_window": "Ouvrir dans une nouvelle fenêtre",
   "menu_action_open_private_window": "Ouvrir dans une nouvelle fenêtre privée",
   "menu_action_dismiss": "Retirer",
--- a/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fr/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nij ljepblêd</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated fy-NL file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nij ljepblêd",
   "header_top_sites": "Topwebsites",
   "header_highlights": "Hichtepunten",
   "header_recommended_by": "Oanrekommandearre troch {provider}",
   "context_menu_button_sr": "Kontekstmenu foar {title} iepenje",
   "section_context_menu_button_sr": "Kontekstmenu fan seksje iepenje",
   "type_label_visited": "Besocht",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Cluaisín Nua</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ga-IE file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Cluaisín Nua",
   "header_top_sites": "Barrshuímh",
   "header_highlights": "Highlights",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Feicthe",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Taba ùr</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated gd file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Taba ùr",
   "header_top_sites": "Brod nan làrach",
   "header_highlights": "Sàr-roghainn",
   "header_recommended_by": "’Ga mholadh le {provider}",
   "context_menu_button_sr": "Fosgail an clàr-taice co-theacsail aig {title}",
   "section_context_menu_button_sr": "Fosgail clàr-taice co-theacsail na h-earrainn",
   "type_label_visited": "Na thadhail thu air",
   "type_label_bookmarked": "’Nan comharran-lìn",
   "type_label_recommended": "A’ treandadh",
   "type_label_pocket": "Air a shàbhaladh ann am Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Air a luchdadh a-nuas",
   "menu_action_bookmark": "Comharra-lìn",
   "menu_action_remove_bookmark": "Thoir an comharra-lìn air falbh",
   "menu_action_open_new_window": "Fosgail ann an uinneag ùr",
   "menu_action_open_private_window": "Fosgail ann an uinneag phrìobhaideach ùr",
   "menu_action_dismiss": "Leig seachad",
   "menu_action_delete": "Sguab às an eachdraidh",
   "menu_action_pin": "Prìnich",
   "menu_action_unpin": "Dì-phrìnich",
   "confirm_history_delete_p1": "A bheil thu cinnteach gu bheil thu airson gach ionstans na duilleige seo a sguabadh às an eachdraidh agad?",
   "confirm_history_delete_notice_p2": "Cha ghabh seo a neo-dhèanamh.",
   "menu_action_save_to_pocket": "Sàbhail sa phòcaid",
   "menu_action_delete_pocket": "Air a sguabadh à Pocket",
   "menu_action_archive_pocket": "Tasglannaich ann am 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": "Seall san lorgair",
+  "menu_action_show_file_windows": "Fosgail am pasgan far a bheil e",
+  "menu_action_show_file_linux": "Fosgail am pasgan far a bheil e",
+  "menu_action_show_file_default": "Seall am faidhle",
+  "menu_action_open_file": "Fosgail faidhle",
+  "menu_action_copy_download_link": "Dèan lethbhreac dhen cheangal luchdaidh",
+  "menu_action_go_to_download_page": "Tadhail aor duilleag nan luchdaidhean",
+  "menu_action_remove_download": "Thoir air falbh on eachdraidh",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,49 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "default_label_loading": "’Ga luchdadh…",
-  "header_stories": "Brod nan sgeul",
-  "header_visit_again": "Tadhail a-rithist",
-  "header_bookmarks": "Comharran-lìn o chionn goirid",
-  "header_bookmarks_placeholder": "Chan eil comharra-lìn sam bith agad fhathast.",
-  "header_stories_from": "o",
-  "type_label_synced": "Sioncronaichte o uidheam eile",
-  "type_label_open": "Fosgailte",
-  "type_label_topic": "Cuspair",
-  "type_label_now": "An-dràsta",
-  "menu_action_copy_address": "Dèan lethbhreac dhen t-seòladh",
-  "menu_action_email_link": "Cuir an ceangal air a’ phost-d…",
-  "search_for_something_with": "Lorg {search_term} le:",
-  "search_settings": "Atharraich roghainnean an luirg",
-  "section_info_option": "Fiosrachadh",
-  "section_info_send_feedback": "Cuir thugainn do bheachdan",
-  "section_info_privacy_notice": "Sanas prìobhaideachd",
-  "welcome_title": "Fàilte gun taba ùr",
-  "welcome_body": "Seallaidh Firefox na comharran-lìn, artaigealan, videothan is duilleagan as iomchaidhe dhut, an fheadhainn air an do thadhail thu o chionn goirid, ach an ruig thu iad gu luath.",
-  "welcome_label": "Ag aithneachadh nan highlights agad",
-  "time_label_less_than_minute": "<1m",
-  "time_label_minute": "{number}m",
-  "time_label_hour": "{number}u",
-  "time_label_day": "{number}l",
-  "prefs_topstories_description": "Brod susbaint a dh’fhairtlicheadh ort",
-  "prefs_topstories_show_sponsored_label": "Sgeulachdan sponsairichte {provider}",
-  "settings_pane_bookmarks_header": "Comharran-lìn o chionn goirid",
-  "settings_pane_bookmarks_body": "Na comharran-lìn ùra agad san aon àite ghoireasach.",
-  "settings_pane_visit_again_header": "Tadhail a-rithist",
-  "settings_pane_visit_again_body": "Seallaidh Firefox cuid dhen eachdraidh bhrabhsaidh agad dhut a bu toil leat cuimhneachadh no tadhal air a-rithist ma dh’fhaoidte.",
-  "edit_topsites_button_label": "Gnàthaich earrann brod nan làrach agad",
-  "edit_topsites_showmore_button": "Seall barrachd",
-  "edit_topsites_showless_button": "Seall nas lugha",
-  "edit_topsites_done_button": "Deiseil",
-  "edit_topsites_pin_button": "Prìnich an làrach seo",
-  "edit_topsites_unpin_button": "Dì-phrìnich an làrach seo",
-  "edit_topsites_dismiss_button": "Leig seachad an làrach seo",
-  "edit_topsites_add_button": "Cuir ris",
-  "pocket_feedback_header": "Brod an eadar-lìn, air a dheasachadh le barrachd air 25 millean duine."
+  "section_menu_action_privacy_notice": "Sanas prìobhaideachd"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gd/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nova lapela</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,75 +1,75 @@
-// Note - this is a generated file.
+// Note - this is a generated gl file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nova lapela",
   "header_top_sites": "Sitios favoritos",
   "header_highlights": "Destacados",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir o menú contextual para {title}",
   "section_context_menu_button_sr": "Abrir o menú contextual da sección",
   "type_label_visited": "Visitados",
   "type_label_bookmarked": "Nos marcadores",
   "type_label_recommended": "Tendencias",
   "type_label_pocket": "Gardado no Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Descargado",
   "menu_action_bookmark": "Engadir aos marcadores",
   "menu_action_remove_bookmark": "Retirar marcador",
   "menu_action_open_new_window": "Abrir nunha nova xanela",
   "menu_action_open_private_window": "Abrir nunha nova xanela privada",
   "menu_action_dismiss": "Rexeitar",
   "menu_action_delete": "Eliminar do historial",
   "menu_action_pin": "Fixar",
   "menu_action_unpin": "Quitar",
   "confirm_history_delete_p1": "Confirma que quere eliminar do historial todas as instancias desta páxina?",
   "confirm_history_delete_notice_p2": "Non é posíbel desfacer esta acción.",
   "menu_action_save_to_pocket": "Gardar en Pocket",
   "menu_action_delete_pocket": "Eliminar do Pocket",
   "menu_action_archive_pocket": "Arquivar no Pocket",
   "menu_action_show_file_mac_os": "Amosar no Finder",
-  "menu_action_show_file_windows": "Open Containing Folder",
-  "menu_action_show_file_linux": "Open Containing Folder",
+  "menu_action_show_file_windows": "Abrir o cartafol que o contén",
+  "menu_action_show_file_linux": "Abrir o cartafol que o contén",
   "menu_action_show_file_default": "Amosar o ficheiro",
   "menu_action_open_file": "Abrir o ficheiro",
-  "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_copy_download_link": "Copiar ligazón de descarga",
+  "menu_action_go_to_download_page": "Ir á páxina de descargas",
+  "menu_action_remove_download": "Retirar do historial",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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": "Snippets",
+  "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",
@@ -82,18 +82,18 @@ window.gActivityStreamStrings = {
   "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": "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.",
+  "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",
--- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tendayke Pyahu</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated gn file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tendayke Pyahu",
   "header_top_sites": "Tenda Ojehechavéva",
   "header_highlights": "Mba'eporãitéva",
   "header_recommended_by": "{provider} he'i ndéve reike hag̃ua",
   "context_menu_button_sr": "Embojuruja poravorã {title} peg̃uarã",
   "section_context_menu_button_sr": "Eike poravorã vore jereguávape",
   "type_label_visited": "Jeikepyre",
--- a/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/gn/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>નવી ટૅબ</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated gu-IN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "નવી ટૅબ",
   "header_top_sites": "ટોચની સાઇટ્સ",
   "header_highlights": "હાઇલાઇટ્સ",
   "header_recommended_by": "દ્વારા ભલામણ",
   "context_menu_button_sr": "{title} માટે સંદર્ભ મેનૂ ખોલો",
   "section_context_menu_button_sr": "વિભાગ સંદર્ભ મેનૂ ખોલો",
   "type_label_visited": "જોવામા આવેલ:",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>לשונית חדשה</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated he file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "לשונית חדשה",
   "header_top_sites": "אתרים מובילים",
   "header_highlights": "מומלצים",
   "header_recommended_by": "מומלץ על ידי {provider}",
   "context_menu_button_sr": "פתיחת תפריט ההקשר עבור {title}",
   "section_context_menu_button_sr": "פתיחת תפריט ההקשר של המדור",
   "type_label_visited": "ביקורים קודמים",
--- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>नया टैब</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated hi-IN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "नया टैब",
   "header_top_sites": "सर्वोच्च साइटें",
   "header_highlights": "झलकियाँ",
   "header_recommended_by": "{provider} द्वारा अनुशंसित",
   "context_menu_button_sr": "{title} के लिए कॉन्टेक्स्ट मेनू खोलें",
   "section_context_menu_button_sr": "अनुभाग प्रसंग मेनू खोलें",
   "type_label_visited": "देखी गई",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nova kartica</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated hr file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nova kartica",
   "header_top_sites": "Najbolje stranice",
   "header_highlights": "Istaknuto",
   "header_recommended_by": "Preporučeno od {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Posjećeno",
--- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nowy rajtark</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated hsb file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nowy rajtark",
   "header_top_sites": "Najhusćišo wopytane sydła",
   "header_highlights": "Wjerški",
   "header_recommended_by": "Wot {provider} doporučeny",
   "context_menu_button_sr": "Kontekstowy meni za {title} wočinić",
   "section_context_menu_button_sr": "Kontekstowy meni wotrězka wočinić",
   "type_label_visited": "Wopytany",
--- a/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Új lap</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated hu file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Új lap",
   "header_top_sites": "Népszerű oldalak",
   "header_highlights": "Kiemelések",
   "header_recommended_by": "A(z) {provider} ajánlásával",
   "context_menu_button_sr": "Környezeti menü megnyitása ehhez: {title}",
   "section_context_menu_button_sr": "A szakasz környezeti menüjének megnyitása",
   "type_label_visited": "Látogatott",
--- a/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/hu/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Նոր ներդիր</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated hy-AM file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Նոր ներդիր",
   "header_top_sites": "Լավագույն կայքեր",
   "header_highlights": "Գունանշում",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Այցելած",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nove scheda</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ia file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nove scheda",
   "header_top_sites": "Sitos popular",
   "header_highlights": "In evidentia",
   "header_recommended_by": "Recommendate per {provider}",
   "context_menu_button_sr": "Aperir le menu contextual pro {title}",
   "section_context_menu_button_sr": "Aperir le menu contextual de section",
   "type_label_visited": "Visitate",
--- a/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ia/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tab Baru</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated id file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tab Baru",
   "header_top_sites": "Situs Teratas",
   "header_highlights": "Sorotan",
   "header_recommended_by": "Disarankan oleh {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Dikunjungi",
--- a/browser/extensions/activity-stream/prerendered/locales/id/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/id/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nuova scheda</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated it file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nuova scheda",
   "header_top_sites": "Siti principali",
   "header_highlights": "In evidenza",
   "header_recommended_by": "Consigliati da {provider}",
   "context_menu_button_sr": "Apri menu contestuale per {title}",
   "section_context_menu_button_sr": "Apri il menu contestuale per la sezione",
   "type_label_visited": "Visitato",
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>新しいタブ</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ja file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "新しいタブ",
   "header_top_sites": "トップサイト",
   "header_highlights": "ハイライト",
   "header_recommended_by": "{provider} のおすすめ",
   "context_menu_button_sr": "{title} のコンテキストメニューを開く",
   "section_context_menu_button_sr": "セクションのコンテキストメニューを開く",
   "type_label_visited": "訪問済み",
--- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>ახალი ჩანართი</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,14 +1,14 @@
-// Note - this is a generated file.
+// Note - this is a generated ka file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "ახალი ჩანართი",
   "header_top_sites": "რჩეული საიტები",
   "header_highlights": "მნიშვნელოვანი საიტები",
-  "header_recommended_by": "რეკომენდებულია {provider}-ის მიერ",
+  "header_recommended_by": "{provider}-ის შემოთავაზებული",
   "context_menu_button_sr": "კონტექსტური მენიუს გახსნა {title}",
   "section_context_menu_button_sr": "გვერდის ნაწილების პარამეტრები",
   "type_label_visited": "მონახულებული",
   "type_label_bookmarked": "ჩანიშნული",
   "type_label_recommended": "პოპულარული",
   "type_label_pocket": "შენახულია Pocket-ში",
   "type_label_downloaded": "ჩამოტვირთული",
   "menu_action_bookmark": "ჩანიშვნა",
@@ -45,17 +45,17 @@ window.gActivityStreamStrings = {
   "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_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": "წვდომა ხშირად მონახულებულ საიტებთან.",
--- a/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ka/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Iccer amaynut</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated kab file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Iccer amaynut",
   "header_top_sites": "Ismal ifazen",
   "header_highlights": "Asebrureq",
   "header_recommended_by": "Iwelleh-it-id {provider}",
   "context_menu_button_sr": "Ldi umuɣ asatal i {title}",
   "section_context_menu_button_sr": "Ldi umuɣ n usatal n tgezmi",
   "type_label_visited": "Yettwarza",
--- a/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kab/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Жаңа бет</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated kk file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Жаңа бет",
   "header_top_sites": "Үздік сайттар",
   "header_highlights": "Ерекше жаңалықтар",
   "header_recommended_by": "Ұсынушы {provider}",
   "context_menu_button_sr": "{title} үшін контекст мәзірін ашу",
   "section_context_menu_button_sr": "Санаттың контекст мәзірін ашу",
   "type_label_visited": "Қаралған",
--- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>ផ្ទាំង​ថ្មី</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated km file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "ផ្ទាំង​ថ្មី",
   "header_top_sites": "វិបសាយ​លើ​គេ",
   "header_highlights": "រឿងសំខាន់ៗ",
   "header_recommended_by": "បានណែនាំដោយ {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "បាន​ចូល​មើល",
--- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>ಹೊಸ ಹಾಳೆ</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated kn file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "ಹೊಸ ಹಾಳೆ",
   "header_top_sites": "ಪ್ರಮುಖ ತಾಣಗಳು",
   "header_highlights": "ಮುಖ್ಯಾಂಶಗಳು",
   "header_recommended_by": "{provider} ರಿಂದ ಶಿಫಾರಸುಮಾಡುಲಾಗಿದೆ",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "ಭೇಟಿ ನೀಡಲಾದ‍",
--- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>새 탭</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated ko file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "새 탭",
   "header_top_sites": "상위 사이트",
   "header_highlights": "하이라이트",
   "header_recommended_by": "{provider} 추천",
   "context_menu_button_sr": "{title}에 대한 컨텍스트 메뉴 열기",
   "section_context_menu_button_sr": "섹션 컨텍스트 메뉴 열기",
   "type_label_visited": "방문한 사이트",
   "type_label_bookmarked": "즐겨찾기",
   "type_label_recommended": "트랜드",
   "type_label_pocket": "Pocket에 저장됨",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "다운로드됨",
   "menu_action_bookmark": "즐겨찾기",
   "menu_action_remove_bookmark": "즐겨찾기 삭제",
   "menu_action_open_new_window": "새 창에서 열기",
   "menu_action_open_private_window": "새 사생활 보호 창에서 열기",
   "menu_action_dismiss": "닫기",
   "menu_action_delete": "방문 기록에서 삭제",
   "menu_action_pin": "고정",
   "menu_action_unpin": "고정 해제",
   "confirm_history_delete_p1": "정말 이 페이지의 모든 인스턴스를 기록에서 지우겠습니까?",
   "confirm_history_delete_notice_p2": "이 작업은 되돌릴 수 없습니다.",
   "menu_action_save_to_pocket": "Pocket에 저장",
   "menu_action_delete_pocket": "Pocket에서 삭제",
   "menu_action_archive_pocket": "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": "Finder에서 보기",
+  "menu_action_show_file_windows": "저장 폴더 열기",
+  "menu_action_show_file_linux": "저장 폴더 열기",
+  "menu_action_show_file_default": "파일 보기",
+  "menu_action_open_file": "파일 열기",
+  "menu_action_copy_download_link": "다운로드 주소 복사",
+  "menu_action_go_to_download_page": "다운로드 페이지로 이동",
+  "menu_action_remove_download": "방문 기록에서 삭제",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "prefs_topstories_description2": "여러분에게 맞춰진 웹에서 제공되는 훌륭한 컨텐츠",
+  "prefs_topstories_options_sponsored_label": "후원된 스토리",
   "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_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": "가장 많이 방문한 웹 사이트에 접근하세요.",
@@ -96,12 +96,10 @@ window.gActivityStreamStrings = {
   "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_description": "놓칠 수 있는 높은 품질의 콘텐츠",
-  "prefs_topstories_show_sponsored_label": "{provider} 제공 이야기"
+  "section_menu_action_privacy_notice": "개인 정보 보호 정책"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ko/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Neuvo Feuggio</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated lij file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Neuvo Feuggio",
   "header_top_sites": "I megio sciti",
   "header_highlights": "In evidensa",
   "header_recommended_by": "Consegiou da {provider}",
   "context_menu_button_sr": "Arvi into menû contesto pe {title}",
   "section_context_menu_button_sr": "Arvi into menû contesto pe-a seçion",
   "type_label_visited": "Vixitou",
--- a/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lij/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>ແທັບໃຫມ່</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated lo file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "ແທັບໃຫມ່",
   "header_top_sites": "ເວັບໄຊຕ໌ຍອດນິຍົມ",
   "header_highlights": "ລາຍການເດັ່ນ",
   "header_recommended_by": "ແນະນຳໂດຍ {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "ເຂົ້າໄປເບິ່ງມາແລ້ວ",
--- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nauja kortelė</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated lt file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nauja kortelė",
   "header_top_sites": "Lankomiausios svetainės",
   "header_highlights": "Akcentai",
   "header_recommended_by": "Rekomendavo „{provider}“",
   "context_menu_button_sr": "Atverti kontekstinį {title} meniu",
   "section_context_menu_button_sr": "Atverti skilties kontekstinį meniu",
   "type_label_visited": "Lankytasi",
--- a/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lt/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Jauna cilne</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ltg file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Jauna cilne",
   "header_top_sites": "Popularōkōs lopys",
   "header_highlights": "Izraudzeitī",
   "header_recommended_by": "{provider} īsaceitōs",
   "context_menu_button_sr": "Attaiseit konteksta izvielni {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Apsavārtys lopys",
--- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Jauna cilne</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated lv file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Jauna cilne",
   "header_top_sites": "Populārākās lapas",
   "header_highlights": "Aktualitātes",
   "header_recommended_by": "Iesaka {provider}",
   "context_menu_button_sr": "Atvērt izvēlni {title}",
   "section_context_menu_button_sr": "Atvērt sadaļas izvēlni",
   "type_label_visited": "Apmeklēta",
--- a/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/lv/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Ново јазиче</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated mk file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Ново јазиче",
   "header_top_sites": "Популарни мрежни места",
   "header_highlights": "Интереси",
   "header_recommended_by": "Препорачано од {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Посетени",
--- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>പുതിയ ടാബ്</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ml file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "പുതിയ ടാബ്",
   "header_top_sites": "മികച്ച സൈറ്റുകൾ",
   "header_highlights": "ഹൈലൈറ്റുകൾ",
   "header_recommended_by": "{provider} ശുപാർശ ചെയ്തത്",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "സന്ദർശിച്ചത്‌",
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>नवीन टॅब</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated mr file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "नवीन टॅब",
   "header_top_sites": "खास साईट्स",
   "header_highlights": "ठळक",
   "header_recommended_by": "Recommended by {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "भेट दिलेले",
--- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tab Baru</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ms file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tab Baru",
   "header_top_sites": "Laman Teratas",
   "header_highlights": "Serlahan",
   "header_recommended_by": "Disyorkan oleh {provider}",
   "context_menu_button_sr": "Buka menu konteks untuk {title}",
   "section_context_menu_button_sr": "Buka bahagian menu konteks",
   "type_label_visited": "Dilawati",
--- a/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ms/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>တပ်ဗ်အသစ်ဖွင့်</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated my file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "တပ်ဗ်အသစ်ဖွင့်",
   "header_top_sites": "အများဆုံးသုံးဆိုက်များ",
   "header_highlights": "ဦးစားပေးအကြောင်းအရာများ",
   "header_recommended_by": "{provider} က အကြံပြုထားသည်",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "သွားလည်ခဲ့သော",
--- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Ny fane</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated nb-NO file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Ny fane",
   "header_top_sites": "Mest besøkte nettsider",
   "header_highlights": "Høydepunkter",
   "header_recommended_by": "Anbefalt av {provider}",
   "context_menu_button_sr": "Åpne kontekstmeny for {title}",
   "section_context_menu_button_sr": "Åpne seksjonens kontekstmeny",
   "type_label_visited": "Besøkt",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>नयाँ ट्याब</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ne-NP file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "नयाँ ट्याब",
   "header_top_sites": "शीर्ष साइटहरु",
   "header_highlights": "विशेषताहरू",
   "header_recommended_by": "{provider} द्वारा सिफारिस गरिएको",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "भ्रमण गरिएको",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nieuw tabblad</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated nl file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nieuw tabblad",
   "header_top_sites": "Topwebsites",
   "header_highlights": "Highlights",
   "header_recommended_by": "Aanbevolen door {provider}",
   "context_menu_button_sr": "Contextmenu openen voor {title}",
   "section_context_menu_button_sr": "Contextmenu van sectie openen",
   "type_label_visited": "Bezocht",
--- a/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/nl/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Ny fane</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated nn-NO file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Ny fane",
   "header_top_sites": "Mest besøkte nettsider",
   "header_highlights": "Høgdepunkt",
   "header_recommended_by": "Tilrådd av {provider}",
   "context_menu_button_sr": "Opne kontekstmeny for {title}",
   "section_context_menu_button_sr": "Opne seksjonens kontekstmeny",
   "type_label_visited": "Besøkt",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>ਨਵੀਂ ਟੈਬ</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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>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>ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਚੋਣ ਖ੍ਹੋਲੋ</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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,105 +1,105 @@
-// Note - this is a generated file.
+// Note - this is a generated pa-IN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "ਨਵੀਂ ਟੈਬ",
   "header_top_sites": "ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ",
   "header_highlights": "ਸੁਰਖੀਆਂ",
   "header_recommended_by": "{provider} ਵਲੋਂ ਸਿਫਾਰਸ਼ੀ",
   "context_menu_button_sr": "{title} ਦੇ ਲਈ ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਖ੍ਹੋਲੋ",
   "section_context_menu_button_sr": "ਪ੍ਰਸੰਗ ਮੀਨੂੰ ਚੋਣ ਖ੍ਹੋਲੋ",
   "type_label_visited": "ਖੋਲ੍ਹੀਆਂ",
   "type_label_bookmarked": "ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ",
   "type_label_recommended": "ਪ੍ਰਚਲਿਤ",
   "type_label_pocket": "Pocket ਵਿੱਚ ਸੰਭਾਲਿਆ ਗਿਆ",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "ਡਾਊਨਲੋਡ ਕਰੋ",
   "menu_action_bookmark": "ਬੁੱਕਮਾਰਕ",
   "menu_action_remove_bookmark": "ਬੁੱਕਮਾਰਕ ਨੂੰ ਹਟਾਓ",
   "menu_action_open_new_window": "ਨਵੀਂ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ",
   "menu_action_open_private_window": "ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੋ",
   "menu_action_dismiss": "ਰੱਦ ਕਰੋ",
   "menu_action_delete": "ਅਤੀਤ ਵਿੱਚੋਂ ਹਟਾਓ",
   "menu_action_pin": "ਟੰਗੋ",
   "menu_action_unpin": "ਅਨਪਿੰਨ ਕਰੋ",
   "confirm_history_delete_p1": "ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ 'ਤੇ ਆਪਣੇ ਅਤੀਤ ਵਿੱਚ ਇਸ ਪੰਨੇ ਦੀ ਹਰੇਕ ਉਦਾਹਰਨ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
   "confirm_history_delete_notice_p2": "ਇਕ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।",
   "menu_action_save_to_pocket": "Pocket ਵਿੱਚ ਸੰਭਾਲੋ",
   "menu_action_delete_pocket": "Pocket ਤੋਂ ਮਿਟਾਓ",
   "menu_action_archive_pocket": "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",
-  "search_button": "ਖੋਜੋ",
+  "menu_action_show_file_mac_os": "ਫਾਈਡਰ ਵਿੱਚ ਵੇਖੋ",
+  "menu_action_show_file_windows": "ਸ਼ਾਮਲ ਫੋਲਡਰ ਖੋਲ੍ਹੋ",
+  "menu_action_show_file_linux": "ਸ਼ਾਮਲ ਕੀਤੇ ਫੋਲਡਰ ਖੋਲ੍ਹੋ",
+  "menu_action_show_file_default": "ਫਾਈਲ ਵੇਖਾਓ",
+  "menu_action_open_file": "ਫਾਈਲ ਖੋਲ੍ਹੋ",
+  "menu_action_copy_download_link": "ਡਾਊਨਲੋਡ ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
+  "menu_action_go_to_download_page": "ਡਾਊਨਲੋਡ ਪੰਨੇ 'ਤੇ ਜਾਓ",
+  "menu_action_remove_download": "ਅਤੀਤ ਤੋਂ ਹਟਾਓ",
+  "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": "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",
+  "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": "Choose what you see on this page.",
+  "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_body2": "ਜਿਹੜੀਆਂ ਦਿਲਚਸਪ ਚੀਜ਼ਾਂ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਦੇਖੀਆਂ ਹਨ ਜਾਂ ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ ਹਨ, ਬਾਰੇ ਆਪਣਾ ਵਾਪਸੀ ਰਸਤਾ ਲੱਭੋ।",
   "settings_pane_highlights_options_bookmarks": "ਬੁੱਕਮਾਰਕ",
-  "settings_pane_highlights_options_visited": "Visited Sites",
-  "settings_pane_snippets_header": "Snippets",
+  "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",
+  "settings_pane_topstories_options_sponsored": "ਸਪਾਂਸਰ ਕੀਤੀਆਂ ਕਹਾਣੀਆਂ ਵੇਖਾਓ",
   "edit_topsites_button_text": "ਸੋਧੋ",
   "edit_topsites_edit_button": "ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ",
-  "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_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",
-  "topsites_form_url_placeholder": "Type or paste a URL",
-  "topsites_form_use_image_link": "Use a custom image…",
-  "topsites_form_preview_button": "Preview",
+  "topsites_form_image_url_label": "URL ਕਸਟਮ ਚਿੱਤਰ",
+  "topsites_form_url_placeholder": "ਕੋਈ URL ਲਿਖੋ ਜਾਂ ਚੇਪੋ",
+  "topsites_form_use_image_link": "ਇੱਕ ਕਸਟਮ ਚਿੱਤਰ ਵਰਤੋ…",
+  "topsites_form_preview_button": "ਪੂਰਵ ਦਰਸ਼ਨ",
   "topsites_form_add_button": "ਜੋੜੋ",
   "topsites_form_save_button": "ਸੰਭਾਲੋ",
   "topsites_form_cancel_button": "ਰੱਦ ਕਰੋ",
-  "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",
+  "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": "Move Up",
-  "section_menu_action_move_down": "Move Down",
-  "section_menu_action_privacy_notice": "Privacy Notice"
+  "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": "ਨਿੱਜੀ ਨੋਟਿਸ"
 };
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nowa karta</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated pl file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nowa karta",
   "header_top_sites": "Popularne",
   "header_highlights": "Wyróżnione",
   "header_recommended_by": "Poleca: {provider}",
   "context_menu_button_sr": "Otwórz menu kontekstowe dla „{title}”",
   "section_context_menu_button_sr": "Otwórz menu kontekstowe sekcji",
   "type_label_visited": "Odwiedzone",
--- a/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/pl/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nova aba</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated pt-BR file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nova aba",
   "header_top_sites": "Sites preferidos",
   "header_highlights": "Destaques",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir menu de contexto para {title}",
   "section_context_menu_button_sr": "Abrir o menu de contexto da seção",
   "type_label_visited": "Visitado",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Novo separador</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated pt-PT file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Novo separador",
   "header_top_sites": "Sites mais visitados",
   "header_highlights": "Destaques",
   "header_recommended_by": "Recomendado por {provider}",
   "context_menu_button_sr": "Abrir menu de contexto para {title}",
   "section_context_menu_button_sr": "Abrir o menu de contexto da secção",
   "type_label_visited": "Visitados",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nov tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated rm file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nov tab",
   "header_top_sites": "Paginas preferidas",
   "header_highlights": "Accents",
   "header_recommended_by": "Recumandà da {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Visità",
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Filă nouă</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,61 +1,61 @@
-// Note - this is a generated file.
+// Note - this is a generated ro file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Filă nouă",
   "header_top_sites": "Site-uri de top",
   "header_highlights": "Evidențieri",
   "header_recommended_by": "Recomandat de {provider}",
   "context_menu_button_sr": "Deschide meniul contextual pentru {title}",
   "section_context_menu_button_sr": "Deschide meniul contextual al secțiunii",
   "type_label_visited": "Vizitat",
   "type_label_bookmarked": "Însemnat",
   "type_label_recommended": "În tendințe",
   "type_label_pocket": "Salvat în Pocket",
-  "type_label_downloaded": "Downloaded",
+  "type_label_downloaded": "Descărcat",
   "menu_action_bookmark": "Marchează",
   "menu_action_remove_bookmark": "Elimină marcajul",
   "menu_action_open_new_window": "Deschide într-o fereastră nouă",
   "menu_action_open_private_window": "Deschide într-o fereastră privată nouă",
   "menu_action_dismiss": "Înlătură",
   "menu_action_delete": "Șterge din istoric",
   "menu_action_pin": "Fixează",
   "menu_action_unpin": "Anulează fixarea",
   "confirm_history_delete_p1": "Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric?",
   "confirm_history_delete_notice_p2": "Această acțiune este ireversibilă.",
   "menu_action_save_to_pocket": "Salvează în Pocket",
   "menu_action_delete_pocket": "Şterge din Pocket",
   "menu_action_archive_pocket": "Arhivează în 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": "Afișează în Finder",
+  "menu_action_show_file_windows": "Deschide dosarul conținător",
+  "menu_action_show_file_linux": "Deschide dosarul conținător",
+  "menu_action_show_file_default": "Afișează fișierul",
+  "menu_action_open_file": "Deschide fișierul",
+  "menu_action_copy_download_link": "Copiază linkul de descărcare",
+  "menu_action_go_to_download_page": "Mergi la pagina de descărcare",
+  "menu_action_remove_download": "Elimină din istoric",
   "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": "Great content from around the web, personalized for you",
-  "prefs_topstories_options_sponsored_label": "Sponsored Stories",
+  "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": "Visited Pages",
-  "prefs_highlights_options_download_label": "Most Recent Download",
-  "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
+  "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.",
@@ -96,12 +96,10 @@ window.gActivityStreamStrings = {
   "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",
-  "prefs_topstories_description": "Conținut de calitate pe care l-ai putea rata",
-  "prefs_topstories_show_sponsored_label": "Conținut sponsorizat de {provider}"
+  "section_menu_action_privacy_notice": "Politica de confidențialitate"
 };
--- a/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ro/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Новая вкладка</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ru file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Новая вкладка",
   "header_top_sites": "Топ сайтов",
   "header_highlights": "Избранное",
   "header_recommended_by": "Рекомендовано {provider}",
   "context_menu_button_sr": "Открыть контекстное меню для {title}",
   "section_context_menu_button_sr": "Открыть контекстное меню раздела",
   "type_label_visited": "Посещено",
--- a/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ru/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>නව ටැබය</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated si file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "නව ටැබය",
   "header_top_sites": "ප්‍රමුඛ අඩවි",
   "header_highlights": "ඉස්මතු කිරීම්",
   "header_recommended_by": "{provider} විසින් නිර්දේශිතයි",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "ප්‍රවේශිත",
--- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nová karta</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated sk file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nová karta",
   "header_top_sites": "Top stránky",
   "header_highlights": "Vybrané stránky",
   "header_recommended_by": "Odporúča {provider}",
   "context_menu_button_sr": "Otvorí kontextovú ponuku pre {title}",
   "section_context_menu_button_sr": "Otvorí kontextovú ponuku sekcie",
   "type_label_visited": "Navštívené",
--- a/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sk/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Nov zavihek</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated sl file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Nov zavihek",
   "header_top_sites": "Glavne strani",
   "header_highlights": "Poudarki",
   "header_recommended_by": "Priporoča {provider}",
   "context_menu_button_sr": "Odpri priročni meni za {title}",
   "section_context_menu_button_sr": "Odpri priročni meni odseka",
   "type_label_visited": "Obiskano",
--- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Skedë e Re</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated sq file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Skedë e Re",
   "header_top_sites": "Sajte Kryesues",
   "header_highlights": "Highlights",
   "header_recommended_by": "Rekomanduar nga {provider}",
   "context_menu_button_sr": "Hapni menu konteksti për {title}",
   "section_context_menu_button_sr": "Hap menu konteksti ndarjeje",
   "type_label_visited": "Të vizituara",
--- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Нови језичак</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated sr file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Нови језичак",
   "header_top_sites": "Омиљени сајтови",
   "header_highlights": "Истакнуто",
   "header_recommended_by": "Предложио {provider}",
   "context_menu_button_sr": "Отвори мени поља за {title}",
   "section_context_menu_button_sr": "Отворите секцију контекст менија",
   "type_label_visited": "Посећено",
--- a/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/sr/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Ny flik</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated sv-SE file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Ny flik",
   "header_top_sites": "Mest besökta",
   "header_highlights": "Höjdpunkter",
   "header_recommended_by": "Rekommenderas av {provider}",
   "context_menu_button_sr": "Öppna snabbmeny för {title}",
   "section_context_menu_button_sr": "Öppna sektionens snabbmeny",
   "type_label_visited": "Besökta",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>புதிய கீற்று</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ta file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "புதிய கீற்று",
   "header_top_sites": "சிறந்த தளங்கள்",
   "header_highlights": "மிளிர்ப்புகள்",
   "header_recommended_by": "{provider} என்பவரால் பரிந்துரைக்கப்பட்டது",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "பார்த்தவை",
--- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>కొత్త ట్యాబు</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated te file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "కొత్త ట్యాబు",
   "header_top_sites": "మేటి సైట్లు",
   "header_highlights": "విశేషాలు",
   "header_recommended_by": "{provider}చే సిఫార్సు చేయబడినది",
   "context_menu_button_sr": "{title} కోసం సందర్భోచిత మెనుని తెరవండి",
   "section_context_menu_button_sr": "విభాగపు కంటెక్స్టు మెనూ తెరువు",
   "type_label_visited": "సందర్శించారు",
--- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>แท็บใหม่</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated th file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "แท็บใหม่",
   "header_top_sites": "ไซต์เด่น",
   "header_highlights": "รายการเด่น",
   "header_recommended_by": "แนะนำโดย {provider}",
   "context_menu_button_sr": "เปิดเมนูบริบทสำหรับ {title}",
   "section_context_menu_button_sr": "เปิดเมนูบริบทของส่วน",
   "type_label_visited": "เยี่ยมชมแล้ว",
--- a/browser/extensions/activity-stream/prerendered/locales/th/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/th/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Bagong Tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated tl file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Bagong Tab",
   "header_top_sites": "Tuktok na mga Site",
   "header_highlights": "Naka-highlight",
   "header_recommended_by": "Inirekomenda ni {provider}",
   "context_menu_button_sr": "Buksan ang menu ng konteksto para sa {title}",
   "section_context_menu_button_sr": "Buksan ang menu ng konteksto ng seksyon",
   "type_label_visited": "Binisita",
--- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Yeni Sekme</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated tr file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Yeni Sekme",
   "header_top_sites": "Sık Kullanılan Siteler",
   "header_highlights": "Öne Çıkanlar",
   "header_recommended_by": "{provider} öneriyor",
   "context_menu_button_sr": "{title} sağ tıklama menüsünü aç",
   "section_context_menu_button_sr": "Bölüm bağlam menüsünü aç",
   "type_label_visited": "Ziyaret etmiştiniz",
--- a/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/tr/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Нова вкладка</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated uk file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Нова вкладка",
   "header_top_sites": "Популярні сайти",
   "header_highlights": "Обране",
   "header_recommended_by": "Рекомендовано {provider}",
   "context_menu_button_sr": "Відкрити контекстне меню для {title}",
   "section_context_menu_button_sr": "Відкрити контекстне меню розділу",
   "type_label_visited": "Відвідано",
--- a/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uk/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>نیا ٹیب</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated ur file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "نیا ٹیب",
   "header_top_sites": "بہترین سائٹیں",
   "header_highlights": "شہ سرخياں",
   "header_recommended_by": "{provider} کی جانب سے تجویز کردہ",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "دورہ شدہ",
--- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Yangi ichki oyna</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated uz file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Yangi ichki oyna",
   "header_top_sites": "Ommabop saytlar",
   "header_highlights": "Saralangan saytlar",
   "header_recommended_by": "{provider} tomonidan tavsiya qilingan",
   "context_menu_button_sr": "{title} uchun menyu matnini ochish",
   "section_context_menu_button_sr": "Bo‘lim kontekst menyusini ochish",
   "type_label_visited": "Kirilgan",
--- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>Tab mới</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated vi file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "Tab mới",
   "header_top_sites": "Trang web hàng đầu",
   "header_highlights": "Nổi bật",
   "header_recommended_by": "Được đề nghị bởi {provider}",
   "context_menu_button_sr": "Open context menu for {title}",
   "section_context_menu_button_sr": "Open the section context menu",
   "type_label_visited": "Đã truy cập",
--- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream.html
+++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream.html
@@ -8,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>新标签页</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated zh-CN file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "新标签页",
   "header_top_sites": "常用网站",
   "header_highlights": "集锦",
   "header_recommended_by": "{provider} 推荐",
   "context_menu_button_sr": "打开 {title} 的快捷菜单",
   "section_context_menu_button_sr": "打开板块快捷菜单",
   "type_label_visited": "曾经访问",
@@ -44,19 +44,19 @@ window.gActivityStreamStrings = {
   "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 的新消息",
+  "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": "双行显示",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>新分頁</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated zh-TW file.
 window.gActivityStreamStrings = {
   "newtab_page_title": "新分頁",
   "header_top_sites": "熱門網站",
   "header_highlights": "精選網站",
   "header_recommended_by": "{provider} 推薦",
   "context_menu_button_sr": "開啟 {title} 的右鍵選單",
   "section_context_menu_button_sr": "開啟段落內容選單",
   "type_label_visited": "造訪過的網站",
--- 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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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,17 +8,23 @@
     <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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -28,11 +34,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-initial-state.js
+++ b/browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js
@@ -1,9 +1,9 @@
-// Note - this is a generated file.
+// Note - this is a generated static file.
 window.gActivityStreamPrerenderedState = {
   "TopSites": {
     "initialized": false,
     "rows": [],
     "editForm": null
   },
   "App": {
     "initialized": false,
@@ -16,17 +16,16 @@ window.gActivityStreamPrerenderedState =
     "initialized": true,
     "values": {
       "migrationExpired": true,
       "feeds.topsites": true,
       "showSearch": true,
       "topSitesRows": 1,
       "feeds.section.topstories": true,
       "feeds.section.highlights": true,
-      "enableWideLayout": true,
       "sectionOrder": "topsites,topstories,highlights",
       "collapsed": false
     }
   },
   "Dialog": {
     "visible": false,
     "data": {}
   },
--- a/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
+++ b/browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
@@ -4,21 +4,27 @@
     <meta charset="utf-8">
     <meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
     <title>New Tab</title>
     <link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
     <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 wide-layout-enabled" 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="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>
+    <script>(() => {
+// Clear out any prerendered content if we shouldn't continue loading
+if (top !== window) {
+  document.documentElement.innerHTML = "";
+  return;
+}
+
 // 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",
@@ -29,11 +35,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/lib/ActivityStreamStorage.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/ActivityStreamStorage.test.js
@@ -4,31 +4,47 @@ import {GlobalOverrider} from "test/unit
 let overrider = new GlobalOverrider();
 
 describe("ActivityStreamStorage", () => {
   let sandbox;
   let indexedDB;
   let storage;
   beforeEach(() => {
     sandbox = sinon.sandbox.create();
-    indexedDB = {open: sandbox.stub().resolves({})};
+    indexedDB = {
+      open: sandbox.stub().resolves({}),
+      deleteDatabase: sandbox.stub().resolves()
+    };
     overrider.set({IndexedDB: indexedDB});
     storage = new ActivityStreamStorage({
       storeNames: ["storage_test"],
       telemetry: {handleUndesiredEvent: sandbox.stub()}
     });
   });
   afterEach(() => {
     sandbox.restore();
   });
-  it("should not throw an error when accessing db", async () => {
-    assert.ok(storage.db);
+  it("should throw if required arguments not provided", () => {
+    assert.throws(() => new ActivityStreamStorage({telemetry: true}));
   });
-  it("should throw if arguments not provided", () => {
-    assert.throws(() => new ActivityStreamStorage());
+  describe(".db", () => {
+    it("should not throw an error when accessing db", async () => {
+      assert.ok(storage.db);
+    });
+
+    it("should delete and recreate the db if opening db fails", async () => {
+      const newDb = {};
+      indexedDB.open.onFirstCall().rejects(new Error("fake error"));
+      indexedDB.open.onSecondCall().resolves(newDb);
+
+      const db = await storage.db;
+      assert.calledOnce(indexedDB.deleteDatabase);
+      assert.calledTwice(indexedDB.open);
+      assert.equal(db, newDb);
+    });
   });
   describe("#getDbTable", () => {
     let testStorage;
     let storeStub;
     beforeEach(() => {
       storeStub = {
         getAll: sandbox.stub().resolves(),
         get: sandbox.stub().resolves(),
--- a/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
@@ -394,16 +394,35 @@ describe("Highlights Feed", () => {
       // Check that we did get the most single recent downloaded item in highlights
       const highlights = await fetchHighlights();
       assert.equal(highlights.length, 2);
       assert.equal(highlights[0].url, links[0].url);
       assert.equal(highlights[1].url, "https://site1.com/download");
 
       assert.calledOnce(global.NewTabUtils.activityStreamProvider._processHighlights);
     });
+    it("should sort bookmarks, pocket, and downloads chronologically", async () => {
+      feed.store.state.Prefs.values["section.highlights.includeDownloads"] = true;
+      feed.downloadsManager.getDownloads = () => [
+        {url: "https://site1.com/download", type: "download", date_added: Date.now()}
+      ];
+      links = [
+        {url: "https://site.com/bookmark", type: "bookmark", date_added: Date.now() - 10000},
+        {url: "https://site2.com/pocket", type: "pocket", date_added: Date.now() - 5000},
+        {url: "https://site3.com/visited", type: "history", date_added: Date.now()}
+      ];
+
+      // Check that the higlights are ordered chronologically by their 'date_added'
+      const highlights = await fetchHighlights();
+      assert.equal(highlights.length, 4);
+      assert.equal(highlights[0].url, "https://site1.com/download");
+      assert.equal(highlights[1].url, links[1].url);
+      assert.equal(highlights[2].url, links[0].url);
+      assert.equal(highlights[3].url, links[2].url); // history item goes last
+    });
     it("should set type to bookmark if there is a bookmarkGuid", async () => {
       feed.store.state.Prefs.values["section.highlights.includeBookmarks"] = true;
       links = [{url: "https://mozilla.org", type: "history", bookmarkGuid: "1234567890"}];
 
       const highlights = await fetchHighlights();
 
       assert.equal(highlights[0].type, "bookmark");
     });
--- a/browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
@@ -59,16 +59,19 @@ describe("TelemetryFeed", () => {
     clock.restore();
     globals.restore();
     FakePrefs.prototype.prefs = {};
   });
   describe("#init", () => {
     it("should add .pingCentre, a PingCentre instance", () => {
       assert.instanceOf(instance.pingCentre, PingCentre);
     });
+    it("should add .pingCentreForASRouter, a PingCentre instance", () => {
+      assert.instanceOf(instance.pingCentreForASRouter, PingCentre);
+    });
     it("should add .utEvents, a UTEventReporting instance", () => {
       assert.instanceOf(instance.utEvents, UTEventReporting);
     });
     it("should make this.browserOpenNewtabStart() observe browser-open-newtab-start", () => {
       sandbox.spy(Services.obs, "addObserver");
 
       instance.init();
 
@@ -464,16 +467,28 @@ describe("TelemetryFeed", () => {
       const action = ac.ImpressionStats({source: "POCKET", tiles, pocket: 0});
       const ping = await instance.createImpressionStats(action);
 
       assert.validate(ping, ImpressionStatsPing);
       assert.propertyVal(ping, "pocket", 0);
       assert.propertyVal(ping, "tiles", tiles);
     });
   });
+  describe("#createASRouterEvent", () => {
+    it("should create a valid AS Router event", async () => {
+      const data = {source: "SNIPPETS", event: "CLICK"};
+      const action = ac.ASRouterUserEvent(data);
+      const ping = await instance.createASRouterEvent(action);
+
+      // TODO check the payload with the Joi schema
+
+      assert.propertyVal(ping, "source", "SNIPPETS");
+      assert.propertyVal(ping, "event", "CLICK");
+    });
+  });
   describe("#sendEvent", () => {
     it("should call PingCentre", async () => {
       FakePrefs.prototype.prefs.telemetry = true;
       const event = {};
       instance = new TelemetryFeed();
       sandbox.stub(instance.pingCentre, "sendPing");
 
       await instance.sendEvent(event);
@@ -489,16 +504,28 @@ describe("TelemetryFeed", () => {
       instance = new TelemetryFeed();
       sandbox.stub(instance.utEvents, "sendUserEvent");
 
       await instance.sendUTEvent(event, instance.utEvents.sendUserEvent);
 
       assert.calledWith(instance.utEvents.sendUserEvent, event);
     });
   });
+  describe("#sendASRouterEvent", () => {
+    it("should call PingCentre for AS Router", async () => {
+      FakePrefs.prototype.prefs.telemetry = true;
+      const event = {};
+      instance = new TelemetryFeed();
+      sandbox.stub(instance.pingCentreForASRouter, "sendPing");
+
+      instance.sendASRouterEvent(event);
+
+      assert.calledWith(instance.pingCentreForASRouter.sendPing, event);
+    });
+  });
 
   describe("#setLoadTriggerInfo", () => {
     it("should call saveSessionPerfData w/load_trigger_{ts,type} data", () => {
       const stub = sandbox.stub(instance, "saveSessionPerfData");
       sandbox.stub(perfService, "getMostRecentAbsMarkStartByName").returns(777);
       instance.addSession("port123");
 
       instance.setLoadTriggerInfo("port123");
@@ -572,16 +599,23 @@ describe("TelemetryFeed", () => {
     });
     it("should call .utEvents.uninit", () => {
       const stub = sandbox.stub(instance.utEvents, "uninit");
 
       instance.uninit();
 
       assert.calledOnce(stub);
     });
+    it("should call .pingCentreForASRouter.uninit", () => {
+      const stub = sandbox.stub(instance.pingCentreForASRouter, "uninit");
+
+      instance.uninit();
+
+      assert.calledOnce(stub);
+    });
     it("should remove the a-s telemetry pref listener", () => {
       FakePrefs.prototype.prefs[TELEMETRY_PREF] = true;
       instance = new TelemetryFeed();
 
       assert.property(instance._prefs.observers, TELEMETRY_PREF);
 
       instance.uninit();
 
@@ -698,16 +732,17 @@ describe("TelemetryFeed", () => {
       assert.calledWith(eventCreator, action);
       assert.calledWith(sendEvent, eventCreator.returnValue);
       assert.calledWith(utSendUserEvent, eventCreator.returnValue);
     });
     it("should call handleASRouterUserEvent on TELEMETRY_USER_EVENT action", () => {
       FakePrefs.prototype.prefs[TELEMETRY_PREF] = true;
       FakePrefs.prototype.prefs[EVENTS_TELEMETRY_PREF] = true;
       instance = new TelemetryFeed();
+      instance.store = store;
 
       const eventHandler = sandbox.spy(instance, "handleASRouterUserEvent");
       const action = {type: at.AS_ROUTER_TELEMETRY_USER_EVENT, data: {event: "CLICK"}};
 
       instance.onAction(action);
 
       assert.calledWith(eventHandler, action);
     });
--- a/browser/extensions/activity-stream/test/unit/unit-entry.js
+++ b/browser/extensions/activity-stream/test/unit/unit-entry.js
@@ -37,16 +37,17 @@ const TEST_GLOBAL = {
   AddonManager: {
     getActiveAddons() {
       return Promise.resolve({addons: [], fullData: false});
     }
   },
   AppConstants: {MOZILLA_OFFICIAL: true},
   ChromeUtils: {
     defineModuleGetter() {},
+    generateQI() { return {}; },
     import() {}
   },
   Components: {isSuccessCode: () => true},
   // eslint-disable-next-line object-shorthand
   ContentSearchUIController: function() {}, // NB: This is a function/constructor
   Cc: {
     "@mozilla.org/browser/nav-bookmarks-service;1": {
       addObserver() {},