Bug 1379522 - Add pinned sites, context menu ordering, cleared history, other fixes to Activity Stream. r?ursula draft
authorEd Lee <edilee@mozilla.com>
Sun, 09 Jul 2017 17:04:38 -0700
changeset 605878 b5c32ad2aa4d895a1e7c5cd53e53ce86b9383956
parent 605863 a418121d46250f91728b86d9eea331029c264c30
child 636612 ffe0d54eccaf0b96c04a393a24e99ab2a31eb337
push id67537
push userbmo:edilee@mozilla.com
push dateMon, 10 Jul 2017 00:04:47 +0000
reviewersursula
bugs1379522
milestone56.0a1
Bug 1379522 - Add pinned sites, context menu ordering, cleared history, other fixes to Activity Stream. r?ursula MozReview-Commit-ID: ESlcuSuzoDH
browser/extensions/activity-stream/common/Actions.jsm
browser/extensions/activity-stream/common/Reducers.jsm
browser/extensions/activity-stream/data/content/activity-stream.bundle.js
browser/extensions/activity-stream/data/content/activity-stream.css
browser/extensions/activity-stream/data/content/assets/glyph-pin-16.svg
browser/extensions/activity-stream/data/content/assets/glyph-pocket-16.svg
browser/extensions/activity-stream/data/content/assets/glyph-unpin-16.svg
browser/extensions/activity-stream/data/locales.json
browser/extensions/activity-stream/lib/TelemetryFeed.jsm
browser/extensions/activity-stream/lib/TopSitesFeed.jsm
browser/extensions/activity-stream/test/schemas/pings.js
browser/extensions/activity-stream/test/unit/common/Reducers.test.js
browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js
testing/profiles/prefs_general.js
testing/talos/talos/config.py
--- a/browser/extensions/activity-stream/common/Actions.jsm
+++ b/browser/extensions/activity-stream/common/Actions.jsm
@@ -34,29 +34,33 @@ for (const type of [
   "INIT",
   "LOCALE_UPDATED",
   "NEW_TAB_INITIAL_STATE",
   "NEW_TAB_LOAD",
   "NEW_TAB_UNLOAD",
   "NEW_TAB_VISIBLE",
   "OPEN_NEW_WINDOW",
   "OPEN_PRIVATE_WINDOW",
+  "PINNED_SITES_UPDATED",
   "PLACES_BOOKMARK_ADDED",
   "PLACES_BOOKMARK_CHANGED",
   "PLACES_BOOKMARK_REMOVED",
   "PLACES_HISTORY_CLEARED",
   "PLACES_LINK_BLOCKED",
   "PLACES_LINK_DELETED",
   "PREFS_INITIAL_VALUES",
   "PREF_CHANGED",
+  "SAVE_TO_POCKET",
   "SCREENSHOT_UPDATED",
   "SET_PREF",
   "TELEMETRY_PERFORMANCE_EVENT",
   "TELEMETRY_UNDESIRED_EVENT",
   "TELEMETRY_USER_EVENT",
+  "TOP_SITES_PIN",
+  "TOP_SITES_UNPIN",
   "TOP_SITES_UPDATED",
   "UNINIT"
 ]) {
   actionTypes[type] = type;
 }
 
 // Helper function for creating routed actions between content and main
 // Not intended to be used by consumers
--- a/browser/extensions/activity-stream/common/Reducers.jsm
+++ b/browser/extensions/activity-stream/common/Reducers.jsm
@@ -46,58 +46,97 @@ function App(prevState = INITIAL_STATE.A
         strings
       });
     }
     default:
       return prevState;
   }
 }
 
+/**
+ * insertPinned - Inserts pinned links in their specified slots
+ *
+ * @param {array} a list of links
+ * @param {array} a list of pinned links
+ * @return {array} resulting list of links with pinned links inserted
+ */
+function insertPinned(links, pinned) {
+  // Remove any pinned links
+  const pinnedUrls = pinned.map(link => link && link.url);
+  let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));
+  newLinks = newLinks.map(link => {
+    if (link && link.isPinned) {
+      delete link.isPinned;
+      delete link.pinTitle;
+      delete link.pinIndex;
+    }
+    return link;
+  });
+
+  // Then insert them in their specified location
+  pinned.forEach((val, index) => {
+    if (!val) { return; }
+    let link = Object.assign({}, val, {isPinned: true, pinIndex: index, pinTitle: val.title});
+    if (index > newLinks.length) {
+      newLinks[index] = link;
+    } else {
+      newLinks.splice(index, 0, link);
+    }
+  });
+
+  return newLinks;
+}
+
 function TopSites(prevState = INITIAL_STATE.TopSites, action) {
   let hasMatch;
   let newRows;
+  let pinned;
   switch (action.type) {
     case at.TOP_SITES_UPDATED:
       if (!action.data) {
         return prevState;
       }
       return Object.assign({}, prevState, {initialized: true, rows: action.data});
     case at.SCREENSHOT_UPDATED:
       newRows = prevState.rows.map(row => {
-        if (row.url === action.data.url) {
+        if (row && row.url === action.data.url) {
           hasMatch = true;
           return Object.assign({}, row, {screenshot: action.data.screenshot});
         }
         return row;
       });
       return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;
     case at.PLACES_BOOKMARK_ADDED:
       newRows = prevState.rows.map(site => {
-        if (site.url === action.data.url) {
+        if (site && site.url === action.data.url) {
           const {bookmarkGuid, bookmarkTitle, lastModified} = action.data;
           return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: lastModified});
         }
         return site;
       });
       return Object.assign({}, prevState, {rows: newRows});
     case at.PLACES_BOOKMARK_REMOVED:
       newRows = prevState.rows.map(site => {
-        if (site.url === action.data.url) {
+        if (site && site.url === action.data.url) {
           const newSite = Object.assign({}, site);
           delete newSite.bookmarkGuid;
           delete newSite.bookmarkTitle;
           delete newSite.bookmarkDateCreated;
           return newSite;
         }
         return site;
       });
       return Object.assign({}, prevState, {rows: newRows});
     case at.PLACES_LINK_DELETED:
     case at.PLACES_LINK_BLOCKED:
-      newRows = prevState.rows.filter(val => val.url !== action.data.url);
+      newRows = prevState.rows.filter(val => val && val.url !== action.data.url);
+      return Object.assign({}, prevState, {rows: newRows});
+    case at.PINNED_SITES_UPDATED:
+      pinned = action.data;
+      newRows = insertPinned(prevState.rows, pinned);
       return Object.assign({}, prevState, {rows: newRows});
     default:
       return prevState;
   }
 }
 
 function Dialog(prevState = INITIAL_STATE.Dialog, action) {
   switch (action.type) {
@@ -123,10 +162,11 @@ function Prefs(prevState = INITIAL_STATE
       return Object.assign({}, prevState, {values: newValues});
     default:
       return prevState;
   }
 }
 
 this.INITIAL_STATE = INITIAL_STATE;
 this.reducers = {TopSites, App, Prefs, Dialog};
+this.insertPinned = insertPinned;
 
-this.EXPORTED_SYMBOLS = ["reducers", "INITIAL_STATE"];
+this.EXPORTED_SYMBOLS = ["reducers", "INITIAL_STATE", "insertPinned"];
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
@@ -58,27 +58,21 @@
 /******/
 /******/ 	// Object.prototype.hasOwnProperty.call
 /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
 /******/
 /******/ 	// __webpack_public_path__
 /******/ 	__webpack_require__.p = "";
 /******/
 /******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(__webpack_require__.s = 18);
+/******/ 	return __webpack_require__(__webpack_require__.s = 19);
 /******/ })
 /************************************************************************/
 /******/ ([
 /* 0 */
-/***/ (function(module, exports) {
-
-module.exports = React;
-
-/***/ }),
-/* 1 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 
@@ -98,17 +92,17 @@ const globalImportContext = typeof Windo
 
 
 // Create an object that avoids accidental differing key/value pairs:
 // {
 //   INIT: "INIT",
 //   UNINIT: "UNINIT"
 // }
 const actionTypes = {};
-for (const type of ["BLOCK_URL", "BOOKMARK_URL", "DELETE_BOOKMARK_BY_ID", "DELETE_HISTORY_URL", "DELETE_HISTORY_URL_CONFIRM", "DIALOG_CANCEL", "DIALOG_OPEN", "INIT", "LOCALE_UPDATED", "NEW_TAB_INITIAL_STATE", "NEW_TAB_LOAD", "NEW_TAB_UNLOAD", "NEW_TAB_VISIBLE", "OPEN_NEW_WINDOW", "OPEN_PRIVATE_WINDOW", "PLACES_BOOKMARK_ADDED", "PLACES_BOOKMARK_CHANGED", "PLACES_BOOKMARK_REMOVED", "PLACES_HISTORY_CLEARED", "PLACES_LINK_BLOCKED", "PLACES_LINK_DELETED", "PREFS_INITIAL_VALUES", "PREF_CHANGED", "SCREENSHOT_UPDATED", "SET_PREF", "TELEMETRY_PERFORMANCE_EVENT", "TELEMETRY_UNDESIRED_EVENT", "TELEMETRY_USER_EVENT", "TOP_SITES_UPDATED", "UNINIT"]) {
+for (const type of ["BLOCK_URL", "BOOKMARK_URL", "DELETE_BOOKMARK_BY_ID", "DELETE_HISTORY_URL", "DELETE_HISTORY_URL_CONFIRM", "DIALOG_CANCEL", "DIALOG_OPEN", "INIT", "LOCALE_UPDATED", "NEW_TAB_INITIAL_STATE", "NEW_TAB_LOAD", "NEW_TAB_UNLOAD", "NEW_TAB_VISIBLE", "OPEN_NEW_WINDOW", "OPEN_PRIVATE_WINDOW", "PINNED_SITES_UPDATED", "PLACES_BOOKMARK_ADDED", "PLACES_BOOKMARK_CHANGED", "PLACES_BOOKMARK_REMOVED", "PLACES_HISTORY_CLEARED", "PLACES_LINK_BLOCKED", "PLACES_LINK_DELETED", "PREFS_INITIAL_VALUES", "PREF_CHANGED", "SAVE_TO_POCKET", "SCREENSHOT_UPDATED", "SET_PREF", "TELEMETRY_PERFORMANCE_EVENT", "TELEMETRY_UNDESIRED_EVENT", "TELEMETRY_USER_EVENT", "TOP_SITES_PIN", "TOP_SITES_UNPIN", "TOP_SITES_UPDATED", "UNINIT"]) {
   actionTypes[type] = type;
 }
 
 // Helper function for creating routed actions between content and main
 // Not intended to be used by consumers
 function _RouteMessage(action, options) {
   const meta = action.meta ? Object.assign({}, action.meta) : {};
   if (!options || !options.from || !options.to) {
@@ -277,16 +271,22 @@ module.exports = {
   globalImportContext,
   UI_CODE,
   BACKGROUND_PROCESS,
   MAIN_MESSAGE_TYPE,
   CONTENT_MESSAGE_TYPE
 };
 
 /***/ }),
+/* 1 */
+/***/ (function(module, exports) {
+
+module.exports = React;
+
+/***/ }),
 /* 2 */
 /***/ (function(module, exports) {
 
 module.exports = ReactRedux;
 
 /***/ }),
 /* 3 */
 /***/ (function(module, exports) {
@@ -295,31 +295,66 @@ module.exports = ReactIntl;
 
 /***/ }),
 /* 4 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+/**
+ * shortURL - Creates a short version of a link's url, used for display purposes
+ *            e.g. {url: http://www.foosite.com, eTLD: "com"}  =>  "foosite"
+ *
+ * @param  {obj} link A link object
+ *         {str} link.url (required)- The url of the link
+ *         {str} link.eTLD (required) - The tld of the link
+ *               e.g. for https://foo.org, the tld would be "org"
+ *               Note that this property is added in various queries for ActivityStream
+ *               via Services.eTLD.getPublicSuffix
+ *         {str} link.hostname (optional) - The hostname of the url
+ *               e.g. for http://www.hello.com/foo/bar, the hostname would be "www.hello.com"
+ * @return {str}   A short url
+ */
+module.exports = function shortURL(link) {
+  if (!link.url && !link.hostname) {
+    return "";
+  }
+  const eTLD = link.eTLD;
+
+  const hostname = (link.hostname || new URL(link.url).hostname).replace(/^www\./i, "");
+
+  // Remove the eTLD (e.g., com, net) and the preceding period from the hostname
+  const eTLDLength = (eTLD || "").length || hostname.match(/\.com$/) && 3;
+  const eTLDExtra = eTLDLength > 0 ? -(eTLDLength + 1) : Infinity;
+  return hostname.slice(0, eTLDExtra).toLowerCase();
+};
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(2);
 
 const connect = _require.connect;
 
 var _require2 = __webpack_require__(3);
 
 const addLocaleData = _require2.addLocaleData,
       IntlProvider = _require2.IntlProvider;
 
-const TopSites = __webpack_require__(14);
-const Search = __webpack_require__(13);
-const ConfirmDialog = __webpack_require__(9);
-const PreferencesPane = __webpack_require__(12);
+const TopSites = __webpack_require__(15);
+const Search = __webpack_require__(14);
+const ConfirmDialog = __webpack_require__(10);
+const PreferencesPane = __webpack_require__(13);
 
 // Locales that should be displayed RTL
 const RTL_LIST = ["ar", "he", "fa", "ur"];
 
 // Add the locale data for pluralization and relative-time formatting for now,
 // this just uses english locale data. We can make this more sophisticated if
 // more features are needed.
 function addLocaleDataForReactIntl(_ref) {
@@ -380,27 +415,27 @@ class Base extends React.Component {
       )
     );
   }
 }
 
 module.exports = connect(state => ({ App: state.App, Prefs: state.Prefs }))(Base);
 
 /***/ }),
-/* 5 */
+/* 6 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-var _require = __webpack_require__(1);
+var _require = __webpack_require__(0);
 
 const at = _require.actionTypes;
 
-var _require2 = __webpack_require__(16);
+var _require2 = __webpack_require__(17);
 
 const perfSvc = _require2.perfService;
 
 
 const VISIBLE = "visible";
 const VISIBILITY_CHANGE_EVENT = "visibilitychange";
 
 module.exports = class DetectUserSessionStart {
@@ -455,31 +490,31 @@ module.exports = class DetectUserSession
     if (this.document.visibilityState === VISIBLE) {
       this._sendEvent();
       this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);
     }
   }
 };
 
 /***/ }),
-/* 6 */
+/* 7 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
 /* eslint-env mozilla/frame-script */
 
-var _require = __webpack_require__(17);
+var _require = __webpack_require__(18);
 
 const createStore = _require.createStore,
       combineReducers = _require.combineReducers,
       applyMiddleware = _require.applyMiddleware;
 
-var _require2 = __webpack_require__(1);
+var _require2 = __webpack_require__(0);
 
 const au = _require2.actionUtils;
 
 
 const MERGE_STORE_ACTION = "NEW_TAB_INITIAL_STATE";
 const OUTGOING_MESSAGE_NAME = "ActivityStream:ContentToMain";
 const INCOMING_MESSAGE_NAME = "ActivityStream:MainToContent";
 
@@ -535,26 +570,26 @@ module.exports = function initStore(redu
   return store;
 };
 
 module.exports.MERGE_STORE_ACTION = MERGE_STORE_ACTION;
 module.exports.OUTGOING_MESSAGE_NAME = OUTGOING_MESSAGE_NAME;
 module.exports.INCOMING_MESSAGE_NAME = INCOMING_MESSAGE_NAME;
 
 /***/ }),
-/* 7 */
+/* 8 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 
-var _require = __webpack_require__(1);
+var _require = __webpack_require__(0);
 
 const at = _require.actionTypes;
 
 
 const INITIAL_STATE = {
   App: {
     // Have we received real data from the app yet?
     initialized: false,
@@ -602,65 +637,106 @@ function App() {
           strings
         });
       }
     default:
       return prevState;
   }
 }
 
+/**
+ * insertPinned - Inserts pinned links in their specified slots
+ *
+ * @param {array} a list of links
+ * @param {array} a list of pinned links
+ * @return {array} resulting list of links with pinned links inserted
+ */
+function insertPinned(links, pinned) {
+  // Remove any pinned links
+  const pinnedUrls = pinned.map(link => link && link.url);
+  let newLinks = links.filter(link => link ? !pinnedUrls.includes(link.url) : false);
+  newLinks = newLinks.map(link => {
+    if (link && link.isPinned) {
+      delete link.isPinned;
+      delete link.pinTitle;
+      delete link.pinIndex;
+    }
+    return link;
+  });
+
+  // Then insert them in their specified location
+  pinned.forEach((val, index) => {
+    if (!val) {
+      return;
+    }
+    let link = Object.assign({}, val, { isPinned: true, pinIndex: index, pinTitle: val.title });
+    if (index > newLinks.length) {
+      newLinks[index] = link;
+    } else {
+      newLinks.splice(index, 0, link);
+    }
+  });
+
+  return newLinks;
+}
+
 function TopSites() {
   let prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : INITIAL_STATE.TopSites;
   let action = arguments[1];
 
   let hasMatch;
   let newRows;
+  let pinned;
   switch (action.type) {
     case at.TOP_SITES_UPDATED:
       if (!action.data) {
         return prevState;
       }
       return Object.assign({}, prevState, { initialized: true, rows: action.data });
     case at.SCREENSHOT_UPDATED:
       newRows = prevState.rows.map(row => {
-        if (row.url === action.data.url) {
+        if (row && row.url === action.data.url) {
           hasMatch = true;
           return Object.assign({}, row, { screenshot: action.data.screenshot });
         }
         return row;
       });
       return hasMatch ? Object.assign({}, prevState, { rows: newRows }) : prevState;
     case at.PLACES_BOOKMARK_ADDED:
       newRows = prevState.rows.map(site => {
-        if (site.url === action.data.url) {
+        if (site && site.url === action.data.url) {
           var _action$data2 = action.data;
           const bookmarkGuid = _action$data2.bookmarkGuid,
                 bookmarkTitle = _action$data2.bookmarkTitle,
                 lastModified = _action$data2.lastModified;
 
           return Object.assign({}, site, { bookmarkGuid, bookmarkTitle, bookmarkDateCreated: lastModified });
         }
         return site;
       });
       return Object.assign({}, prevState, { rows: newRows });
     case at.PLACES_BOOKMARK_REMOVED:
       newRows = prevState.rows.map(site => {
-        if (site.url === action.data.url) {
+        if (site && site.url === action.data.url) {
           const newSite = Object.assign({}, site);
           delete newSite.bookmarkGuid;
           delete newSite.bookmarkTitle;
           delete newSite.bookmarkDateCreated;
           return newSite;
         }
         return site;
       });
       return Object.assign({}, prevState, { rows: newRows });
     case at.PLACES_LINK_DELETED:
     case at.PLACES_LINK_BLOCKED:
-      newRows = prevState.rows.filter(val => val.url !== action.data.url);
+      newRows = prevState.rows.filter(val => val && val.url !== action.data.url);
+      return Object.assign({}, prevState, { rows: newRows });
+    case at.PINNED_SITES_UPDATED:
+      pinned = action.data;
+      newRows = insertPinned(prevState.rows, pinned);
       return Object.assign({}, prevState, { rows: newRows });
     default:
       return prevState;
   }
 }
 
 function Dialog() {
   let prevState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : INITIAL_STATE.Dialog;
@@ -693,43 +769,44 @@ function Prefs() {
     default:
       return prevState;
   }
 }
 
 var reducers = { TopSites, App, Prefs, Dialog };
 module.exports = {
   reducers,
-  INITIAL_STATE
+  INITIAL_STATE,
+  insertPinned
 };
 
 /***/ }),
-/* 8 */
+/* 9 */
 /***/ (function(module, exports) {
 
 module.exports = ReactDOM;
 
 /***/ }),
-/* 9 */
+/* 10 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(2);
 
 const connect = _require.connect;
 
 var _require2 = __webpack_require__(3);
 
 const FormattedMessage = _require2.FormattedMessage;
 
-var _require3 = __webpack_require__(1);
+var _require3 = __webpack_require__(0);
 
 const actionTypes = _require3.actionTypes,
       ac = _require3.actionCreators;
 
 /**
  * ConfirmDialog component.
  * One primary action button, one cancel button.
  *
@@ -822,23 +899,23 @@ const ConfirmDialog = React.createClass(
   }
 });
 
 module.exports = connect(state => state.Dialog)(ConfirmDialog);
 module.exports._unconnected = ConfirmDialog;
 module.exports.Dialog = ConfirmDialog;
 
 /***/ }),
-/* 10 */
+/* 11 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 class ContextMenu extends React.Component {
   constructor(props) {
     super(props);
     this.hideContext = this.hideContext.bind(this);
   }
   hideContext() {
     this.props.onUpdate(false);
@@ -905,132 +982,63 @@ class ContextMenu extends React.Componen
       )
     );
   }
 }
 
 module.exports = ContextMenu;
 
 /***/ }),
-/* 11 */
+/* 12 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(3);
 
 const injectIntl = _require.injectIntl;
 
-const ContextMenu = __webpack_require__(10);
-
-var _require2 = __webpack_require__(1);
-
-const at = _require2.actionTypes,
-      ac = _require2.actionCreators;
-
+const ContextMenu = __webpack_require__(11);
 
-const RemoveBookmark = site => ({
-  id: "menu_action_remove_bookmark",
-  icon: "bookmark-remove",
-  action: ac.SendToMain({
-    type: at.DELETE_BOOKMARK_BY_ID,
-    data: site.bookmarkGuid
-  }),
-  userEvent: "BOOKMARK_DELETE"
-});
-
-const AddBookmark = site => ({
-  id: "menu_action_bookmark",
-  icon: "bookmark",
-  action: ac.SendToMain({
-    type: at.BOOKMARK_URL,
-    data: site.url
-  }),
-  userEvent: "BOOKMARK_ADD"
-});
+var _require2 = __webpack_require__(0);
 
-const OpenInNewWindow = site => ({
-  id: "menu_action_open_new_window",
-  icon: "new-window",
-  action: ac.SendToMain({
-    type: at.OPEN_NEW_WINDOW,
-    data: { url: site.url }
-  }),
-  userEvent: "OPEN_NEW_WINDOW"
-});
-
-const OpenInPrivateWindow = site => ({
-  id: "menu_action_open_private_window",
-  icon: "new-window-private",
-  action: ac.SendToMain({
-    type: at.OPEN_PRIVATE_WINDOW,
-    data: { url: site.url }
-  }),
-  userEvent: "OPEN_PRIVATE_WINDOW"
-});
+const ac = _require2.actionCreators;
 
-const BlockUrl = site => ({
-  id: "menu_action_dismiss",
-  icon: "dismiss",
-  action: ac.SendToMain({
-    type: at.BLOCK_URL,
-    data: site.url
-  }),
-  userEvent: "BLOCK"
-});
-
-const DeleteUrl = site => ({
-  id: "menu_action_delete",
-  icon: "delete",
-  action: {
-    type: at.DIALOG_OPEN,
-    data: {
-      onConfirm: [ac.SendToMain({ type: at.DELETE_HISTORY_URL, data: site.url }), ac.UserEvent({ event: "DELETE" })],
-      body_string_id: ["confirm_history_delete_p1", "confirm_history_delete_notice_p2"],
-      confirm_button_string_id: "menu_action_delete"
-    }
-  },
-  userEvent: "DIALOG_OPEN"
-});
+const linkMenuOptions = __webpack_require__(16);
+const DEFAULT_SITE_MENU_OPTIONS = ["CheckPinTopSite", "Separator", "OpenInNewWindow", "OpenInPrivateWindow"];
 
 class LinkMenu extends React.Component {
   getOptions() {
     const props = this.props;
-    const site = props.site;
-
-    const isBookmark = site.bookmarkGuid;
-    const isDefault = site.isDefault;
-
-    const options = [
+    const site = props.site,
+          index = props.index,
+          source = props.source;
 
-    // Bookmarks
-    !isDefault && (isBookmark ? RemoveBookmark(site) : AddBookmark(site)), !isDefault && { type: "separator" },
+    // Handle special case of default site
 
-    // Menu items for all sites
-    OpenInNewWindow(site), OpenInPrivateWindow(site),
+    const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;
 
-    // Blocking and deleting
-    !isDefault && { type: "separator" }, !isDefault && BlockUrl(site), !isDefault && DeleteUrl(site)].filter(o => o).map(option => {
+    const options = propOptions.map(o => linkMenuOptions[o](site, index)).map(option => {
       const action = option.action,
             id = option.id,
             type = option.type,
             userEvent = option.userEvent;
 
       if (!type && id) {
         option.label = props.intl.formatMessage(option);
         option.onClick = () => {
           props.dispatch(action);
           if (userEvent) {
             props.dispatch(ac.UserEvent({
               event: userEvent,
-              source: props.source,
-              action_position: props.index
+              source,
+              action_position: index
             }));
           }
         };
       }
       return option;
     });
 
     // This is for accessibility to support making each item tabbable.
@@ -1047,34 +1055,34 @@ class LinkMenu extends React.Component {
       options: this.getOptions() });
   }
 }
 
 module.exports = injectIntl(LinkMenu);
 module.exports._unconnected = LinkMenu;
 
 /***/ }),
-/* 12 */
+/* 13 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(2);
 
 const connect = _require.connect;
 
 var _require2 = __webpack_require__(3);
 
 const injectIntl = _require2.injectIntl,
       FormattedMessage = _require2.FormattedMessage;
 
-var _require3 = __webpack_require__(1);
+var _require3 = __webpack_require__(0);
 
 const ac = _require3.actionCreators;
 
 
 const PreferencesInput = props => React.createElement(
   "section",
   null,
   React.createElement("input", { type: "checkbox", id: props.prefName, name: props.prefName, checked: props.value, onChange: props.onChange, className: props.className }),
@@ -1173,35 +1181,35 @@ class PreferencesPane extends React.Comp
   }
 }
 
 module.exports = connect(state => ({ Prefs: state.Prefs }))(injectIntl(PreferencesPane));
 module.exports.PreferencesPane = PreferencesPane;
 module.exports.PreferencesInput = PreferencesInput;
 
 /***/ }),
-/* 13 */
+/* 14 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 /* globals ContentSearchUIController */
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(2);
 
 const connect = _require.connect;
 
 var _require2 = __webpack_require__(3);
 
 const FormattedMessage = _require2.FormattedMessage,
       injectIntl = _require2.injectIntl;
 
-var _require3 = __webpack_require__(1);
+var _require3 = __webpack_require__(0);
 
 const ac = _require3.actionCreators;
 
 
 class Search extends React.Component {
   constructor(props) {
     super(props);
     this.onClick = this.onClick.bind(this);
@@ -1272,40 +1280,41 @@ class Search extends React.Component {
     );
   }
 }
 
 module.exports = connect()(injectIntl(Search));
 module.exports._unconnected = Search;
 
 /***/ }),
-/* 14 */
+/* 15 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
+const React = __webpack_require__(1);
 
 var _require = __webpack_require__(2);
 
 const connect = _require.connect;
 
 var _require2 = __webpack_require__(3);
 
 const FormattedMessage = _require2.FormattedMessage;
 
-const shortURL = __webpack_require__(15);
-const LinkMenu = __webpack_require__(11);
+const shortURL = __webpack_require__(4);
+const LinkMenu = __webpack_require__(12);
 
-var _require3 = __webpack_require__(1);
+var _require3 = __webpack_require__(0);
 
 const ac = _require3.actionCreators;
 
 const TOP_SITES_SOURCE = "TOP_SITES";
+const TOP_SITES_CONTEXT_MENU_OPTIONS = ["CheckPinTopSite", "Separator", "OpenInNewWindow", "OpenInPrivateWindow", "Separator", "BlockUrl", "DeleteUrl"];
 
 class TopSite extends React.Component {
   constructor(props) {
     super(props);
     this.state = { showContextMenu: false, activeTile: null };
   }
   toggleContextMenu(event, index) {
     this.setState({ showContextMenu: true, activeTile: index });
@@ -1369,81 +1378,158 @@ class TopSite extends React.Component {
         )
       ),
       React.createElement(LinkMenu, {
         dispatch: dispatch,
         visible: isContextMenuOpen,
         onUpdate: val => this.setState({ showContextMenu: val }),
         site: link,
         index: index,
-        source: TOP_SITES_SOURCE })
+        source: TOP_SITES_SOURCE,
+        options: TOP_SITES_CONTEXT_MENU_OPTIONS })
     );
   }
 }
 
 const TopSites = props => React.createElement(
   "section",
   null,
   React.createElement(
     "h3",
     { className: "section-title" },
     React.createElement(FormattedMessage, { id: "header_top_sites" })
   ),
   React.createElement(
     "ul",
     { className: "top-sites-list" },
-    props.TopSites.rows.map((link, index) => React.createElement(TopSite, {
+    props.TopSites.rows.map((link, index) => link && React.createElement(TopSite, {
       key: link.url,
       dispatch: props.dispatch,
       link: link,
       index: index }))
   )
 );
 
 module.exports = connect(state => ({ TopSites: state.TopSites }))(TopSites);
 module.exports._unconnected = TopSites;
 module.exports.TopSite = TopSite;
 
 /***/ }),
-/* 15 */
+/* 16 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
+var _require = __webpack_require__(0);
+
+const at = _require.actionTypes,
+      ac = _require.actionCreators;
+
+const shortURL = __webpack_require__(4);
+
 /**
- * shortURL - Creates a short version of a link's url, used for display purposes
- *            e.g. {url: http://www.foosite.com, eTLD: "com"}  =>  "foosite"
- *
- * @param  {obj} link A link object
- *         {str} link.url (required)- The url of the link
- *         {str} link.eTLD (required) - The tld of the link
- *               e.g. for https://foo.org, the tld would be "org"
- *               Note that this property is added in various queries for ActivityStream
- *               via Services.eTLD.getPublicSuffix
- *         {str} link.hostname (optional) - The hostname of the url
- *               e.g. for http://www.hello.com/foo/bar, the hostname would be "www.hello.com"
- * @return {str}   A short url
+ * List of functions that return items that can be included as menu options in a
+ * LinkMenu. All functions take the site as the first parameter, and optionally
+ * the index of the site.
  */
-module.exports = function shortURL(link) {
-  if (!link.url && !link.hostname) {
-    return "";
-  }
-  const eTLD = link.eTLD;
-
-  const hostname = (link.hostname || new URL(link.url).hostname).replace(/^www\./i, "");
-
-  // Remove the eTLD (e.g., com, net) and the preceding period from the hostname
-  const eTLDLength = (eTLD || "").length || hostname.match(/\.com$/) && 3;
-  const eTLDExtra = eTLDLength > 0 ? -(eTLDLength + 1) : Infinity;
-  return hostname.slice(0, eTLDExtra).toLowerCase();
+module.exports = {
+  Separator: () => ({ type: "separator" }),
+  RemoveBookmark: site => ({
+    id: "menu_action_remove_bookmark",
+    icon: "bookmark-remove",
+    action: ac.SendToMain({
+      type: at.DELETE_BOOKMARK_BY_ID,
+      data: site.bookmarkGuid
+    }),
+    userEvent: "BOOKMARK_DELETE"
+  }),
+  AddBookmark: site => ({
+    id: "menu_action_bookmark",
+    icon: "bookmark",
+    action: ac.SendToMain({
+      type: at.BOOKMARK_URL,
+      data: site.url
+    }),
+    userEvent: "BOOKMARK_ADD"
+  }),
+  OpenInNewWindow: site => ({
+    id: "menu_action_open_new_window",
+    icon: "new-window",
+    action: ac.SendToMain({
+      type: at.OPEN_NEW_WINDOW,
+      data: { url: site.url }
+    }),
+    userEvent: "OPEN_NEW_WINDOW"
+  }),
+  OpenInPrivateWindow: site => ({
+    id: "menu_action_open_private_window",
+    icon: "new-window-private",
+    action: ac.SendToMain({
+      type: at.OPEN_PRIVATE_WINDOW,
+      data: { url: site.url }
+    }),
+    userEvent: "OPEN_PRIVATE_WINDOW"
+  }),
+  BlockUrl: site => ({
+    id: "menu_action_dismiss",
+    icon: "dismiss",
+    action: ac.SendToMain({
+      type: at.BLOCK_URL,
+      data: site.url
+    }),
+    userEvent: "BLOCK"
+  }),
+  DeleteUrl: site => ({
+    id: "menu_action_delete",
+    icon: "delete",
+    action: {
+      type: at.DIALOG_OPEN,
+      data: {
+        onConfirm: [ac.SendToMain({ type: at.DELETE_HISTORY_URL, data: site.url }), ac.UserEvent({ event: "DELETE" })],
+        body_string_id: ["confirm_history_delete_p1", "confirm_history_delete_notice_p2"],
+        confirm_button_string_id: "menu_action_delete"
+      }
+    },
+    userEvent: "DIALOG_OPEN"
+  }),
+  PinTopSite: (site, index) => ({
+    id: "menu_action_pin",
+    icon: "pin",
+    action: ac.SendToMain({
+      type: at.TOP_SITES_PIN,
+      data: { site: { url: site.url, title: shortURL(site) }, index }
+    }),
+    userEvent: "PIN"
+  }),
+  UnpinTopSite: site => ({
+    id: "menu_action_unpin",
+    icon: "unpin",
+    action: ac.SendToMain({
+      type: at.TOP_SITES_UNPIN,
+      data: { site: { url: site.url } }
+    }),
+    userEvent: "UNPIN"
+  }),
+  SaveToPocket: site => ({
+    id: "menu_action_save_to_pocket",
+    icon: "pocket",
+    action: ac.SendToMain({
+      type: at.SAVE_TO_POCKET,
+      data: { site: { url: site.url, title: site.title } }
+    }),
+    userEvent: "SAVE_TO_POCKET"
+  })
 };
 
+module.exports.CheckBookmark = site => site.bookmarkGuid ? module.exports.RemoveBookmark(site) : module.exports.AddBookmark(site);
+module.exports.CheckPinTopSite = (site, index) => site.isPinned ? module.exports.UnpinTopSite(site) : module.exports.PinTopSite(site, index);
+
 /***/ }),
-/* 16 */
+/* 17 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 /* globals Services */
 
 
 let usablePerfObj;
 
@@ -1538,43 +1624,43 @@ var _PerfService = function _PerfService
 
 var perfService = new _PerfService();
 module.exports = {
   _PerfService,
   perfService
 };
 
 /***/ }),
-/* 17 */
+/* 18 */
 /***/ (function(module, exports) {
 
 module.exports = Redux;
 
 /***/ }),
-/* 18 */
+/* 19 */
 /***/ (function(module, exports, __webpack_require__) {
 
 "use strict";
 
 
-const React = __webpack_require__(0);
-const ReactDOM = __webpack_require__(8);
-const Base = __webpack_require__(4);
+const React = __webpack_require__(1);
+const ReactDOM = __webpack_require__(9);
+const Base = __webpack_require__(5);
 
 var _require = __webpack_require__(2);
 
 const Provider = _require.Provider;
 
-const initStore = __webpack_require__(6);
+const initStore = __webpack_require__(7);
 
-var _require2 = __webpack_require__(7);
+var _require2 = __webpack_require__(8);
 
 const reducers = _require2.reducers;
 
-const DetectUserSessionStart = __webpack_require__(5);
+const DetectUserSessionStart = __webpack_require__(6);
 
 new DetectUserSessionStart().sendEventOrAddListener();
 
 const store = initStore(reducers);
 
 ReactDOM.render(React.createElement(
   Provider,
   { store: store },
--- a/browser/extensions/activity-stream/data/content/activity-stream.css
+++ b/browser/extensions/activity-stream/data/content/activity-stream.css
@@ -39,16 +39,22 @@ input {
   .icon.icon-dismiss {
     background-image: url("assets/glyph-dismiss-16.svg"); }
   .icon.icon-new-window {
     background-image: url("assets/glyph-newWindow-16.svg"); }
   .icon.icon-new-window-private {
     background-image: url("assets/glyph-newWindow-private-16.svg"); }
   .icon.icon-settings {
     background-image: url("assets/glyph-settings-16.svg"); }
+  .icon.icon-pin {
+    background-image: url("assets/glyph-pin-16.svg"); }
+  .icon.icon-unpin {
+    background-image: url("assets/glyph-unpin-16.svg"); }
+  .icon.icon-pocket {
+    background-image: url("assets/glyph-pocket-16.svg"); }
   .icon.icon-pin-small {
     background-image: url("assets/glyph-pin-12.svg");
     background-size: 12px;
     height: 12px;
     width: 12px; }
 
 html,
 body,
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/data/content/assets/glyph-pin-16.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+  <style>
+    path {
+      fill: #4d4d4d;
+    }
+  </style>
+  <path d="M14.707,13.293,11.414,10l2.293-2.293a1,1,0,0,0,0-1.414A4.384,4.384,0,0,0,10.586,5h-.172A2.415,2.415,0,0,1,8,2.586V2a1,1,0,0,0-1.707-.707l-5,5A1,1,0,0,0,2,8h.586A2.415,2.415,0,0,1,5,10.414v.169a4.036,4.036,0,0,0,1.337,3.166,1,1,0,0,0,1.37-.042L10,11.414l3.293,3.293a1,1,0,0,0,1.414-1.414ZM7.129,11.456A2.684,2.684,0,0,1,7,10.583v-.169A4.386,4.386,0,0,0,5.708,7.293,4.414,4.414,0,0,0,4.136,6.278L6.279,4.136A4.4,4.4,0,0,0,7.292,5.707,4.384,4.384,0,0,0,10.414,7h.172a2.4,2.4,0,0,1,.848.152Z"/>
+</svg>
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/data/content/assets/glyph-pocket-16.svg
@@ -0,0 +1,6 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+  <path fill="context-fill" d="M8 15a8 8 0 0 1-8-8V3a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4a8 8 0 0 1-8 8zm3.985-10.032a.99.99 0 0 0-.725.319L7.978 8.57 4.755 5.336A.984.984 0 0 0 4 4.968a1 1 0 0 0-.714 1.7l-.016.011 3.293 3.306.707.707a1 1 0 0 0 1.414 0l.707-.707L12.7 6.679a1 1 0 0 0-.715-1.711z"/>
+</svg>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/browser/extensions/activity-stream/data/content/assets/glyph-unpin-16.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+  <style>
+    path {
+      fill: #4d4d4d;
+    }
+  </style>
+  <g>
+    <path d="M11.414,10l2.293-2.293a1,1,0,0,0,0-1.414,4.418,4.418,0,0,0-.8-.622L11.425,7.15l.008,0-4.3,4.3,0-.017-1.48,1.476a3.865,3.865,0,0,0,.692.834,1,1,0,0,0,1.37-.042L10,11.414l3.293,3.293a1,1,0,0,0,1.414-1.414Z"/>
+    <path d="M14.707,1.293a1,1,0,0,0-1.414,0L9.7,4.882A2.382,2.382,0,0,1,8,2.586V2a1,1,0,0,0-1.707-.707l-5,5A1,1,0,0,0,2,8h.586a2.382,2.382,0,0,1,2.3,1.7L1.293,13.293a1,1,0,1,0,1.414,1.414l12-12A1,1,0,0,0,14.707,1.293Zm-9,6A4.414,4.414,0,0,0,4.136,6.278L6.279,4.136A4.4,4.4,0,0,0,7.292,5.707a4.191,4.191,0,0,0,.9.684l-1.8,1.8A4.2,4.2,0,0,0,5.708,7.293Z"/>
+  </g>
+</svg>
--- a/browser/extensions/activity-stream/data/locales.json
+++ b/browser/extensions/activity-stream/data/locales.json
@@ -131,30 +131,38 @@
     "type_label_topic": "Tema",
     "welcome_title": "Bienllegáu/ada a la llingüeta nueva",
     "welcome_body": "Firefox usará esti espaciu p'amosate los marcadores, artículos, vídeos y páxines más relevantes de los que visitares apocayá, asina pues volver a ello de mou cenciellu."
   },
   "az": {
     "newtab_page_title": "Yeni Vərəq",
     "default_label_loading": "Yüklənir…",
     "header_top_sites": "Qabaqcıl Saytlar",
-    "header_highlights": "Seçilmişlər",
+    "header_stories": "Qabaqcıl Hekayələr",
+    "header_visit_again": "Təkrar ziyarət et",
+    "header_bookmarks": "Son Əlfəcinlər",
+    "header_bookmarks_placeholder": "Hələlik heç əlfəcininiz yoxdur.",
+    "header_stories_from": "qaynaq:",
     "type_label_visited": "Ziyarət edilib",
     "type_label_bookmarked": "Əlfəcinlənib",
     "type_label_synced": "Digər cihazdan sync edilib",
+    "type_label_recommended": "Populyar",
     "type_label_open": "Açıq",
     "type_label_topic": "Mövzu",
     "menu_action_bookmark": "Əlfəcinlə",
     "menu_action_remove_bookmark": "Əlfəcini sil",
     "menu_action_copy_address": "Ünvanı köçür",
     "menu_action_email_link": "Keçidi e-poçt ilə göndər…",
     "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",
+    "menu_action_save_to_pocket": "Pocket-ə Saxla",
     "search_for_something_with": "{search_term} üçün bununla axtar:",
     "search_button": "Axtar",
     "search_header": "{search_engine_name} Axtarış",
     "search_web_placeholder": "İnternetdə Axtar",
     "search_settings": "Axtarış Tənzimləmələrini Dəyiş",
     "welcome_title": "Yeni vərəqə xoş gəldiniz",
     "welcome_body": "Firefox bu səhifədə ən uyğun əlfəcin, məqalə, video və son ziyarət etdiyiniz səhifələri göstərərək onları rahat tapmağınıza kömək edəcək.",
     "welcome_label": "Seçilmişləriniz təyin edilir",
@@ -165,27 +173,41 @@
     "settings_pane_button_label": "Yeni Vərəq səhifənizi özəlləşdirin",
     "settings_pane_header": "Yeni Vərəq Nizamlamaları",
     "settings_pane_body": "Yeni vərəq açdığınızda nə görəcəyinizi seçin.",
     "settings_pane_search_header": "Axtar",
     "settings_pane_search_body": "Yeni vərəqinizdən Web-də axtarış edin.",
     "settings_pane_topsites_header": "Qabaqcıl Saytlar",
     "settings_pane_topsites_body": "Ən çox ziyarət etdiyiniz saytları görün.",
     "settings_pane_topsites_options_showmore": "İki sətir göstər",
-    "settings_pane_highlights_header": "Seçilmişlər",
-    "settings_pane_highlights_body": "Son gəzmə tarixçəniz və yeni yaradılar əlfəcinlərinizə göz gəzdirin.",
+    "settings_pane_bookmarks_header": "Son Əlfəcinlər",
+    "settings_pane_visit_again_header": "Təkrar ziyarət et",
+    "settings_pane_pocketstories_header": "Qabaqcıl Hekayələr",
     "settings_pane_done_button": "Oldu",
     "edit_topsites_button_text": "Redaktə et",
     "edit_topsites_button_label": "Qabaqcıl Saytlar bölümünüzü fərdiləşdirin",
     "edit_topsites_showmore_button": "Daha çox göstər",
     "edit_topsites_showless_button": "Daha az göstər",
     "edit_topsites_done_button": "Oldu",
     "edit_topsites_pin_button": "Bu saytı sabitlə",
+    "edit_topsites_unpin_button": "Bu saytı çıxart",
     "edit_topsites_edit_button": "Bu saytı düzəlt",
-    "edit_topsites_dismiss_button": "Bu saytı çıxart"
+    "edit_topsites_dismiss_button": "Bu saytı çıxart",
+    "edit_topsites_add_button": "Əlavə et",
+    "topsites_form_add_header": "Yeni Qabaqcıl Saytlar",
+    "topsites_form_edit_header": "Qabaqcıl Saytları Dəyişdir",
+    "topsites_form_title_placeholder": "Başlıq daxil et",
+    "topsites_form_url_placeholder": "Ünvanı yazın və ya yapışdırın",
+    "topsites_form_add_button": "Əlavə et",
+    "topsites_form_save_button": "Saxla",
+    "topsites_form_cancel_button": "Ləğv et",
+    "topsites_form_url_validation": "Doğru ünvan tələb olunur",
+    "pocket_read_more": "Məşhur Mövzular:",
+    "pocket_read_even_more": "Daha çox hekayə gör",
+    "pocket_send_feedback": "Əks-əlaqə göndər"
   },
   "be": {
     "newtab_page_title": "Новая картка",
     "default_label_loading": "Загрузка…",
     "header_top_sites": "Папулярныя сайты",
     "header_highlights": "Выбранае",
     "header_stories": "Галоўныя навіны",
     "header_stories_from": "ад",
@@ -252,33 +274,39 @@
     "pocket_feedback_header": "Лепшае з Сеціва, што адабралі больш за 25 мільёнаў чалавек.",
     "pocket_feedback_body": "Pocket, частка сям'і Mozilla, дапаможа падключыць вас да якаснага зместу, які вы можаце не знайсці іншым чынам.",
     "pocket_send_feedback": "Даслаць водгук"
   },
   "bg": {
     "newtab_page_title": "Нов раздел",
     "default_label_loading": "Зареждане…",
     "header_top_sites": "Най-посещавани",
-    "header_highlights": "Акценти",
     "header_stories": "Популярни",
+    "header_visit_again": "Посещаване",
+    "header_bookmarks": "Последни отметки",
+    "header_bookmarks_placeholder": "Все още нямате отметки.",
     "header_stories_from": "от",
     "type_label_visited": "Посетена",
     "type_label_bookmarked": "Отметната",
     "type_label_synced": "Синхронизирана от друго устройство",
     "type_label_recommended": "Тенденции",
     "type_label_open": "Отваряне",
     "type_label_topic": "Тема",
     "menu_action_bookmark": "Отметка",
     "menu_action_remove_bookmark": "Премахване на отметка",
     "menu_action_copy_address": "Копиране на адрес",
     "menu_action_email_link": "Препратка по ел. поща…",
     "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",
     "search_for_something_with": "Търсене на {search_term} с:",
     "search_button": "Търсене",
     "search_header": "Търсене с {search_engine_name}",
     "search_web_placeholder": "Търсене в интернет",
     "search_settings": "Настройки на търсене",
     "welcome_title": "Добре дошли в нов раздел",
     "welcome_body": "Firefox ще използва това място, за да ви покаже най-подходящите отметки, статии, видео и страници, които сте посетили наскоро, така че да се върнете към тях лесно.",
@@ -290,18 +318,20 @@
     "settings_pane_button_label": "Настройки на новия раздел",
     "settings_pane_header": "Настройки на нов раздел",
     "settings_pane_body": "Изберете какво да виждате при отваряне на нов раздел.",
     "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_body": "Поглед назад към скорошната историята на разглеждане и последно направените отметки.",
+    "settings_pane_bookmarks_header": "Последни отметки",
+    "settings_pane_bookmarks_body": "Всички нови отметки на едно място.",
+    "settings_pane_visit_again_header": "Посещаване",
+    "settings_pane_visit_again_body": "Firefox ще ви показва части от вашата история на разглеждане, към която бихте желали да се върнете или запомните.",
     "settings_pane_pocketstories_header": "Популярни",
     "settings_pane_pocketstories_body": "Pocket, част от семейството на Mozilla, ще ви помогне да намерите висококачествено съдържанието, което може да не сте открили до сега.",
     "settings_pane_done_button": "Готово",
     "edit_topsites_button_text": "Редактиране",
     "edit_topsites_button_label": "Настройки на най-посещаваните",
     "edit_topsites_showmore_button": "Повече",
     "edit_topsites_showless_button": "По-малко",
     "edit_topsites_done_button": "Готово",
@@ -323,30 +353,40 @@
     "pocket_feedback_header": "Най-доброто от интернет, подбрано от над 25 милиона души.",
     "pocket_feedback_body": "Pocket, част от семейството на Mozilla, ще ви помогне да намерите висококачествено съдържанието, което може да не сте открили до сега.",
     "pocket_send_feedback": "Обратна връзка"
   },
   "bn-BD": {
     "newtab_page_title": "নতুন ট্যাব",
     "default_label_loading": "লোড হচ্ছে…",
     "header_top_sites": "শীর্ঘ সাইট",
-    "header_highlights": "হাইলাইট",
+    "header_stories": "শীর্ষ গল্প",
+    "header_visit_again": "পুনরায় ভিজিট করুন",
+    "header_bookmarks": "সাম্প্রতিক বুকমার্ক",
+    "header_bookmarks_placeholder": "এখনও কোন বুকমার্ক নেই।",
+    "header_stories_from": "থেকে",
     "type_label_visited": "পরিদর্শিত",
     "type_label_bookmarked": "বুকমার্ক করা হয়েছে",
     "type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে",
+    "type_label_recommended": "ঝোঁক",
     "type_label_open": "খোলা",
     "type_label_topic": "টপিক",
     "menu_action_bookmark": "বুকমার্ক",
     "menu_action_remove_bookmark": "বুকমার্ক মুছে দিন",
     "menu_action_copy_address": "ঠিকানা কপি করুন",
     "menu_action_email_link": "ইমেইল লিঙ্ক…",
     "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 এ সংরক্ষণ করুন",
     "search_for_something_with": "{search_term} এর জন্য খুঁজুন সাথে:",
     "search_button": "অনুসন্ধান",
     "search_header": "{search_engine_name} খুঁজুন",
     "search_web_placeholder": "ওয়েবে সন্ধান করুন",
     "search_settings": "সার্চ সেটিংস বদল করুন",
     "welcome_title": "নতুন ট্যাবে আপনাকে স্বাগতম",
     "welcome_body": "আপনার সাথে মিলে এমন বুর্কমার্ক, নিবন্ধ, ভিডিও এবং পাতা যেগুলো আপনি সম্প্রতি ভ্রমণ করেছে তা Firefox এই জায়গায় দেখাবে, যাতে আপনি সেগুলো দ্রুত খুঁজে পান।",
     "welcome_label": "আপনার হাইলাইট সমূহ চিহ্নিত করুন",
@@ -357,27 +397,41 @@
     "settings_pane_button_label": "আপনার নতুন ট্যাব পেজটি কাস্টমাইজ করুন",
     "settings_pane_header": "নতুন ট্যাব পছন্দসমূহ",
     "settings_pane_body": "আপনি যা দেখতে চান তা পছন্দ করুন যখন আপনি নতুন ট্যাব খোলেন।",
     "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_body": "আপনার বিগত ব্রাউজিং ইতিহাস এবং নতুনভাবে তৈরি করা বুর্কমার্কগুলো দেখুন।",
+    "settings_pane_bookmarks_header": "সাম্প্রতিক বুকমার্ক",
+    "settings_pane_bookmarks_body": "আপনার নতুন করা বুকমার্ক সহজ অবস্থানে রাখা হয়েছে।",
+    "settings_pane_visit_again_header": "পুনরায় ভিজিট করুন",
+    "settings_pane_pocketstories_header": "শীর্ষ গল্প",
     "settings_pane_done_button": "হয়েছে",
     "edit_topsites_button_text": "সম্পাদনা",
     "edit_topsites_button_label": "আপনার টপ সাইট সেকশন কাস্টমাইজ করুন",
     "edit_topsites_showmore_button": "আরও দেখান",
     "edit_topsites_showless_button": "কম দেখান",
     "edit_topsites_done_button": "হয়েছে",
     "edit_topsites_pin_button": "সাইটটি পিন করুন",
+    "edit_topsites_unpin_button": "এই সাইট আনপিন করুন",
     "edit_topsites_edit_button": "সাইটটি সম্পাদনা করুন",
-    "edit_topsites_dismiss_button": "সাইটটি মুছে দিন"
+    "edit_topsites_dismiss_button": "সাইটটি মুছে দিন",
+    "edit_topsites_add_button": "যোগ",
+    "topsites_form_add_header": "নতুন শীর্ষ সাইট",
+    "topsites_form_edit_header": "শীর্ষ সাইট সম্পাদনা করুন",
+    "topsites_form_title_placeholder": "নাম দিন",
+    "topsites_form_add_button": "যোগ",
+    "topsites_form_save_button": "সংরক্ষণ",
+    "topsites_form_cancel_button": "বাতিল",
+    "topsites_form_url_validation": "কার্যকর URL প্রয়োজন",
+    "pocket_read_more": "জনপ্রিয় বিষয়:",
+    "pocket_read_even_more": "আরও গল্প দেখুন",
+    "pocket_send_feedback": "প্রতিক্রিয়া জানান"
   },
   "bn-IN": {},
   "br": {},
   "bs": {},
   "ca": {
     "newtab_page_title": "Pestanya nova",
     "default_label_loading": "S'està carregant…",
     "header_top_sites": "Llocs principals",
@@ -427,33 +481,39 @@
     "edit_topsites_edit_button": "Edita aquest lloc",
     "edit_topsites_dismiss_button": "Elimina aquest lloc"
   },
   "cak": {},
   "cs": {
     "newtab_page_title": "Nový panel",
     "default_label_loading": "Načítání…",
     "header_top_sites": "Top stránky",
-    "header_highlights": "Vybrané",
     "header_stories": "Nejlepší příběhy",
+    "header_visit_again": "Znovu navštívit",
+    "header_bookmarks": "Nedávno přidané záložky",
+    "header_bookmarks_placeholder": "Zatím nemáte uložené žádné záložky.",
     "header_stories_from": "ze šlužby",
     "type_label_visited": "Navštívené",
     "type_label_bookmarked": "V záložkách",
     "type_label_synced": "Synchronizované z jiného zařízení",
     "type_label_recommended": "Populární",
     "type_label_open": "Otevřené",
     "type_label_topic": "Téma",
     "menu_action_bookmark": "Přidat do záložek",
     "menu_action_remove_bookmark": "Odebrat záložku",
     "menu_action_copy_address": "Zkopírovat adresu",
     "menu_action_email_link": "Poslat odkaz…",
     "menu_action_open_new_window": "Otevřít v novém okně",
     "menu_action_open_private_window": "Otevřít v novém anonymním okně",
     "menu_action_dismiss": "Skrýt",
     "menu_action_delete": "Smazat z historie",
+    "menu_action_pin": "Připnout",
+    "menu_action_unpin": "Odepnout",
+    "confirm_history_delete_p1": "Opravdu chcete smazat všechny výskyty této stránky z vaší historie?",
+    "confirm_history_delete_notice_p2": "Tuto akci nelze vzít zpět.",
     "menu_action_save_to_pocket": "Uložit do služby Pocket",
     "search_for_something_with": "Vyhledat {search_term} s:",
     "search_button": "Hledat",
     "search_header": "Vyhledat pomocí {search_engine_name}",
     "search_web_placeholder": "Hledat na webu",
     "search_settings": "Změnit nastavení vyhledávání",
     "welcome_title": "Vítejte na stránce nového panelu",
     "welcome_body": "Tady Firefox zobrazí nejrelevantnější záložky, články, videa a stránky, které jste nedávno navštívili. Návrat k nim je tak velmi jednoduchý.",
@@ -465,18 +525,20 @@
     "settings_pane_button_label": "Přizpůsobení stránky nového panelu",
     "settings_pane_header": "Předvolby nového panelu",
     "settings_pane_body": "Vyberte si, co chcete vidět při otevření nového panelu.",
     "settings_pane_search_header": "Vyhledávání",
     "settings_pane_search_body": "Vyhledávání na webu rovnou ze stránky nového panelu.",
     "settings_pane_topsites_header": "Top stránky",
     "settings_pane_topsites_body": "Přístup ke stránkám, které nejčastěji navštěvujete.",
     "settings_pane_topsites_options_showmore": "Zobrazit dva řádky",
-    "settings_pane_highlights_header": "Vybrané",
-    "settings_pane_highlights_body": "Pohled zpět na vaši nedávnou historii a nově vytvořené záložky.",
+    "settings_pane_bookmarks_header": "Nedávno přidané záložky",
+    "settings_pane_bookmarks_body": "Vaše nově přidané záložky na místě hned po ruce.",
+    "settings_pane_visit_again_header": "Znovu navštívit",
+    "settings_pane_visit_again_body": "Firefox vám ukáže některé položky z vaší historie prohlížení, které byste si mohli chtít připomenout nebo se k nim vrátit.",
     "settings_pane_pocketstories_header": "Nejlepší příběhy",
     "settings_pane_pocketstories_body": "Pocket, služba od Mozilly, vám pomůže najít vysoce kvalitní obsah, který byste jinak neobjevili.",
     "settings_pane_done_button": "Hotovo",
     "edit_topsites_button_text": "Upravit",
     "edit_topsites_button_label": "Upravit oddíl Top stránek",
     "edit_topsites_showmore_button": "Zobrazit více",
     "edit_topsites_showless_button": "Zobrazit méně",
     "edit_topsites_done_button": "Hotovo",
@@ -619,33 +681,39 @@
     "pocket_feedback_header": "Det bedste fra nettet, udvalgt af mere end 25 millioner mennesker.",
     "pocket_feedback_body": "Pocket, en del af Mozilla-familien, hjælper dig med at opdage indhold af høj kvalitet, som du måske ellers ikke ville have fundet.",
     "pocket_send_feedback": "Send feedback"
   },
   "de": {
     "newtab_page_title": "Neuer Tab",
     "default_label_loading": "Wird geladen…",
     "header_top_sites": "Meistbesuchte Seiten",
-    "header_highlights": "Wichtige Seiten",
     "header_stories": "Meistgelesene Meldungen",
+    "header_visit_again": "Erneut besuchen",
+    "header_bookmarks": "Neue Lesezeichen",
+    "header_bookmarks_placeholder": "Sie haben noch keine Lesezeichen.",
     "header_stories_from": "von",
     "type_label_visited": "Besucht",
     "type_label_bookmarked": "Lesezeichen",
     "type_label_synced": "Von anderem Gerät synchronisiert",
     "type_label_recommended": "Populär",
     "type_label_open": "Geöffnet",
     "type_label_topic": "Thema",
     "menu_action_bookmark": "Lesezeichen",
     "menu_action_remove_bookmark": "Lesezeichen entfernen",
     "menu_action_copy_address": "Adresse kopieren",
     "menu_action_email_link": "Link per E-Mail versenden…",
     "menu_action_open_new_window": "In neuem Fenster öffnen",
     "menu_action_open_private_window": "In neuem privaten Fenster öffnen",
     "menu_action_dismiss": "Schließen",
     "menu_action_delete": "Aus Chronik löschen",
+    "menu_action_pin": "Anheften",
+    "menu_action_unpin": "Lösen",
+    "confirm_history_delete_p1": "Soll wirklich jede Instanz dieser Seite aus Ihrer Chronik gelöscht werden?",
+    "confirm_history_delete_notice_p2": "Diese Aktion kann nicht rückgängig gemacht werden.",
     "menu_action_save_to_pocket": "Bei Pocket speichern",
     "search_for_something_with": "Nach {search_term} suchen mit:",
     "search_button": "Suchen",
     "search_header": "{search_engine_name}-Suche",
     "search_web_placeholder": "Das Web durchsuchen",
     "search_settings": "Sucheinstellungen ändern",
     "welcome_title": "Willkommen im neuen Tab",
     "welcome_body": "Firefox nutzt diesen Bereich, um Ihnen Ihre wichtigsten Lesezeichen, Artikel, Videos und kürzlich besuchten Seiten anzuzeigen, damit Sie diese einfach wiederfinden.",
@@ -657,18 +725,20 @@
     "settings_pane_button_label": "Neuer-Tab-Seite anpassen",
     "settings_pane_header": "Einstellungen zum neuen Tab",
     "settings_pane_body": "Entscheiden Sie, was in einem neuen Tab angezeigt wird.",
     "settings_pane_search_header": "Suche",
     "settings_pane_search_body": "Suchen Sie aus einem neuen Tab im Internet.",
     "settings_pane_topsites_header": "Meistbesuchte Seiten",
     "settings_pane_topsites_body": "Schneller Zugriff auf Ihre meistbesuchten Websites.",
     "settings_pane_topsites_options_showmore": "Zwei Spalten anzeigen",
-    "settings_pane_highlights_header": "Meistbesuchte Seiten",
-    "settings_pane_highlights_body": "Übersicht über Ihre zuletzt besuchten Seiten und neuen Lesezeichen.",
+    "settings_pane_bookmarks_header": "Neue Lesezeichen",
+    "settings_pane_bookmarks_body": "Ihre neu erstellten Lesezeichen praktisch an einem Ort.",
+    "settings_pane_visit_again_header": "Erneut besuchen",
+    "settings_pane_visit_again_body": "Firefox zeigt Ihnen Teile Ihrer Surf-Chronik, die Sie sich vielleicht merken oder erneut besuchen möchten.",
     "settings_pane_pocketstories_header": "Meistgelesene Meldungen",
     "settings_pane_pocketstories_body": "Pocket, ein Teil der Mozilla-Familie, hilft Ihnen beim Finden von qualitativ hochwertigen Inhalten, die Sie ansonsten vielleicht nicht gefunden hätten.",
     "settings_pane_done_button": "Fertig",
     "edit_topsites_button_text": "Bearbeiten",
     "edit_topsites_button_label": "Anpassen der meistbesuchten Seiten",
     "edit_topsites_showmore_button": "Mehr anzeigen",
     "edit_topsites_showless_button": "Weniger anzeigen",
     "edit_topsites_done_button": "Fertig",
@@ -690,33 +760,39 @@
     "pocket_feedback_header": "Das Beste aus dem Web, zusammengetragen von 25 Millionen Menschen.",
     "pocket_feedback_body": "Pocket, ein Teil der Mozilla-Familie, hilft Ihnen beim Finden von qualitativ hochwertigen Inhalten, die Sie ansonsten vielleicht nicht gefunden hätten.",
     "pocket_send_feedback": "Feedback senden"
   },
   "dsb": {
     "newtab_page_title": "Nowy rejtark",
     "default_label_loading": "Zacytujo se…",
     "header_top_sites": "Nejcesćej woglědane sedła",
-    "header_highlights": "Wjerški",
     "header_stories": "Nejcesćej pśecytane powěźenki",
+    "header_visit_again": "Hyšći raz se woglědaś",
+    "header_bookmarks": "Nejnowše cytańske znamjenja",
+    "header_bookmarks_placeholder": "Hyšći cytańske znamjenja njamaśo.",
     "header_stories_from": "wót",
     "type_label_visited": "Woglědany",
     "type_label_bookmarked": "Ako cytańske znamje skłaźony",
     "type_label_synced": "Z drugego rěda synchronizěrowany",
     "type_label_recommended": "Popularny",
     "type_label_open": "Wócynjony",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Ako cytańske znamje składowaś",
     "menu_action_remove_bookmark": "Cytańske znamje wótpóraś",
     "menu_action_copy_address": "Adresu kopěrowaś",
     "menu_action_email_link": "Wótkaz e-mailowaś…",
     "menu_action_open_new_window": "W nowem woknje wócyniś",
     "menu_action_open_private_window": "W nowem priwatnem woknje wócyniś",
     "menu_action_dismiss": "Zachyśiś",
     "menu_action_delete": "Z historije lašowaś",
+    "menu_action_pin": "Pśipěś",
+    "menu_action_unpin": "Wótpěś",
+    "confirm_history_delete_p1": "Cośo napšawdu kuždu instancu toś togo boka ze swójeje historije lašowaś?",
+    "confirm_history_delete_notice_p2": "Toś ta akcija njedajo se anulěrowaś.",
     "menu_action_save_to_pocket": "Pla Pocket składowaś",
     "search_for_something_with": "Za {search_term} pytaś z:",
     "search_button": "Pytaś",
     "search_header": "Z {search_engine_name} pytaś",
     "search_web_placeholder": "Web pśepytaś",
     "search_settings": "Pytańske nastajenja změniś",
     "welcome_title": "Witajśo k nowemu rejtarkoju",
     "welcome_body": "Firefox buźo toś ten rum wužywaś, aby waše nejwažnjejše cytańske znamjenja, nastawki, wideo a rowno woglědane boki pokazał, aby mógł se lažko k nim wrośiś.",
@@ -728,18 +804,20 @@
     "settings_pane_button_label": "Bok wašogo nowego rejtarka pśiměriś",
     "settings_pane_header": "Nastajenja nowego rejtarka składowaś",
     "settings_pane_body": "Wubjeŕśo, což cośo wiźeś, gaž nowy rejtark wócynjaśo.",
     "settings_pane_search_header": "Pytaś",
     "settings_pane_search_body": "Pśepytajśo web ze swójogo nowego rejtarka.",
     "settings_pane_topsites_header": "Nejcesćej woglědane sedła",
     "settings_pane_topsites_body": "Wócyńśo websedła, kótarež sćo se nejcesćej woglědał.",
     "settings_pane_topsites_options_showmore": "Dwě smužki pokazaś",
-    "settings_pane_highlights_header": "Wjerški",
-    "settings_pane_highlights_body": "Woglědajśo se nejnowšu pśeglědowańsku historiju a nowo napórane cytańske znamjenja.",
+    "settings_pane_bookmarks_header": "Nejnowše cytańske znamjenja",
+    "settings_pane_bookmarks_body": "Waše nowo załožone cytańske znamjenja ned k ruce.",
+    "settings_pane_visit_again_header": "Hyšći raz se woglědaś",
+    "settings_pane_visit_again_body": "Firefox wam źěle wašeje pśeglědowańskeje historije pokazaś, kótarež cośo se snaź spomnjeś abo na kótarež cośo slědk pśiś.",
     "settings_pane_pocketstories_header": "Nejcesćej pśecytane powěźenki",
     "settings_pane_pocketstories_body": "Pocket, źěl familije Mozilla, buźo pomagaś, was z wopśimjeśim wusokeje kwality zwězowaś, kótaryž njeby wy snaź howac namakał.",
     "settings_pane_done_button": "Gótowo",
     "edit_topsites_button_text": "Wobźěłaś",
     "edit_topsites_button_label": "Pśiměrśo wótrězk swójich nejcesćej woglědanych sedłow",
     "edit_topsites_showmore_button": "Wěcej pokazaś",
     "edit_topsites_showless_button": "Mjenjej pokazaś",
     "edit_topsites_done_button": "Gótowo",
@@ -761,33 +839,39 @@
     "pocket_feedback_header": "Nejlěpše z weba, zezběrane wót wěcej ako 25 milionow luźi.",
     "pocket_feedback_body": "Pocket, źěl familije Mozilla, buźo pomagaś, was z wopśimjeśim wusokeje kwality zwězowaś, kótaryž njeby wy snaź howac namakał.",
     "pocket_send_feedback": "Komentar pósłaś"
   },
   "el": {
     "newtab_page_title": "Νέα καρτέλα",
     "default_label_loading": "Φόρτωση…",
     "header_top_sites": "Κορυφαίες ιστοσελίδες",
-    "header_highlights": "Κορυφαίες στιγμές",
     "header_stories": "Κορυφαίες ιστορίες",
+    "header_visit_again": "Επίσκεψη ξανά",
+    "header_bookmarks": "Πρόσφατοι σελιδοδείκτες",
+    "header_bookmarks_placeholder": "Δεν έχετε κανένα σελιδοδείκτη ακόμα.",
     "header_stories_from": "από",
     "type_label_visited": "Από ιστορικό",
     "type_label_bookmarked": "Από σελιδοδείκτες",
     "type_label_synced": "Συγχρονισμένα από άλλη συσκευή",
     "type_label_recommended": "Τάσεις",
     "type_label_open": "Ανοικτό",
     "type_label_topic": "Θέμα",
     "menu_action_bookmark": "Προσθήκη σελιδοδείκτη",
     "menu_action_remove_bookmark": "Αφαίρεση σελιδοδείκτη",
     "menu_action_copy_address": "Αντιγραφή διεύθυνσης",
     "menu_action_email_link": "Αποστολή συνδέσμου…",
     "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",
     "search_for_something_with": "Αναζήτηση για {search_term} με:",
     "search_button": "Αναζήτηση",
     "search_header": "Αναζήτηση {search_engine_name}",
     "search_web_placeholder": "Αναζήτηση στον ιστό",
     "search_settings": "Αλλαγή ρυθμίσεων αναζήτησης",
     "welcome_title": "Καλώς ορίσατε στη νέα καρτέλα",
     "welcome_body": "Το Firefox θα χρησιμοποιήσει αυτό το χώρο για να εμφανίσει τους πιο σχετικούς σελιδοδείκτες, άρθρα, βίντεο και σελίδες που επισκεφθήκατε πρόσφατα, ώστε να έχετε εύκολη πρόσβαση.",
@@ -799,18 +883,20 @@
     "settings_pane_button_label": "Προσαρμογή της σελίδας Νέας Καρτέλας",
     "settings_pane_header": "Προτιμήσεις νέας καρτέλας",
     "settings_pane_body": "Επιλέξτε τι θα βλέπετε όταν ανοίγετε μια νέα καρτέλα.",
     "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_body": "Επιστρέψτε στο πρόσφατο ιστορικό περιήγησης και τους νέους σας σελιδοδείκτες.",
+    "settings_pane_bookmarks_header": "Πρόσφατοι σελιδοδείκτες",
+    "settings_pane_bookmarks_body": "Οι νέοι σας σελιδοδείκτες σε μια βολική τοποθεσία.",
+    "settings_pane_visit_again_header": "Επίσκεψη ξανά",
+    "settings_pane_visit_again_body": "Το Firefox θα σάς δείξει μέρη του ιστορικού περιήγησής σας που ίσως θέλετε να θυμηθείτε ή να επισκεφθείτε ξανά.",
     "settings_pane_pocketstories_header": "Κορυφαίες ιστορίες",
     "settings_pane_pocketstories_body": "Το Pocket, ένα μέλος της οικογένειας Mozilla, θα σάς βοηθήσει να ανακαλύψετε περιεχόμενο υψηλής ποιότητας που ίσως να μην βρίσκατε διαφορετικά.",
     "settings_pane_done_button": "Τέλος",
     "edit_topsites_button_text": "Επεξεργασία",
     "edit_topsites_button_label": "Προσαρμογή της ενότητας Κορυφαίες Ιστοσελίδες",
     "edit_topsites_showmore_button": "Εμφάνιση περισσότερων",
     "edit_topsites_showless_button": "Εμφάνιση λιγότερων",
     "edit_topsites_done_button": "Τέλος",
@@ -885,32 +971,34 @@
   },
   "en-US": {
     "newtab_page_title": "New Tab",
     "default_label_loading": "Loading…",
     "header_top_sites": "Top Sites",
     "header_stories": "Top Stories",
     "header_visit_again": "Visit Again",
     "header_bookmarks": "Recent Bookmarks",
-    "header_bookmarks_placeholder": "You don't have any bookmarks yet.",
+    "header_bookmarks_placeholder": "You don’t have any bookmarks yet.",
     "header_stories_from": "from",
     "type_label_visited": "Visited",
     "type_label_bookmarked": "Bookmarked",
     "type_label_synced": "Synced from another device",
     "type_label_recommended": "Trending",
     "type_label_open": "Open",
     "type_label_topic": "Topic",
     "menu_action_bookmark": "Bookmark",
     "menu_action_remove_bookmark": "Remove Bookmark",
     "menu_action_copy_address": "Copy Address",
     "menu_action_email_link": "Email Link…",
     "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",
     "search_for_something_with": "Search for {search_term} with:",
     "search_button": "Search",
     "search_header": "{search_engine_name} Search",
     "search_web_placeholder": "Search the Web",
     "search_settings": "Change Search Settings",
@@ -1113,33 +1201,39 @@
     "edit_topsites_pin_button": "Fijar este sitio",
     "edit_topsites_edit_button": "Editar este sitio",
     "edit_topsites_dismiss_button": "Sacar este sitio"
   },
   "es-ES": {
     "newtab_page_title": "Nueva pestaña",
     "default_label_loading": "Cargando…",
     "header_top_sites": "Sitios favoritos",
-    "header_highlights": "Destacados",
     "header_stories": "Historias populares",
+    "header_visit_again": "Visitar de nuevo",
+    "header_bookmarks": "Marcadores recientes",
+    "header_bookmarks_placeholder": "Todavía no tienes ningún marcador.",
     "header_stories_from": "desde",
     "type_label_visited": "Visitados",
     "type_label_bookmarked": "En marcadores",
     "type_label_synced": "Sincronizado desde otro dispositivo",
     "type_label_recommended": "Tendencias",
     "type_label_open": "Abrir",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Marcador",
     "menu_action_remove_bookmark": "Eliminar marcador",
     "menu_action_copy_address": "Copiar dirección",
     "menu_action_email_link": "Enviar enlace…",
     "menu_action_open_new_window": "Abrir en una nueva ventana",
     "menu_action_open_private_window": "Abrir en una nueva ventana privada",
     "menu_action_dismiss": "Ignorar",
     "menu_action_delete": "Eliminar del historial",
+    "menu_action_pin": "Fijar",
+    "menu_action_unpin": "Soltar",
+    "confirm_history_delete_p1": "¿Estás seguro de que quieres eliminar de tu historial todas las instancias de esta página?",
+    "confirm_history_delete_notice_p2": "Esta acción no se puede deshacer.",
     "menu_action_save_to_pocket": "Guardar en Pocket",
     "search_for_something_with": "Buscar {search_term} con:",
     "search_button": "Buscar",
     "search_header": "Búsqueda de {search_engine_name}",
     "search_web_placeholder": "Buscar en la Web",
     "search_settings": "Cambiar ajustes de búsqueda",
     "welcome_title": "Bienvenido a la nueva pestaña",
     "welcome_body": "Firefox utilizará este espacio para mostrarte los marcadores, artículos y vídeos más relevantes y las páginas que has visitado recientemente, para que puedas acceder más rápido.",
@@ -1151,18 +1245,20 @@
     "settings_pane_button_label": "Personalizar la página Nueva pestaña",
     "settings_pane_header": "Preferencias de nueva pestaña",
     "settings_pane_body": "Elige qué quieres ver al abrir una nueva pestaña",
     "settings_pane_search_header": "Buscar",
     "settings_pane_search_body": "Busca en la Web desde tu nueva pestaña.",
     "settings_pane_topsites_header": "Sitios populares",
     "settings_pane_topsites_body": "Accede a las páginas que más visitas.",
     "settings_pane_topsites_options_showmore": "Mostrar dos líneas",
-    "settings_pane_highlights_header": "Resaltados",
-    "settings_pane_highlights_body": "Échale un vistazo al historial de navegación y marcadores más recientes.",
+    "settings_pane_bookmarks_header": "Marcadores recientes",
+    "settings_pane_bookmarks_body": "Tus marcadores recién creados, fácilmente accesibles.",
+    "settings_pane_visit_again_header": "Visitar de nuevo",
+    "settings_pane_visit_again_body": "Firefox te mostrará partes de tu historial de navegación que te gustaría recordar o volver a visitar.",
     "settings_pane_pocketstories_header": "Historias populares",
     "settings_pane_pocketstories_body": "Pocket, que forma parte de la familia de Mozilla, te ayudará a encontrar contenido de alta calidad que puede que no encuentres de otra forma.",
     "settings_pane_done_button": "Hecho",
     "edit_topsites_button_text": "Editar",
     "edit_topsites_button_label": "Personalizar la sección de Sitios populares",
     "edit_topsites_showmore_button": "Mostrar más",
     "edit_topsites_showless_button": "Mostrar menos",
     "edit_topsites_done_button": "Hecho",
@@ -1184,33 +1280,37 @@
     "pocket_feedback_header": "Lo mejor de la web, confirmado por más de 25 millones de personas.",
     "pocket_feedback_body": "Pocket, que forma parte de la familia de Mozilla, te ayudará a encontrar contenido de alta calidad que puede que no encuentres de otra forma.",
     "pocket_send_feedback": "Enviar comentario"
   },
   "es-MX": {
     "newtab_page_title": "Nueva pestaña",
     "default_label_loading": "Cargando…",
     "header_top_sites": "Sitios favoritos",
-    "header_highlights": "Destacados",
     "header_stories": "Historias populares",
+    "header_visit_again": "Visitar de nuevo",
+    "header_bookmarks": "Marcadores recientes",
+    "header_bookmarks_placeholder": "Aún no tienes ningún marcador.",
     "header_stories_from": "de",
     "type_label_visited": "Visitados",
     "type_label_bookmarked": "Marcados",
     "type_label_synced": "Sincronizado desde otro dispositivo",
     "type_label_recommended": "Tendencias",
     "type_label_open": "Abrir",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Marcador",
     "menu_action_remove_bookmark": "Eliminar marcador",
     "menu_action_copy_address": "Copiar dirección",
     "menu_action_email_link": "Enlace por correo electrónico…",
     "menu_action_open_new_window": "Abrir en una Nueva Ventana",
     "menu_action_open_private_window": "Abrir en una Nueva Ventana Privada",
     "menu_action_dismiss": "Descartar",
     "menu_action_delete": "Eliminar del historial",
+    "confirm_history_delete_p1": "¿Estás seguro de que quieres eliminar de tu historial todas las instancias de esta página?",
+    "confirm_history_delete_notice_p2": "Esta acción no se puede deshacer.",
     "menu_action_save_to_pocket": "Guardar en Pocket",
     "search_for_something_with": "Buscar {search_term} con:",
     "search_button": "Buscar",
     "search_header": "Buscar {search_engine_name}",
     "search_web_placeholder": "Buscar en la Web",
     "search_settings": "Cambiar configuraciones de búsqueda",
     "welcome_title": "Bienvenido a una nueva pestaña",
     "welcome_body": "Firefox usará este espacio para mostrar tus marcadores, artículos, videos y páginas más relevantes que se hayan visitado para poder volver más fácilmente.",
@@ -1222,18 +1322,20 @@
     "settings_pane_button_label": "Personalizar tu página de nueva pestaña",
     "settings_pane_header": "Preferencias de nueva pestaña",
     "settings_pane_body": "Elige lo que ves al abrir una nueva pestaña.",
     "settings_pane_search_header": "Buscar",
     "settings_pane_search_body": "Busca en la web de tu nueva pestaña.",
     "settings_pane_topsites_header": "Sitios populares",
     "settings_pane_topsites_body": "Accede a los sitios web que más visitas.",
     "settings_pane_topsites_options_showmore": "Mostrar dos filas",
-    "settings_pane_highlights_header": "Destacados",
-    "settings_pane_highlights_body": "Ve tu historial de navegación reciente y tus marcadores recién creados.",
+    "settings_pane_bookmarks_header": "Marcadores recientes",
+    "settings_pane_bookmarks_body": "Tus marcadores recién creados en un solo lugar.",
+    "settings_pane_visit_again_header": "Visitar de nuevo",
+    "settings_pane_visit_again_body": "Firefox te mostrará partes de tu historial de navegación que a lo mejor te gustaría recordar o volver a visitar.",
     "settings_pane_pocketstories_header": "Historias populares",
     "settings_pane_pocketstories_body": "Pocket, miembro de la familia Mozilla, te ayuda a conectarte con contenido de alta calidad que tal vez no hubieras encontrado de otra forma.",
     "settings_pane_done_button": "Listo",
     "edit_topsites_button_text": "Editar",
     "edit_topsites_button_label": "Personalizar la sección de tus sitios preferidos",
     "edit_topsites_showmore_button": "Mostrar más",
     "edit_topsites_showless_button": "Mostrar menos",
     "edit_topsites_done_button": "Listo",
@@ -1327,33 +1429,39 @@
     "pocket_feedback_body": "Pocket, osana Mozilla perekonnast, aitab sul leida kvaliteetset sisu, mida sa muidu poleks ehk leidnud.",
     "pocket_send_feedback": "Saada tagasisidet"
   },
   "eu": {},
   "fa": {
     "newtab_page_title": "زبانه جدید",
     "default_label_loading": "در حال بارگیری…",
     "header_top_sites": "سایت‌های برتر",
-    "header_highlights": "برجسته‌ها",
     "header_stories": "برترین داستان‌ها",
+    "header_visit_again": "مشاهده دوباره",
+    "header_bookmarks": "نشانک‌های اخیر",
+    "header_bookmarks_placeholder": "هنوز هیچ نشانکی ندارید.",
     "header_stories_from": "از",
     "type_label_visited": "مشاهده شده",
     "type_label_bookmarked": "نشانک شده",
     "type_label_synced": "هم‌گام شده از دستگاهی دیگر",
     "type_label_recommended": "موضوعات داغ",
     "type_label_open": "باز کردن",
     "type_label_topic": "موضوع",
     "menu_action_bookmark": "نشانک",
     "menu_action_remove_bookmark": "حذف نشانک",
     "menu_action_copy_address": "رونوشت از آدرس",
     "menu_action_email_link": "ارسال پیوند…",
     "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",
     "search_for_something_with": "جست‌وجو برای {search_term} با:",
     "search_button": "جست‌وجو",
     "search_header": "جست‌وجو {search_engine_name}",
     "search_web_placeholder": "جست‌وجوی وب",
     "search_settings": "تغییر تنظیمات جست‌وجو",
     "welcome_title": "به زبانه جدید خوش‌آمدید",
     "welcome_body": "فایرفاکس از این فضا برای نمایش نشانک‌ها، مقالات، ویدئوها و صفحات مرتبطی که به‌تازگی مشاهده کرده‌اید استفاده می‌کند، تا شما به راحتی دوباره به آنها دسترسی داشته باشید.",
@@ -1365,18 +1473,20 @@
     "settings_pane_button_label": "صفحهٔ زبانه جدید را سفارشی کنید",
     "settings_pane_header": "تنظیمات زبانه جدید",
     "settings_pane_body": "انتخاب کنید که چه چیزی هنگام باز کردن زبانه جدید ببینید.",
     "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_body": "نگاهی دوباره به سابقه مرور اخیرتان و نشانک‌های تازه ایجاد شده.",
+    "settings_pane_bookmarks_header": "نشانک‌های اخیر",
+    "settings_pane_bookmarks_body": "به‌تازگی شما نشانک‌هایی را در یک محل مناسب ساخته‌اید.",
+    "settings_pane_visit_again_header": "مشاهده دوباره",
+    "settings_pane_visit_again_body": "فایرفاکس بخش‌هایی از تاریخ‌چه مرورتان را که ممکن است بخواهید به یاد داشته باشید یا به آن‌ها بازگردید به شما نشان خواهد داد.",
     "settings_pane_pocketstories_header": "برترین داستان‌ها",
     "settings_pane_pocketstories_body": "Pocket، بخشی از خانواده موزیلا، کمک خواهد کرد تا به محتوایی با کیفیت بالا مرتبط شوید که در غیر این صورت ممکن بود پیدا نکنید.",
     "settings_pane_done_button": "انجام شد",
     "edit_topsites_button_text": "ويرايش",
     "edit_topsites_button_label": "قسمت سایت‌های برتر را سفارشی کنید",
     "edit_topsites_showmore_button": "نمایش بیشتر",
     "edit_topsites_showless_button": "نمایش کمتر",
     "edit_topsites_done_button": "انجام شد",
@@ -1440,33 +1550,39 @@
     "edit_topsites_pin_button": "Kiinnitä tämä sivusto",
     "edit_topsites_edit_button": "Muokkaa tätä sivustoa",
     "edit_topsites_dismiss_button": "Hylkää tämä sivusto"
   },
   "fr": {
     "newtab_page_title": "Nouvel onglet",
     "default_label_loading": "Chargement…",
     "header_top_sites": "Sites les plus visités",
-    "header_highlights": "Éléments-clés",
     "header_stories": "Articles populaires",
+    "header_visit_again": "Visiter à nouveau",
+    "header_bookmarks": "Marque-pages récents",
+    "header_bookmarks_placeholder": "Vous ne possédez aucun marque-page pour l’instant.",
     "header_stories_from": "par",
     "type_label_visited": "Visité",
     "type_label_bookmarked": "Ajouté aux marque-pages",
     "type_label_synced": "Synchronisé depuis un autre appareil",
     "type_label_recommended": "Tendance",
     "type_label_open": "Ouvert",
     "type_label_topic": "Thème",
     "menu_action_bookmark": "Marquer cette page",
     "menu_action_remove_bookmark": "Supprimer le marque-page",
     "menu_action_copy_address": "Copier l’adresse",
     "menu_action_email_link": "Envoyer un lien par courriel…",
     "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",
     "menu_action_delete": "Supprimer de l’historique",
+    "menu_action_pin": "Épingler",
+    "menu_action_unpin": "Détacher",
+    "confirm_history_delete_p1": "Voulez-vous vraiment supprimer de l’historique toutes les occurrences de cette page ?",
+    "confirm_history_delete_notice_p2": "Cette action est irréversible.",
     "menu_action_save_to_pocket": "Enregistrer dans Pocket",
     "search_for_something_with": "Recherche pour {search_term} avec :",
     "search_button": "Rechercher",
     "search_header": "Recherche {search_engine_name}",
     "search_web_placeholder": "Rechercher sur le Web",
     "search_settings": "Paramètres de recherche",
     "welcome_title": "Bienvenue sur la page Nouvel onglet",
     "welcome_body": "Firefox utilisera cet espace pour afficher des éléments pertinents, comme des marque-pages, des articles, des vidéos, et des pages que vous avez visitées, afin que vous les retrouviez facilement.",
@@ -1478,18 +1594,20 @@
     "settings_pane_button_label": "Personnaliser la page Nouvel onglet",
     "settings_pane_header": "Préférences Nouvel onglet",
     "settings_pane_body": "Choisissez ce qui s’affiche à l’ouverture d’un nouvel onglet.",
     "settings_pane_search_header": "Recherche",
     "settings_pane_search_body": "Effectuez une recherche sur le Web à partir du nouvel onglet.",
     "settings_pane_topsites_header": "Sites les plus visités",
     "settings_pane_topsites_body": "Accédez aux sites que vous consultez le plus.",
     "settings_pane_topsites_options_showmore": "Afficher deux lignes",
-    "settings_pane_highlights_header": "Éléments-clés",
-    "settings_pane_highlights_body": "Revenir sur votre historique de navigation récent et sur vos marque-pages nouvellement créés.",
+    "settings_pane_bookmarks_header": "Marque-pages récents",
+    "settings_pane_bookmarks_body": "Vos nouveaux marque-pages, facilement accessibles.",
+    "settings_pane_visit_again_header": "Visiter à nouveau",
+    "settings_pane_visit_again_body": "Firefox affichera des extraits de votre historique de navigation dont vous pourriez vouloir vous souvenir ou que vous pourriez vouloir revisiter.",
     "settings_pane_pocketstories_header": "Articles populaires",
     "settings_pane_pocketstories_body": "Pocket, un membre de la famille Mozilla, vous aide à découvrir du contenu de grande qualité que vous auriez pu manquer dans le cas contraire.",
     "settings_pane_done_button": "Terminé",
     "edit_topsites_button_text": "Modifier",
     "edit_topsites_button_label": "Personnaliser la section Sites les plus visités",
     "edit_topsites_showmore_button": "Afficher plus",
     "edit_topsites_showless_button": "Afficher moins",
     "edit_topsites_done_button": "Terminé",
@@ -1511,33 +1629,39 @@
     "pocket_feedback_header": "Le meilleur du Web, sélectionné par plus de 25 millions de personnes.",
     "pocket_feedback_body": "Pocket, un membre de la famille Mozilla, vous aide à découvrir du contenu de grande qualité que vous auriez pu manquer dans le cas contraire.",
     "pocket_send_feedback": "Donner mon avis"
   },
   "fy-NL": {
     "newtab_page_title": "Nij ljepblêd",
     "default_label_loading": "Lade…",
     "header_top_sites": "Topwebsites",
-    "header_highlights": "Hichtepunten",
     "header_stories": "Topferhalen",
+    "header_visit_again": "Nochris besykje",
+    "header_bookmarks": "Resinte blêdwizers",
+    "header_bookmarks_placeholder": "Jo hawwe noch gjin inkelde blêdwizer.",
     "header_stories_from": "fan",
     "type_label_visited": "Besocht",
     "type_label_bookmarked": "Blêdwizer makke",
     "type_label_synced": "Syngronisearre fan oar apparaat ôf",
     "type_label_recommended": "Trending",
     "type_label_open": "Iepene",
     "type_label_topic": "Underwerp",
     "menu_action_bookmark": "Blêdwizer",
     "menu_action_remove_bookmark": "Blêdwizer fuortsmite",
     "menu_action_copy_address": "Adres kopiearje",
     "menu_action_email_link": "Keppeling e-maile…",
     "menu_action_open_new_window": "Iepenje yn in nij finster",
     "menu_action_open_private_window": "Iepenje yn in nij priveefinster",
     "menu_action_dismiss": "Fuortsmite",
     "menu_action_delete": "Fuortsmite út skiednis",
+    "menu_action_pin": "Fêstsette",
+    "menu_action_unpin": "Losmeitsje",
+    "confirm_history_delete_p1": "Binne jo wis dat jo elke ferwizing fan dizze side út jo skiednis fuortsmite wolle?",
+    "confirm_history_delete_notice_p2": "Dizze aksje kin net ûngedien makke wurde.",
     "menu_action_save_to_pocket": "Bewarje nei Pocket",
     "search_for_something_with": "Sykje nei {search_term} mei:",
     "search_button": "Sykje",
     "search_header": "{search_engine_name} trochsykje",
     "search_web_placeholder": "Sykje op it web",
     "search_settings": "Sykynstellingen wizigje",
     "welcome_title": "Wolkom by it nije ljepblêd",
     "welcome_body": "Firefox brûkt dizze romte om jo meast relevante blêdwizers, artikelen, fideo’s en siden dy't jo koartlyn besocht hawwe wer te jaan, sadat jo dizze ienfâldichwei weromfine kinne.",
@@ -1549,18 +1673,20 @@
     "settings_pane_button_label": "Jo side foar nije ljepblêden oanpasse",
     "settings_pane_header": "Nij ljepblêdfoarkarren",
     "settings_pane_body": "Kies wat jo sjogge as jo in nij ljepblêd iepenje.",
     "settings_pane_search_header": "Sykje",
     "settings_pane_search_body": "Sykje op it web fan jo nije ljepblêd út.",
     "settings_pane_topsites_header": "Topwebsites",
     "settings_pane_topsites_body": "Benaderje de websites dy't jo it meast besykje.",
     "settings_pane_topsites_options_showmore": "Twa rigen toane",
-    "settings_pane_highlights_header": "Hichtepunten",
-    "settings_pane_highlights_body": "Sjoch werom nei jo resinte sneupskiednis en nij makke blêdwizers.",
+    "settings_pane_bookmarks_header": "Resinte blêdwizers",
+    "settings_pane_bookmarks_body": "Jo koartlyn oanmakke blêdwizers op ien handich plak.",
+    "settings_pane_visit_again_header": "Nochris besykje",
+    "settings_pane_visit_again_body": "Firefox sil jo ûnderdielen fan jo sneupskiednis toane dy't jo miskien ûnthâlde of nei werom gean wolle.",
     "settings_pane_pocketstories_header": "Topferhalen",
     "settings_pane_pocketstories_body": "Pocket, part fan de Mozilla-famylje, sil jo helpe te ferbinen mei hege kwaliteit ynhâld dy't jo oars miskien net fûn hienen.",
     "settings_pane_done_button": "Dien",
     "edit_topsites_button_text": "Bewurkje",
     "edit_topsites_button_label": "Jo seksje Topwebsites oanpasse",
     "edit_topsites_showmore_button": "Mear toane",
     "edit_topsites_showless_button": "Minder toane",
     "edit_topsites_done_button": "Dien",
@@ -1580,35 +1706,41 @@
     "pocket_read_more": "Populêre ûnderwerpen:",
     "pocket_read_even_more": "Mear ferhalen besjen",
     "pocket_feedback_header": "It bêste fan it web, sammele troch mear as 25 miljoen minsken.",
     "pocket_feedback_body": "Pocket, part fan de Mozilla-famylje, sil jo helpe te ferbinen mei hege kwaliteit ynhâld dy't jo oars miskien net fûn hienen.",
     "pocket_send_feedback": "Kommentaar ferstjoere"
   },
   "ga-IE": {
     "newtab_page_title": "Cluaisín Nua",
-    "default_label_loading": "Á Luchtú…",
+    "default_label_loading": "Á Lódáil…",
     "header_top_sites": "Barrshuímh",
-    "header_highlights": "Buaicphointí",
     "header_stories": "Barrscéalta",
+    "header_visit_again": "Cuairt Arís",
+    "header_bookmarks": "Leabharmharcanna Le Déanaí",
+    "header_bookmarks_placeholder": "Níl aon leabharmharcanna agat.",
     "header_stories_from": "ó",
     "type_label_visited": "Feicthe",
     "type_label_bookmarked": "Leabharmharcáilte",
     "type_label_synced": "Sioncronaithe ó ghléas eile",
     "type_label_recommended": "Treochtáil",
     "type_label_open": "Oscailte",
     "type_label_topic": "Ábhar",
     "menu_action_bookmark": "Cruthaigh leabharmharc",
-    "menu_action_remove_bookmark": "Scrios Leabharmharc",
+    "menu_action_remove_bookmark": "Scrios an Leabharmharc",
     "menu_action_copy_address": "Cóipeáil an Seoladh",
     "menu_action_email_link": "Seol an Nasc trí Ríomhphost…",
     "menu_action_open_new_window": "Oscail i bhFuinneog Nua",
     "menu_action_open_private_window": "Oscail i bhFuinneog Nua Phríobháideach",
     "menu_action_dismiss": "Ruaig",
     "menu_action_delete": "Scrios ón Stair",
+    "menu_action_pin": "Pionnáil",
+    "menu_action_unpin": "Díphionnáil",
+    "confirm_history_delete_p1": "An bhfuil tú cinnte gur mhaith leat an leathanach seo a scriosadh go hiomlán ó do stair?",
+    "confirm_history_delete_notice_p2": "Ní féidir an gníomh seo a chur ar ceal.",
     "menu_action_save_to_pocket": "Sábháil in Pocket",
     "search_for_something_with": "Déan cuardach ar {search_term} le:",
     "search_button": "Cuardach",
     "search_header": "Cuardach {search_engine_name}",
     "search_web_placeholder": "Cuardaigh an Gréasán",
     "search_settings": "Socruithe Cuardaigh",
     "welcome_title": "Fáilte go dtí cluaisín nua",
     "welcome_body": "Úsáidfidh Firefox an spás seo chun na leabharmharcanna, ailt, físeáin, agus leathanaigh is tábhachtaí a thaispeáint duit, ionas go mbeidh tú in ann filleadh orthu gan stró.",
@@ -1620,18 +1752,20 @@
     "settings_pane_button_label": "Saincheap an Leathanach do Chluaisín Nua",
     "settings_pane_header": "Sainroghanna do Chluaisín Nua",
     "settings_pane_body": "Roghnaigh na rudaí a fheicfidh tú nuair a osclóidh tú cluaisín nua.",
     "settings_pane_search_header": "Cuardach",
     "settings_pane_search_body": "Cuardaigh an Gréasán go díreach ón gcluaisín nua.",
     "settings_pane_topsites_header": "Barrshuímh",
     "settings_pane_topsites_body": "Na suímh Ghréasáin a dtugann tú cuairt orthu is minice.",
     "settings_pane_topsites_options_showmore": "Taispeáin dhá shraith",
-    "settings_pane_highlights_header": "Buaicphointí",
-    "settings_pane_highlights_body": "Caith súil siar ar do stair bhrabhsála agus leabharmharcanna a chruthaigh tú le déanaí.",
+    "settings_pane_bookmarks_header": "Leabharmharcanna Le Déanaí",
+    "settings_pane_bookmarks_body": "Do chuid leabharmharcanna nua in áit amháin.",
+    "settings_pane_visit_again_header": "Cuairt Arís",
+    "settings_pane_visit_again_body": "Taispeánann Firefox nascanna ó do stair bhrabhsála a mbeadh suim agat filleadh orthu amach anseo.",
     "settings_pane_pocketstories_header": "Barrscéalta",
     "settings_pane_pocketstories_body": "Le Pocket, ball de theaghlach Mozilla, beidh tú ábalta teacht ar ábhar den chéad scoth go héasca.",
     "settings_pane_done_button": "Déanta",
     "edit_topsites_button_text": "Eagar",
     "edit_topsites_button_label": "Saincheap na Barrshuímh",
     "edit_topsites_showmore_button": "Taispeáin níos mó",
     "edit_topsites_showless_button": "Taispeáin níos lú",
     "edit_topsites_done_button": "Déanta",
@@ -1865,33 +1999,39 @@
     "edit_topsites_pin_button": "Zakači stranicu",
     "edit_topsites_edit_button": "Uredi ovu stranicu",
     "edit_topsites_dismiss_button": "Odbaci stranicu"
   },
   "hsb": {
     "newtab_page_title": "Nowy rajtark",
     "default_label_loading": "Začituje so…",
     "header_top_sites": "Najhusćišo wopytane sydła",
-    "header_highlights": "Wjerški",
     "header_stories": "Najhusćišo přečitane zdźělenki",
+    "header_visit_again": "Hišće raz wopytać",
+    "header_bookmarks": "Najnowše zapołožki",
+    "header_bookmarks_placeholder": "Hišće zapołožki nimaće.",
     "header_stories_from": "wot",
     "type_label_visited": "Wopytany",
     "type_label_bookmarked": "Jako zapołožka składowany",
     "type_label_synced": "Z druheho grata synchronizowany",
     "type_label_recommended": "Popularny",
     "type_label_open": "Wočinjeny",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Zapołožki składować",
     "menu_action_remove_bookmark": "Zapołožku wotstronić",
     "menu_action_copy_address": "Adresu kopěrować",
     "menu_action_email_link": "Wotkaz e-mejlować…",
     "menu_action_open_new_window": "W nowym woknje wočinić",
     "menu_action_open_private_window": "W nowym priwatnym woknje wočinić",
     "menu_action_dismiss": "Zaćisnyć",
     "menu_action_delete": "Z historije zhašeć",
+    "menu_action_pin": "Připjeć",
+    "menu_action_unpin": "Wotpjeć",
+    "confirm_history_delete_p1": "Chceće woprawdźe kóždu instancu tuteje strony ze swojeje historije zhašeć?",
+    "confirm_history_delete_notice_p2": "Tuta akcija njeda so cofnyć.",
     "menu_action_save_to_pocket": "Pola Pocket składować",
     "search_for_something_with": "Za {search_term} pytać z:",
     "search_button": "Pytać",
     "search_header": "Z {search_engine_name} pytać",
     "search_web_placeholder": "Web přepytać",
     "search_settings": "Pytanske nastajenja změnić",
     "welcome_title": "Witajće k nowemu rajtarkej",
     "welcome_body": "Firefox budźe tutón rum wužiwać, zo by waše najwažniše zapołožki, nastawki, wideja a runje wopytane strony pokazał, zo byšće móhł so lochko k nim wróćić.",
@@ -1903,18 +2043,20 @@
     "settings_pane_button_label": "Stronu wašeho noweho rajtarka přiměrić",
     "settings_pane_header": "Nastajenja noweho rajtarka",
     "settings_pane_body": "Wubjerće, štož chceće widźeć, hdyž nowy rajtark wočinjeće.",
     "settings_pane_search_header": "Pytać",
     "settings_pane_search_body": "Přepytajće web ze swojeho noweho rajtarka.",
     "settings_pane_topsites_header": "Najhusćišo wopytane sydła",
     "settings_pane_topsites_body": "Wočińće websydła, kotrež sće najhusćišo wopytał.",
     "settings_pane_topsites_options_showmore": "Dwě lince pokazać",
-    "settings_pane_highlights_header": "Wjerški",
-    "settings_pane_highlights_body": "Wobhladajće sej najnowšu přehladowansku historiju a nowo wutworjene zapołožki.",
+    "settings_pane_bookmarks_header": "Najnowše zapołožki",
+    "settings_pane_bookmarks_body": "Waše nowo załožene zapołožki hnydom k ruce.",
+    "settings_pane_visit_again_header": "Hišće raz wopytać",
+    "settings_pane_visit_again_body": "Firefox wam dźěle wašeje přehladowanskeje historije pokazać, kotrež chceće sej snano spomjatkować abo na kotrež chceće wróćo přińć.",
     "settings_pane_pocketstories_header": "Najhusćišo přečitane zdźělenki",
     "settings_pane_pocketstories_body": "Pocket, dźěl swójby Mozilla, budźe pomhać, was z wobsahom wysokeje kwality zwjazować, kotryž njebyšće snano hewak namakał.",
     "settings_pane_done_button": "Hotowo",
     "edit_topsites_button_text": "Wobdźěłać",
     "edit_topsites_button_label": "Přiměrće wotrězk swojich najhusćišo wopytanych sydłow",
     "edit_topsites_showmore_button": "Wjace pokazać",
     "edit_topsites_showless_button": "Mjenje pokazać",
     "edit_topsites_done_button": "Hotowo",
@@ -1936,33 +2078,39 @@
     "pocket_feedback_header": "Najlěpše z weba, zhromadźene wot wjace hač 25 milionow ludźi.",
     "pocket_feedback_body": "Pocket, dźěl swójby Mozilla, budźe pomhać, was z wobsahom wysokeje kwality zwjazować, kotryž njebyšće snano hewak namakał.",
     "pocket_send_feedback": "Komentar pósłać"
   },
   "hu": {
     "newtab_page_title": "Új lap",
     "default_label_loading": "Betöltés…",
     "header_top_sites": "Népszerű oldalak",
-    "header_highlights": "Kiemelések",
     "header_stories": "Népszerű történetek",
+    "header_visit_again": "Látogasson el ismét",
+    "header_bookmarks": "Friss könyvjelzők",
+    "header_bookmarks_placeholder": "Még nincs könyvjelzője.",
     "header_stories_from": "innen:",
     "type_label_visited": "Látogatott",
     "type_label_bookmarked": "Könyvjelzőzött",
     "type_label_synced": "Másik eszközről szinkronizálva",
     "type_label_recommended": "Népszerű",
     "type_label_open": "Megnyitás",
     "type_label_topic": "Téma",
     "menu_action_bookmark": "Könyvjelzőzés",
     "menu_action_remove_bookmark": "Könyvjelző eltávolítása",
     "menu_action_copy_address": "Cím másolása",
     "menu_action_email_link": "Hivatkozás küldése e-mailben…",
     "menu_action_open_new_window": "Megnyitás új ablakban",
     "menu_action_open_private_window": "Megnyitás új privát ablakban",
     "menu_action_dismiss": "Elutasítás",
     "menu_action_delete": "Törlés az előzményekből",
+    "menu_action_pin": "Rögzítés",
+    "menu_action_unpin": "Rögzítés feloldása",
+    "confirm_history_delete_p1": "Biztosan törli ezen oldal minden példányát az előzményekből?",
+    "confirm_history_delete_notice_p2": "Ez a művelet nem vonható vissza.",
     "menu_action_save_to_pocket": "Mentés a Pocketbe",
     "search_for_something_with": "„{search_term}” keresése ezzel:",
     "search_button": "Keresés",
     "search_header": "{search_engine_name} keresés",
     "search_web_placeholder": "Keresés a weben",
     "search_settings": "Keresési beállítások módosítása",
     "welcome_title": "Üdvözöljük az új lapon",
     "welcome_body": "A Firefox ezt a területet a leginkább releváns könyvjelzők, cikkek, videók és nemrég látogatott oldalak megjelenítésére fogja használni, így könnyedén visszatalálhat hozzájuk.",
@@ -1974,18 +2122,20 @@
     "settings_pane_button_label": "Az Új lap oldal személyre szabása",
     "settings_pane_header": "Új lap beállításai",
     "settings_pane_body": "Válassza ki, hogy mit lát, amikor megnyit egy új lapot.",
     "settings_pane_search_header": "Keresés",
     "settings_pane_search_body": "Keresés a weben az új lapon.",
     "settings_pane_topsites_header": "Népszerű oldalak",
     "settings_pane_topsites_body": "A leggyakrabban látogatott webhelyek elérése.",
     "settings_pane_topsites_options_showmore": "Két sor megjelenítése",
-    "settings_pane_highlights_header": "Kiemelések",
-    "settings_pane_highlights_body": "A böngészési előzmények, és az újonnan létrehozott könyvjelzők visszanézése.",
+    "settings_pane_bookmarks_header": "Friss könyvjelzők",
+    "settings_pane_bookmarks_body": "A frissen létrehozott könyvjelzői egy praktikus helyen.",
+    "settings_pane_visit_again_header": "Látogasson el ismét",
+    "settings_pane_visit_again_body": "A Firefox megjeleníti a böngészési előzményeinek azt a részét, amelyet lehet hogy meg szeretne jegyezni, vagy ahová vissza akar térni.",
     "settings_pane_pocketstories_header": "Népszerű történetek",
     "settings_pane_pocketstories_body": "A Pocket a Mozilla család tagja, segít az olyan jó minőségű tartalmak fellelésében, melyekkel egyébként nem is találkozott volna.",
     "settings_pane_done_button": "Kész",
     "edit_topsites_button_text": "Szerkesztés",
     "edit_topsites_button_label": "A Népszerű oldalak rész testreszabása",
     "edit_topsites_showmore_button": "Több megjelenítése",
     "edit_topsites_showless_button": "Kevesebb megjelenítése",
     "edit_topsites_done_button": "Kész",
@@ -2109,33 +2259,39 @@
     "pocket_feedback_body": "Pocket, bagian dari keluarga Mozilla, akan membantu hubungkan Anda dengan konten berkualitas tinggi yang tak dapat Anda temukan di tempat lain.",
     "pocket_send_feedback": "Kirim Umpanbalik"
   },
   "is": {},
   "it": {
     "newtab_page_title": "Nuova scheda",
     "default_label_loading": "Caricamento…",
     "header_top_sites": "Siti principali",
-    "header_highlights": "In evidenza",
     "header_stories": "Storie principali",
+    "header_visit_again": "Visita di nuovo",
+    "header_bookmarks": "Segnalibri recenti",
+    "header_bookmarks_placeholder": "Non è ancora disponibile alcun segnalibro.",
     "header_stories_from": "da",
     "type_label_visited": "Visitato",
     "type_label_bookmarked": "Nei segnalibri",
     "type_label_synced": "Sincronizzato da un altro dispositivo",
     "type_label_recommended": "Di tendenza",
     "type_label_open": "Apri",
     "type_label_topic": "Argomento",
     "menu_action_bookmark": "Aggiungi ai segnalibri",
     "menu_action_remove_bookmark": "Elimina segnalibro",
     "menu_action_copy_address": "Copia indirizzo",
     "menu_action_email_link": "Invia link per email…",
     "menu_action_open_new_window": "Apri in una nuova finestra",
     "menu_action_open_private_window": "Apri in una nuova finestra anonima",
     "menu_action_dismiss": "Rimuovi",
     "menu_action_delete": "Elimina dalla cronologia",
+    "menu_action_pin": "Aggiungi alla bacheca",
+    "menu_action_unpin": "Rimuovi dalla bacheca",
+    "confirm_history_delete_p1": "Eliminare tutte le occorrenze di questa pagina dalla cronologia?",
+    "confirm_history_delete_notice_p2": "Questa operazione non può essere annullata.",
     "menu_action_save_to_pocket": "Salva in Pocket",
     "search_for_something_with": "Cerca {search_term} con:",
     "search_button": "Cerca",
     "search_header": "Ricerca {search_engine_name}",
     "search_web_placeholder": "Cerca sul Web",
     "search_settings": "Cambia impostazioni di ricerca",
     "welcome_title": "Benvenuto nella nuova scheda",
     "welcome_body": "Firefox utilizzerà questo spazio per visualizzare gli elementi più significativi, come segnalibri, articoli, video e pagine visitate di recente, in modo che siano sempre facili da raggiungere.",
@@ -2147,28 +2303,30 @@
     "settings_pane_button_label": "Personalizza la pagina Nuova scheda",
     "settings_pane_header": "Preferenze Nuova scheda",
     "settings_pane_body": "Scegli quali elementi visualizzare all’apertura di una nuova scheda.",
     "settings_pane_search_header": "Ricerca",
     "settings_pane_search_body": "Avvia ricerche in una nuova scheda.",
     "settings_pane_topsites_header": "Siti principali",
     "settings_pane_topsites_body": "Accedi ai siti che visiti più spesso.",
     "settings_pane_topsites_options_showmore": "Visualizza due righe",
-    "settings_pane_highlights_header": "In evidenza",
-    "settings_pane_highlights_body": "Visualizza gli elementi più recenti nella cronologia e gli ultimi segnalibri memorizzati.",
+    "settings_pane_bookmarks_header": "Segnalibri recenti",
+    "settings_pane_bookmarks_body": "Tutti i segnalibri appena creati, facilmente accessibili.",
+    "settings_pane_visit_again_header": "Visita di nuovo",
+    "settings_pane_visit_again_body": "Firefox mostrerà alcuni elementi, estratti dalla cronologia di navigazione, che potresti voler visitare di nuovo.",
     "settings_pane_pocketstories_header": "Storie principali",
     "settings_pane_pocketstories_body": "Grazie a Pocket, un componente della famiglia Mozilla, puoi raggiungere contenuti di alta qualità che altrimenti potrebbero sfuggirti.",
     "settings_pane_done_button": "Fatto",
     "edit_topsites_button_text": "Modifica",
     "edit_topsites_button_label": "Personalizza la sezione Siti principali",
     "edit_topsites_showmore_button": "Visualizza altri",
     "edit_topsites_showless_button": "Nascondi altri",
     "edit_topsites_done_button": "Fatto",
     "edit_topsites_pin_button": "Aggiungi sito alla bacheca",
-    "edit_topsites_unpin_button": "Rimuovi sito da bacheca",
+    "edit_topsites_unpin_button": "Rimuovi sito dalla bacheca",
     "edit_topsites_edit_button": "Modifica questo sito",
     "edit_topsites_dismiss_button": "Ignora questo sito",
     "edit_topsites_add_button": "Aggiungi",
     "topsites_form_add_header": "Nuovi sito principale",
     "topsites_form_edit_header": "Modifica sito principale",
     "topsites_form_title_placeholder": "Inserire un titolo",
     "topsites_form_url_placeholder": "Digitare o incollare un URL",
     "topsites_form_add_button": "Aggiungi",
@@ -2180,33 +2338,39 @@
     "pocket_feedback_header": "Il meglio del web, selezionato da 25 milioni di persone.",
     "pocket_feedback_body": "Grazie a Pocket, un componente della famiglia Mozilla, puoi raggiungere contenuti di alta qualità che altrimenti potrebbero sfuggirti.",
     "pocket_send_feedback": "Invia feedback"
   },
   "ja": {
     "newtab_page_title": "新しいタブ",
     "default_label_loading": "読み込み中...",
     "header_top_sites": "トップサイト",
-    "header_highlights": "ハイライト",
     "header_stories": "トップ記事",
+    "header_visit_again": "再度訪れる",
+    "header_bookmarks": "最近のブックマーク",
+    "header_bookmarks_placeholder": "まだブックマークがありません。",
     "header_stories_from": "配信元",
     "type_label_visited": "訪問済み",
     "type_label_bookmarked": "ブックマーク",
     "type_label_synced": "他の端末から同期",
     "type_label_recommended": "話題の記事",
     "type_label_open": "開く",
     "type_label_topic": "トピック",
     "menu_action_bookmark": "ブックマーク",
     "menu_action_remove_bookmark": "ブックマークを削除",
     "menu_action_copy_address": "URL をコピー",
     "menu_action_email_link": "URL をメールで送信...",
     "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 へ保存",
     "search_for_something_with": "{search_term} を検索:",
     "search_button": "検索",
     "search_header": "{search_engine_name} 検索",
     "search_web_placeholder": "ウェブを検索",
     "search_settings": "検索設定を変更",
     "welcome_title": "新しいタブへようこそ",
     "welcome_body": "Firefox はこのスペースを使って、関連性の高いブックマーク、記事、動画、最近訪れたページを表示し、それらのコンテンツへ簡単に戻れるようにします。",
@@ -2218,18 +2382,20 @@
     "settings_pane_button_label": "新しいタブページをカスタマイズ",
     "settings_pane_header": "新しいタブの設定",
     "settings_pane_body": "新しいタブを開いたときに表示する内容を選択します。",
     "settings_pane_search_header": "検索",
     "settings_pane_search_body": "新しいタブからウェブを検索します。",
     "settings_pane_topsites_header": "トップサイト",
     "settings_pane_topsites_body": "よく訪れるサイトへアクセス。",
     "settings_pane_topsites_options_showmore": "2 行で表示",
-    "settings_pane_highlights_header": "ハイライト",
-    "settings_pane_highlights_body": "最近の閲覧履歴と新たに作成されたブックマークを振り返りましょう。",
+    "settings_pane_bookmarks_header": "最近のブックマーク",
+    "settings_pane_bookmarks_body": "新たに作成されたブックマークをひとつの場所にまとめて使いやすく。",
+    "settings_pane_visit_again_header": "再度訪れる",
+    "settings_pane_visit_again_body": "Firefox は、ブラウジング履歴の中から、あなたが覚えておきたい、あるいは後で戻りたいと思われるページの一覧を表示します。",
     "settings_pane_pocketstories_header": "トップ記事",
     "settings_pane_pocketstories_body": "Mozilla ファミリーの一員となった Pocket は、他では見つからなかったかもしれない高品質なコンテンツとあなたを結び付ける手助けをします。",
     "settings_pane_done_button": "完了",
     "edit_topsites_button_text": "編集",
     "edit_topsites_button_label": "トップサイトの項目をカスタマイズ",
     "edit_topsites_showmore_button": "もっと見る",
     "edit_topsites_showless_button": "折りたたむ",
     "edit_topsites_done_button": "完了",
@@ -2251,33 +2417,39 @@
     "pocket_feedback_header": "2,500 万人以上の人々によって収集されている、ウェブ上で最も優れたコンテンツ。",
     "pocket_feedback_body": "Mozilla ファミリーの一員となった Pocket は、他では見つからなかったかもしれない高品質なコンテンツとあなたを結び付ける手助けをします。",
     "pocket_send_feedback": "フィードバックを送る"
   },
   "ka": {
     "newtab_page_title": "ახალი ჩანართი",
     "default_label_loading": "იტვირთება…",
     "header_top_sites": "მთავარი საიტები",
-    "header_highlights": "გამორჩეულები",
     "header_stories": "მთავარი სიახლეები",
+    "header_visit_again": "ხელახლა ნახვა",
+    "header_bookmarks": "ბოლოს ჩანიშნულები",
+    "header_bookmarks_placeholder": "სანიშნეები ჯერ არაა დამატებული.",
     "header_stories_from": "-იდან",
     "type_label_visited": "მონახულებული",
     "type_label_bookmarked": "ჩანიშნული",
     "type_label_synced": "სხვა მოწყობილობიდან დასინქრონებული",
     "type_label_recommended": "პოპულარული",
     "type_label_open": "გახსნა",
     "type_label_topic": "თემა",
     "menu_action_bookmark": "ჩანიშვნა",
     "menu_action_remove_bookmark": "სანიშნეებიდან ამოღება",
     "menu_action_copy_address": "მისამართის დაკოპირება",
     "menu_action_email_link": "ბმულის გაგზავნა…",
     "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-ში შენახვა",
     "search_for_something_with": "{search_term} -ის ძიება:",
     "search_button": "ძიება",
     "search_header": "{search_engine_name} -ში ძიება",
     "search_web_placeholder": "ინტერნეტში ძიება",
     "search_settings": "ძიების პარამეტრების შეცვლა",
     "welcome_title": "მოგესალმებით ახალ ჩანართზე",
     "welcome_body": "Firefox ამ სივრცეს გამოიყენებს თქვენთვის ყველაზე საჭირო სანიშნეების, სტატიების, ვიდეოებისა და ბოლოს მონახულებული გვერდებისთვის, რომ ადვილად შეძლოთ მათზე დაბრუნება.",
@@ -2289,18 +2461,20 @@
     "settings_pane_button_label": "მოირგეთ ახალი ჩანართის გვერდი",
     "settings_pane_header": "ახალი ჩანართის პარამეტრები",
     "settings_pane_body": "აირჩიეთ რისი ხილვა გსურთ ახალი ჩანართის გახსნისას.",
     "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_body": "ნახეთ ბოლოს მონახულებული გვერდების ისტორია და ახალი შექმნილი სანიშნეები.",
+    "settings_pane_bookmarks_header": "ბოლოს ჩანიშნულები",
+    "settings_pane_bookmarks_body": "ახლად შექმნილი სანიშნეები, ერთი ხელის გაწვდენაზე.",
+    "settings_pane_visit_again_header": "ხელახლა ნახვა",
+    "settings_pane_visit_again_body": "Firefox გაჩვენებთ მონახულებული გვერდების ისტორიიდან იმას, რისი გახსენებაც ან რაზე დაბრუნებაც გენდომებათ.",
     "settings_pane_pocketstories_header": "მთავარი სიახლეები",
     "settings_pane_pocketstories_body": "Pocket არის Mozilla-ს ოჯახის ნაწილი, რომელიც დაგეხმარებათ ისეთი მაღალი ხარისხის კონტენტის მოძიებაში, რომელიც სხვა გზებით, შეიძლება ვერ მოგენახათ.",
     "settings_pane_done_button": "მზადაა",
     "edit_topsites_button_text": "ჩასწორება",
     "edit_topsites_button_label": "მოირგეთ რჩეული საიტების განყოფილება",
     "edit_topsites_showmore_button": "მეტის ჩვენება",
     "edit_topsites_showless_button": "ნაკლების ჩვენება",
     "edit_topsites_done_button": "მზადაა",
@@ -2322,32 +2496,39 @@
     "pocket_feedback_header": "საუკეთესოები ინტერნეტიდან, 25 მილიონზე მეტი ადამიანის მიერ არჩეული.",
     "pocket_feedback_body": "Pocket არის Mozilla-ს ოჯახის ნაწილი, რომელიც დაგეხმარებათ ისეთი მაღალი ხარისხის კონტენტის მოძიებაში, რომელიც სხვა გზებით, შეიძლება ვერ მოგენახათ.",
     "pocket_send_feedback": "უკუკავშირი"
   },
   "kab": {
     "newtab_page_title": "Iccer amaynut",
     "default_label_loading": "Asali…",
     "header_top_sites": "Ismal ifazen",
-    "header_highlights": "Iferdisen tisura",
     "header_stories": "Tiqsiɣin ifazen",
+    "header_visit_again": "Rzu tikelt-nniḍen",
+    "header_bookmarks": "Ticraḍ n melmi kan",
+    "header_bookmarks_placeholder": "Ur ɣur-k ara ticraḍ yakan.",
     "header_stories_from": "seg",
     "type_label_visited": "Yettwarza",
     "type_label_bookmarked": "Yettwacreḍ",
     "type_label_synced": "Yemtawi seg ibenk-nniḍen",
+    "type_label_recommended": "Tiddin",
     "type_label_open": "Yeldi",
     "type_label_topic": "Asentel",
     "menu_action_bookmark": "Creḍ asebter-agi",
     "menu_action_remove_bookmark": "Kkes tacreṭ-agi",
     "menu_action_copy_address": "Nγel tansa",
     "menu_action_email_link": "Azen aseγwen s yimayl…",
     "menu_action_open_new_window": "Ldei deg usfaylu amaynut",
     "menu_action_open_private_window": "Ldi deg usfaylu uslig amaynut",
     "menu_action_dismiss": "Kkes",
     "menu_action_delete": "Kkes seg umazray",
+    "menu_action_pin": "Senteḍ",
+    "menu_action_unpin": "Serreḥ",
+    "confirm_history_delete_p1": "Tebɣiḍ ad tekksed yal tummant n usebter-agi seg umazray-ik?",
+    "confirm_history_delete_notice_p2": "Tigawt-agi ur tettuɣal ara ar deffir.",
     "menu_action_save_to_pocket": "Sekles ɣer Pocket",
     "search_for_something_with": "Nadi γef {search_term} s:",
     "search_button": "Nadi",
     "search_header": "Anadi {search_engine_name}",
     "search_web_placeholder": "Nadi di Web",
     "search_settings": "Snifel iγewwaṛen n unadi",
     "welcome_title": "Ansuf ar yiccer amaynut",
     "welcome_body": "Firefox ad iseqdec tallunt akken ad d-yesken akk ticraḍ n isebtar iwulmen, imagraden, tividyutin, akked isebtar aniɣer terziḍ melmi kan, ihi tzemreḍ ad d-uɣaleḍ ɣer-sen s wudem fessusen.",
@@ -2359,40 +2540,45 @@
     "settings_pane_button_label": "Sagen asebter n yiccer-ik amaynut",
     "settings_pane_header": "Ismenyifen n yiccer amaynut",
     "settings_pane_body": "Fren ayen ara twaliḍ ticki teldiḍ iccer imaynut.",
     "settings_pane_search_header": "Nadi",
     "settings_pane_search_body": "Nadi di Web seg iccer-ik amaynut.",
     "settings_pane_topsites_header": "Ismal ifazen",
     "settings_pane_topsites_body": "Kcem ar yesmal web i trezzuḍ s waṭas.",
     "settings_pane_topsites_options_showmore": "Sken sin izirigen",
-    "settings_pane_highlights_header": "Asebrureq",
-    "settings_pane_highlights_body": "Wali ar deffir ar umazray n tunigin yezrin akked tecraḍ i terniḍ melmi kan.",
+    "settings_pane_bookmarks_header": "Ticraḍ n melmi kan",
+    "settings_pane_bookmarks_body": "Ticraḍ yettwarnan melmi kan deg iwen n umdiq ɣef afus.",
+    "settings_pane_visit_again_header": "Rzu tikelt-nniḍen",
+    "settings_pane_visit_again_body": "Firefox ad d-yesken tukkist n umazray-ik n tunigin i tzemreḍ ad twalid tikelt-nniḍen.",
     "settings_pane_pocketstories_header": "Tiqsiɣin ifazen",
+    "settings_pane_pocketstories_body": "Pocket, aɛeggal n twaxult n Mozilla, ak-d-yefk afus ad twaliḍ agbur n tɣara meqqren i tzemred ad tzegleḍ.",
     "settings_pane_done_button": "Immed",
     "edit_topsites_button_text": "Ẓreg",
     "edit_topsites_button_label": "Sagen tigezmi n ismal ifazen",
     "edit_topsites_showmore_button": "Sken ugar",
     "edit_topsites_showless_button": "Sken qel",
     "edit_topsites_done_button": "Immed",
     "edit_topsites_pin_button": "Ṭṭef asmel-agi",
+    "edit_topsites_unpin_button": "Serreḥ asmel-agi",
     "edit_topsites_edit_button": "Ẓreg asmel-agi",
     "edit_topsites_dismiss_button": "Anef i usmel-agi",
     "edit_topsites_add_button": "Rnu",
     "topsites_form_add_header": "Asmel ifazen amaynut",
     "topsites_form_edit_header": "Ẓreg asmel ifazen",
     "topsites_form_title_placeholder": "Sekcem azwel",
     "topsites_form_url_placeholder": "Aru neɣ sekcem tansa URL",
     "topsites_form_add_button": "Rnu",
     "topsites_form_save_button": "Sekles",
     "topsites_form_cancel_button": "Sefsex",
     "topsites_form_url_validation": "Tansa URL tameɣtut tettwasra",
     "pocket_read_more": "Isental ittwasnen aṭas:",
     "pocket_read_even_more": "Wali ugar n teqsiḍin",
     "pocket_feedback_header": "D amezwaru n Web, ittwafren sγur ugar 25 imelyan n imdanen.",
+    "pocket_feedback_body": "Pocket, aɛeggal n twaxult n Mozilla, ak-d-yefk afus ad twaliḍ agbur n tɣara meqqren i tzemred ad tzegleḍ.",
     "pocket_send_feedback": "Azen tikti"
   },
   "kk": {
     "newtab_page_title": "Жаңа бет",
     "default_label_loading": "Жүктелуде…",
     "header_top_sites": "Топ сайттар",
     "header_highlights": "Бастысы",
     "header_stories": "Топ хикаялар",
@@ -2532,25 +2718,41 @@
     "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_body": "최근 방문 기록과 북마크를 살펴보세요.",
     "settings_pane_pocketstories_header": "상위 이야기",
+    "settings_pane_pocketstories_body": "Mozilla 가족의 일원인 Pocket으로 다른 곳에서는 찾아보기 힘든 고 품질의 콘텐츠를 연결할 수 있습니다.",
     "settings_pane_done_button": "완료",
     "edit_topsites_button_text": "수정",
     "edit_topsites_button_label": "상위 사이트 영역 꾸미기",
     "edit_topsites_showmore_button": "더보기",
     "edit_topsites_showless_button": "줄이기",
     "edit_topsites_done_button": "완료",
     "edit_topsites_pin_button": "이 사이트 고정",
+    "edit_topsites_unpin_button": "이 사이트 고정 취소",
     "edit_topsites_edit_button": "이 사이트 수정",
-    "edit_topsites_dismiss_button": "이 사이트 제거"
+    "edit_topsites_dismiss_button": "이 사이트 제거",
+    "edit_topsites_add_button": "추가",
+    "topsites_form_add_header": "새로운 인기 사이트",
+    "topsites_form_edit_header": "인기 사이트 편집",
+    "topsites_form_title_placeholder": "제목 입력",
+    "topsites_form_url_placeholder": "URL 입력 또는 붙여 넣기",
+    "topsites_form_add_button": "추가",
+    "topsites_form_save_button": "저장",
+    "topsites_form_cancel_button": "취소",
+    "topsites_form_url_validation": "유효한 URL이 필요합니다",
+    "pocket_read_more": "인기 주제:",
+    "pocket_read_even_more": "더 많은 이야기 보기",
+    "pocket_feedback_header": "2천 5백만 명에 의해 추천되는 최고의 웹입니다.",
+    "pocket_feedback_body": "Mozilla 가족의 일원인 Pocket으로 다른 곳에서는 찾아보기 힘든 고 품질의 콘텐츠를 연결할 수 있습니다.",
+    "pocket_send_feedback": "의견 보내기"
   },
   "ku": {},
   "lij": {
     "newtab_page_title": "Neuvo Feuggio",
     "default_label_loading": "Carego…",
     "header_top_sites": "I megio sciti",
     "header_highlights": "In evidensa",
     "type_label_visited": "Vixitou",
@@ -2833,33 +3035,39 @@
     "settings_pane_body": "नवीन टॅब उघडल्यानंतर काय दिसायला हवे ते निवडा.",
     "settings_pane_search_header": "शोध",
     "settings_pane_search_body": "आपल्या नवीन टॅब वरून वेबवर शोधा."
   },
   "ms": {
     "newtab_page_title": "Tab Baru",
     "default_label_loading": "Memuatkan…",
     "header_top_sites": "Laman Teratas",
-    "header_highlights": "Serlahan",
     "header_stories": "Berita Hangat",
+    "header_visit_again": "Lawat Semula",
+    "header_bookmarks": "Tandabuku Terkini",
+    "header_bookmarks_placeholder": "Anda masih belum ada tandabuku lagi.",
     "header_stories_from": "dari",
     "type_label_visited": "Dilawati",
     "type_label_bookmarked": "Ditandabuku",
     "type_label_synced": "Sync dari peranti lain",
     "type_label_recommended": "Trending",
     "type_label_open": "Buka",
     "type_label_topic": "Topik",
     "menu_action_bookmark": "Tandabuku",
     "menu_action_remove_bookmark": "Alihkeluar Tandabuku",
     "menu_action_copy_address": "Salin Alamat",
     "menu_action_email_link": "Pautan E-mel…",
     "menu_action_open_new_window": "Buka dalam Tetingkap Baru",
     "menu_action_open_private_window": "Buka dalam Tetingkap Peribadi Baru",
     "menu_action_dismiss": "Abai",
     "menu_action_delete": "Hapuskan sejarah",
+    "menu_action_pin": "Pin",
+    "menu_action_unpin": "Nyahpin",
+    "confirm_history_delete_p1": "Anda pasti mahu menghapuskan setiap contoh halaman ini daripada sejarah anda?",
+    "confirm_history_delete_notice_p2": "Tindakan ini tidak boleh dibatalkan.",
     "menu_action_save_to_pocket": "Simpan ke Pocket",
     "search_for_something_with": "Cari {search_term} dengan:",
     "search_button": "Cari",
     "search_header": "{search_engine_name} Cari",
     "search_web_placeholder": "Cari dalam Web",
     "search_settings": "Ubah Tetapan Carian",
     "welcome_title": "Selamat Datang ke tab baru",
     "welcome_body": "Firefox akan menggunakan ruang ini untuk mempamerkan tandabuku, artikel, video dan halaman yang paling berkaitan dan terkini anda lawati supaya anda boleh mendapatkannya semula dengan mudah.",
@@ -2871,18 +3079,20 @@
     "settings_pane_button_label": "Sesuaikan halaman Tab Baru anda",
     "settings_pane_header": "Keutamaan Tab Baru",
     "settings_pane_body": "Pilih paparan apabila anda buka tab baru.",
     "settings_pane_search_header": "Cari",
     "settings_pane_search_body": "Carian Web dari tab baru anda.",
     "settings_pane_topsites_header": "Laman Teratas",
     "settings_pane_topsites_body": "Akses laman web yang paling banyak dilawati.",
     "settings_pane_topsites_options_showmore": "Papar dua baris",
-    "settings_pane_highlights_header": "Serlahan",
-    "settings_pane_highlights_body": "Papar semula sejarah pelayaran terkini dan tandabuku yang baru diwujudkan.",
+    "settings_pane_bookmarks_header": "Tandabuku Terkini",
+    "settings_pane_bookmarks_body": "Tandabuku baru yang anda cipta terletak di lokasi yang mudah dicapai.",
+    "settings_pane_visit_again_header": "Lawat Semula",
+    "settings_pane_visit_again_body": "Firefox akan mempamerkan kepada anda sebahagian sejarah pelayaran anda yang mungkin anda mahu mengingatinya atau kembali semula.",
     "settings_pane_pocketstories_header": "Berita Hangat",
     "settings_pane_pocketstories_body": "Pocket, sebahagian daripada ciri-ciri Mozilla, akan membantu anda sentiasa berhubung dengan kandungan berkualiti tinggi yang mungkin tidak akan anda jumpa sebaliknya.",
     "settings_pane_done_button": "Siap",
     "edit_topsites_button_text": "Edit",
     "edit_topsites_button_label": "Sesuaikan bahagian Laman Teratas anda",
     "edit_topsites_showmore_button": "Papar selanjutnya",
     "edit_topsites_showless_button": "Papar minima",
     "edit_topsites_done_button": "Siap",
@@ -2954,33 +3164,39 @@
     "edit_topsites_pin_button": "ဝတ်ဆိုဒ်အားpinလုပ်ထားမည်",
     "edit_topsites_edit_button": "ဆိုက်အားပြင်မည်",
     "edit_topsites_dismiss_button": "ဆိုက်အားဖျက်လိုက်မည်"
   },
   "nb-NO": {
     "newtab_page_title": "Ny fane",
     "default_label_loading": "Laster …",
     "header_top_sites": "Mest besøkte nettsider",
-    "header_highlights": "Høydepunkter",
     "header_stories": "Hovedsakene",
+    "header_visit_again": "Besøk igjen",
+    "header_bookmarks": "Nylige bokmerker",
+    "header_bookmarks_placeholder": "Du har ingen bokmerker enda.",
     "header_stories_from": "fra",
     "type_label_visited": "Besøkt",
     "type_label_bookmarked": "Bokmerket",
     "type_label_synced": "Synkronisert fra annen enhet",
     "type_label_recommended": "Trender",
     "type_label_open": "Åpne",
     "type_label_topic": "Emne",
     "menu_action_bookmark": "Bokmerke",
     "menu_action_remove_bookmark": "Fjern bokmerke",
     "menu_action_copy_address": "Kopier adresse",
     "menu_action_email_link": "Send lenke på e-post …",
     "menu_action_open_new_window": "Åpne i nytt vindu",
     "menu_action_open_private_window": "Åpne i nytt privat vindu",
     "menu_action_dismiss": "Avslå",
     "menu_action_delete": "Slett fra historikk",
+    "menu_action_pin": "Fest",
+    "menu_action_unpin": "Løsne",
+    "confirm_history_delete_p1": "Er du sikker på at du vil slette alle forekomster av denne siden fra historikken?",
+    "confirm_history_delete_notice_p2": "Denne handlingen kan ikke angres.",
     "menu_action_save_to_pocket": "Lagre til Pocket",
     "search_for_something_with": "Søk etter {search_term} med:",
     "search_button": "Søk",
     "search_header": "{search_engine_name}-søk",
     "search_web_placeholder": "Søk på nettet",
     "search_settings": "Endre søkeinnstillinger",
     "welcome_title": "Velkommen til ny fane",
     "welcome_body": "Firefox vil bruke denne plassen til å vise deg de mest relevante bokmerkene, artiklene, videoene og sidene du nettopp har besøkt, slik at du enkelt kan finne tilbake til de.",
@@ -2992,18 +3208,19 @@
     "settings_pane_button_label": "Tilpass siden for Ny fane",
     "settings_pane_header": "Innstillinger for Ny fane",
     "settings_pane_body": "Velg hva som vises når du åpner en ny fane.",
     "settings_pane_search_header": "Søk",
     "settings_pane_search_body": "Søk på nettet fra din nye fane.",
     "settings_pane_topsites_header": "Mest besøkte",
     "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
     "settings_pane_topsites_options_showmore": "Vis to rader",
-    "settings_pane_highlights_header": "Høydepunkter",
-    "settings_pane_highlights_body": "Se tilbake på din siste nettleserhistorikk og nyopprettede bokmerker.",
+    "settings_pane_bookmarks_header": "Nylige bokmerker",
+    "settings_pane_visit_again_header": "Besøk igjen",
+    "settings_pane_visit_again_body": "Firefox viser deg deler av din surfehistorikk som du kanskje ønsker å huske eller komme tilbake til.",
     "settings_pane_pocketstories_header": "Hovedsakene",
     "settings_pane_pocketstories_body": "Pocket, en del av Mozilla-familien, vil hjelpe deg med å finne innhold av høy kvalitet, som du kanskje ikke ville ha funnet ellers.",
     "settings_pane_done_button": "Ferdig",
     "edit_topsites_button_text": "Rediger",
     "edit_topsites_button_label": "Tilpass seksjonen Mest besøkte",
     "edit_topsites_showmore_button": "Vis mer",
     "edit_topsites_showless_button": "Vis mindre",
     "edit_topsites_done_button": "Ferdig",
@@ -3054,33 +3271,39 @@
     "time_label_minute": "{number} मिनेट",
     "time_label_hour": "{number} घण्टा",
     "time_label_day": "{number} दिन"
   },
   "nl": {
     "newtab_page_title": "Nieuw tabblad",
     "default_label_loading": "Laden…",
     "header_top_sites": "Topwebsites",
-    "header_highlights": "Highlights",
     "header_stories": "Topverhalen",
+    "header_visit_again": "Nogmaals bezoeken",
+    "header_bookmarks": "Recente bladwijzers",
+    "header_bookmarks_placeholder": "U hebt nog geen bladwijzers.",
     "header_stories_from": "van",
     "type_label_visited": "Bezocht",
     "type_label_bookmarked": "Bladwijzer gemaakt",
     "type_label_synced": "Gesynchroniseerd vanaf ander apparaat",
     "type_label_recommended": "Trending",
     "type_label_open": "Open",
     "type_label_topic": "Onderwerp",
     "menu_action_bookmark": "Bladwijzer maken",
     "menu_action_remove_bookmark": "Bladwijzer verwijderen",
     "menu_action_copy_address": "Adres kopiëren",
     "menu_action_email_link": "Koppeling e-mailen…",
     "menu_action_open_new_window": "Openen in een nieuw venster",
     "menu_action_open_private_window": "Openen in een nieuw privévenster",
     "menu_action_dismiss": "Verwijderen",
     "menu_action_delete": "Verwijderen uit geschiedenis",
+    "menu_action_pin": "Vastmaken",
+    "menu_action_unpin": "Losmaken",
+    "confirm_history_delete_p1": "Weet u zeker dat u alle exemplaren van deze pagina uit uw geschiedenis wilt verwijderen?",
+    "confirm_history_delete_notice_p2": "Deze actie kan niet ongedaan worden gemaakt.",
     "menu_action_save_to_pocket": "Opslaan naar Pocket",
     "search_for_something_with": "Zoeken naar {search_term} met:",
     "search_button": "Zoeken",
     "search_header": "{search_engine_name} doorzoeken",
     "search_web_placeholder": "Zoeken op het web",
     "search_settings": "Zoekinstellingen wijzigen",
     "welcome_title": "Welkom bij het nieuwe tabblad",
     "welcome_body": "Firefox gebruikt deze ruimte om uw meest relevante bladwijzers, artikelen, video’s en pagina’s die u onlangs hebt bezocht weer te geven, zodat u deze eenvoudig kunt terugvinden.",
@@ -3092,18 +3315,20 @@
     "settings_pane_button_label": "Uw Nieuw-tabbladpagina aanpassen",
     "settings_pane_header": "Nieuw-tabbladvoorkeuren",
     "settings_pane_body": "Kiezen wat u ziet bij het openen van een nieuw tabblad.",
     "settings_pane_search_header": "Zoeken",
     "settings_pane_search_body": "Het web doorzoeken vanaf uw nieuwe tabblad.",
     "settings_pane_topsites_header": "Topwebsites",
     "settings_pane_topsites_body": "De websites benaderen die u het vaakst bezoekt.",
     "settings_pane_topsites_options_showmore": "Twee rijen tonen",
-    "settings_pane_highlights_header": "Highlights",
-    "settings_pane_highlights_body": "Terugkijken naar uw recente navigatiegeschiedenis en nieuw aangemaakte bladwijzers.",
+    "settings_pane_bookmarks_header": "Recente bladwijzers",
+    "settings_pane_bookmarks_body": "Uw nieuw aangemaakte bladwijzers op één handige plek.",
+    "settings_pane_visit_again_header": "Nogmaals bezoeken",
+    "settings_pane_visit_again_body": "Firefox toont delen van uw navigatiegeschiedenis die u wellicht wilt onthouden of opnieuw wilt bezoeken.",
     "settings_pane_pocketstories_header": "Topverhalen",
     "settings_pane_pocketstories_body": "Pocket, een onderdeel van de Mozilla-familie, helpt u bij het vinden van inhoud met hoge kwaliteit die u anders misschien niet had kunnen vinden.",
     "settings_pane_done_button": "Gereed",
     "edit_topsites_button_text": "Bewerken",
     "edit_topsites_button_label": "Uw sectie Topwebsites aanpassen",
     "edit_topsites_showmore_button": "Meer tonen",
     "edit_topsites_showless_button": "Minder tonen",
     "edit_topsites_done_button": "Gereed",
@@ -3125,33 +3350,39 @@
     "pocket_feedback_header": "Het beste van het web, geselecteerd door meer dan 25 miljoen mensen.",
     "pocket_feedback_body": "Pocket, een onderdeel van de Mozilla-familie, helpt u bij het vinden van inhoud met hoge kwaliteit die u anders misschien niet had kunnen vinden.",
     "pocket_send_feedback": "Feedback verzenden"
   },
   "nn-NO": {
     "newtab_page_title": "Ny flik",
     "default_label_loading": "Lastar…",
     "header_top_sites": "Mest vitja",
-    "header_highlights": "Høgdepunkt",
     "header_stories": "Hovudsakene",
+    "header_visit_again": "Bes;kigjen",
+    "header_bookmarks": "Nylege bokmerke",
+    "header_bookmarks_placeholder": "Du har ingen bokmerke enno.",
     "header_stories_from": "frå",
     "type_label_visited": "Vitja",
     "type_label_bookmarked": "Bokmerkte",
     "type_label_synced": "Synkronisert frå ei anna eining",
     "type_label_recommended": "Trendar",
     "type_label_open": "Opna",
     "type_label_topic": "Emne",
     "menu_action_bookmark": "Bokmerke",
     "menu_action_remove_bookmark": "Fjern bokmerke",
     "menu_action_copy_address": "Kopier adresse",
     "menu_action_email_link": "E-postlenke…",
     "menu_action_open_new_window": "Opna i nytt vindauge",
     "menu_action_open_private_window": "Opna i eit nytt privat vindauge",
     "menu_action_dismiss": "Avslå",
     "menu_action_delete": "Slett frå historikk",
+    "menu_action_pin": "Fest",
+    "menu_action_unpin": "L:ys",
+    "confirm_history_delete_p1": "Er du sikker på at du vil slette alle førekomstar av denne sida frå historikken din?",
+    "confirm_history_delete_notice_p2": "Denne handlinga kan ikkje angrast.",
     "menu_action_save_to_pocket": "Lagre til Pocket",
     "search_for_something_with": "Søk etter {search_term} med:",
     "search_button": "Søk",
     "search_header": "{search_engine_name}",
     "search_web_placeholder": "Søk på nettet",
     "search_settings": "Endra søkjeinnstillingar",
     "welcome_title": "Velkomen til ny fane",
     "welcome_body": "Firefox vil bruka denne plassen til å visa deg dei mest relevante bokmerka, artiklane, videoane og sidene du nettopp har vitja, slik at du enkelt kan finna tilbake til dei.",
@@ -3163,18 +3394,20 @@
     "settings_pane_button_label": "Tilpass sida for Ny fane",
     "settings_pane_header": "Innstillingar for Ny fane",
     "settings_pane_body": "Vel kva som skal visast når du opnar ei ny fane.",
     "settings_pane_search_header": "Søk",
     "settings_pane_search_body": "Søk på nettet frå den nye fana di.",
     "settings_pane_topsites_header": "Mest besøkte",
     "settings_pane_topsites_body": "Tilgang til nettsidene du besøker mest.",
     "settings_pane_topsites_options_showmore": "Vis to rader",
-    "settings_pane_highlights_header": "Høgdepunkt",
-    "settings_pane_highlights_body": "Sjå tilbake på nyleg nettlesarhistorikk og nyleg oppretta bokmerke.",
+    "settings_pane_bookmarks_header": "Nylege bokmerke",
+    "settings_pane_bookmarks_body": "Dei nyaste bokmerka dine på ein plass.",
+    "settings_pane_visit_again_header": "Besøk igjen",
+    "settings_pane_visit_again_body": "Firefox viser deg delar av surfehistorikken din som du kanskje ønskjer å hugse eller kome tilbake til.",
     "settings_pane_pocketstories_header": "Hovudsakene",
     "settings_pane_pocketstories_body": "Pocket, ein del av Mozilla-familien, vil hjelpe deg med å finne innhald av høg kvalitet, som du kanskje ikkje ville ha funne elles.",
     "settings_pane_done_button": "Ferdig",
     "edit_topsites_button_text": "Rediger",
     "edit_topsites_button_label": "Tilpass seksjonen Mest besøkte",
     "edit_topsites_showmore_button": "Vis meir",
     "edit_topsites_showless_button": "Vis mindre",
     "edit_topsites_done_button": "Ferdig",
@@ -3247,33 +3480,39 @@
     "edit_topsites_pin_button": "ਇਸ ਸਾਈਟ ਨੂੰ ਟੰਗੋ",
     "edit_topsites_edit_button": "ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ",
     "edit_topsites_dismiss_button": "ਇਸ ਸਾਈਟ ਰੱਦ ਕਰੋ"
   },
   "pl": {
     "newtab_page_title": "Nowa karta",
     "default_label_loading": "Wczytywanie…",
     "header_top_sites": "Popularne",
-    "header_highlights": "Wyróżnione",
     "header_stories": "Popularne artykuły",
+    "header_visit_again": "Odwiedź ponownie",
+    "header_bookmarks": "Najnowsze zakładki",
+    "header_bookmarks_placeholder": "Nie ma jeszcze żadnych zakładek.",
     "header_stories_from": "od:",
     "type_label_visited": "Odwiedzone",
     "type_label_bookmarked": "Zakładka",
     "type_label_synced": "Z innego urządzenia",
     "type_label_recommended": "Polecane",
     "type_label_open": "Otwarte",
     "type_label_topic": "Temat",
     "menu_action_bookmark": "Dodaj zakładkę",
     "menu_action_remove_bookmark": "Usuń zakładkę",
     "menu_action_copy_address": "Kopiuj adres",
     "menu_action_email_link": "Wyślij odnośnik…",
     "menu_action_open_new_window": "Otwórz w nowym oknie",
     "menu_action_open_private_window": "Otwórz w nowym oknie prywatnym",
     "menu_action_dismiss": "Odrzuć",
     "menu_action_delete": "Usuń z historii",
+    "menu_action_pin": "Przypnij",
+    "menu_action_unpin": "Odepnij",
+    "confirm_history_delete_p1": "Czy na pewno usunąć każde wystąpienie tej strony z historii?",
+    "confirm_history_delete_notice_p2": "Nie można tego cofnąć.",
     "menu_action_save_to_pocket": "Zapisz w Pocket",
     "search_for_something_with": "Szukaj „{search_term}” w:",
     "search_button": "Szukaj",
     "search_header": "Wyszukiwanie w {search_engine_name}",
     "search_web_placeholder": "Szukaj",
     "search_settings": "Zmień ustawienia wyszukiwania",
     "welcome_title": "Witamy w nowej karcie",
     "welcome_body": "W tym miejscu Firefox będzie wyświetlał najciekawsze zakładki, artykuły, filmy i niedawno odwiedzone strony, aby można było do nich łatwo wrócić.",
@@ -3285,18 +3524,20 @@
     "settings_pane_button_label": "Dostosuj stronę nowej karty",
     "settings_pane_header": "Preferencje nowej karty",
     "settings_pane_body": "Wybierz, co widać po otwarciu nowej karty.",
     "settings_pane_search_header": "Wyszukiwanie",
     "settings_pane_search_body": "Szukaj w Internecie na nowej karcie.",
     "settings_pane_topsites_header": "Popularne",
     "settings_pane_topsites_body": "Otwieraj najczęściej odwiedzane strony.",
     "settings_pane_topsites_options_showmore": "Dwa rzędy",
-    "settings_pane_highlights_header": "Wyróżnione",
-    "settings_pane_highlights_body": "Przeglądaj historię i nowo dodane zakładki.",
+    "settings_pane_bookmarks_header": "Najnowsze zakładki",
+    "settings_pane_bookmarks_body": "Nowo utworzone zakładki w jednym miejscu.",
+    "settings_pane_visit_again_header": "Odwiedź ponownie",
+    "settings_pane_visit_again_body": "Firefox pokaże strony z historii, do których warto wrócić.",
     "settings_pane_pocketstories_header": "Popularne artykuły",
     "settings_pane_pocketstories_body": "Pocket, będący częścią Mozilli, pomoże w szukaniu artykułów wysokiej jakości, aby nic Cię nie ominęło.",
     "settings_pane_done_button": "Gotowe",
     "edit_topsites_button_text": "Edytuj",
     "edit_topsites_button_label": "Dostosuj często odwiedzane strony",
     "edit_topsites_showmore_button": "Więcej",
     "edit_topsites_showless_button": "Mniej",
     "edit_topsites_done_button": "Gotowe",
@@ -3318,33 +3559,39 @@
     "pocket_feedback_header": "Najlepsze, co oferuje Internet, wybrane przez ponad 25 milionów osób.",
     "pocket_feedback_body": "Pocket, będący częścią Mozilli, pomoże w szukaniu artykułów wysokiej jakości, aby nic Cię nie ominęło.",
     "pocket_send_feedback": "Wyślij opinię"
   },
   "pt-BR": {
     "newtab_page_title": "Nova aba",
     "default_label_loading": "Carregando…",
     "header_top_sites": "Sites preferidos",
-    "header_highlights": "Destaques",
     "header_stories": "Histórias populares",
+    "header_visit_again": "Visitar novamente",
+    "header_bookmarks": "Favoritos recentes",
+    "header_bookmarks_placeholder": "Você ainda não tem nenhum favorito.",
     "header_stories_from": "de",
     "type_label_visited": "Visitado",
     "type_label_bookmarked": "Adicionado aos favoritos",
     "type_label_synced": "Sincronizado a partir de outro dispositivo",
     "type_label_recommended": "Tendência",
-    "type_label_open": "Abrir",
+    "type_label_open": "Abertas",
     "type_label_topic": "Tópico",
     "menu_action_bookmark": "Adicionar aos favoritos",
     "menu_action_remove_bookmark": "Remover favorito",
     "menu_action_copy_address": "Copiar endereço",
     "menu_action_email_link": "Enviar link por e-mail…",
     "menu_action_open_new_window": "Abrir em uma nova janela",
     "menu_action_open_private_window": "Abrir em uma nova janela privativa",
     "menu_action_dismiss": "Dispensar",
     "menu_action_delete": "Excluir do histórico",
+    "menu_action_pin": "Fixar",
+    "menu_action_unpin": "Desafixar",
+    "confirm_history_delete_p1": "Você tem certeza que deseja deletar todas as ocorrências dessa página do seu histórico?",
+    "confirm_history_delete_notice_p2": "Essa ação não pode ser desfeita.",
     "menu_action_save_to_pocket": "Salvar no Pocket",
     "search_for_something_with": "Pesquisar por {search_term} com:",
     "search_button": "Pesquisar",
     "search_header": "Pesquisa {search_engine_name}",
     "search_web_placeholder": "Pesquisar na Web",
     "search_settings": "Alterar configurações de pesquisa",
     "welcome_title": "Bem-vindo a nova aba",
     "welcome_body": "O Firefox usará este espaço para mostrar seus favoritos, artigos, vídeos e páginas mais relevantes visitados recentemente, assim você pode voltar mais facilmente.",
@@ -3356,18 +3603,20 @@
     "settings_pane_button_label": "Personalizar sua página de nova aba",
     "settings_pane_header": "Preferências de novas abas",
     "settings_pane_body": "Escolha o que ver quando abrir uma nova aba.",
     "settings_pane_search_header": "Pesquisar",
     "settings_pane_search_body": "Pesquise na Web a partir da sua nova aba.",
     "settings_pane_topsites_header": "Sites preferidos",
     "settings_pane_topsites_body": "Acesse os sites que você mais visita.",
     "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
-    "settings_pane_highlights_header": "Destaques",
-    "settings_pane_highlights_body": "Veja o seu histórico de navegação recente e favoritos recentemente criados.",
+    "settings_pane_bookmarks_header": "Favoritos recentes",
+    "settings_pane_bookmarks_body": "Seus favoritos recém criados em uma posição acessível.",
+    "settings_pane_visit_again_header": "Visite novamente",
+    "settings_pane_visit_again_body": "Firefox irá exibir a você partes do seu histórico de navegação que você pode querer relembrar ou acessar novamente.",
     "settings_pane_pocketstories_header": "Histórias populares",
     "settings_pane_pocketstories_body": "O Pocket, parte da família Mozilla, irá ajudar a conecta-se a conteúdo de alta qualidade que talvez não tenha encontrado de outra forma.",
     "settings_pane_done_button": "Concluído",
     "edit_topsites_button_text": "Editar",
     "edit_topsites_button_label": "Personalizar a sua seção de sites preferidos",
     "edit_topsites_showmore_button": "Mostrar mais",
     "edit_topsites_showless_button": "Mostrar menos",
     "edit_topsites_done_button": "Concluído",
@@ -3389,33 +3638,39 @@
     "pocket_feedback_header": "O melhor da web, com curadoria de mais de 25 milhões de pessoas.",
     "pocket_feedback_body": "O Pocket, parte da família Mozilla, irá ajudar a conecta-se a conteúdo de alta qualidade que talvez não tenha encontrado de outra forma.",
     "pocket_send_feedback": "Enviar feedback"
   },
   "pt-PT": {
     "newtab_page_title": "Novo separador",
     "default_label_loading": "A carregar…",
     "header_top_sites": "Sites mais visitados",
-    "header_highlights": "Destaques",
     "header_stories": "Histórias principais",
+    "header_visit_again": "Visitar novamente",
+    "header_bookmarks": "Marcadores recentes",
+    "header_bookmarks_placeholder": "Ainda não tem quaisquer marcadores.",
     "header_stories_from": "de",
     "type_label_visited": "Visitados",
     "type_label_bookmarked": "Guardados nos marcadores",
     "type_label_synced": "Sincronizado a partir de outro dispositivo",
     "type_label_recommended": "Tendência",
     "type_label_open": "Abertos",
     "type_label_topic": "Tópico",
     "menu_action_bookmark": "Adicionar aos marcadores",
     "menu_action_remove_bookmark": "Remover marcador",
     "menu_action_copy_address": "Copiar endereço",
     "menu_action_email_link": "Enviar ligação por email…",
     "menu_action_open_new_window": "Abrir em nova janela",
     "menu_action_open_private_window": "Abrir em nova janela privada",
     "menu_action_dismiss": "Dispensar",
     "menu_action_delete": "Eliminar do histórico",
+    "menu_action_pin": "Afixar",
+    "menu_action_unpin": "Desafixar",
+    "confirm_history_delete_p1": "Tem a certeza de que deseja apagar todas as instâncias desta página do seu histórico?",
+    "confirm_history_delete_notice_p2": "Esta ação não pode ser desfeita.",
     "menu_action_save_to_pocket": "Guardar no Pocket",
     "search_for_something_with": "Pesquisar por {search_term} com:",
     "search_button": "Pesquisar",
     "search_header": "Pesquisa {search_engine_name}",
     "search_web_placeholder": "Pesquisar na Web",
     "search_settings": "Alterar definições de pesquisa",
     "welcome_title": "Bem-vindo ao novo separador",
     "welcome_body": "O Firefox irá utilizar este espaço para lhe mostrar os seus marcadores, artigos, vídeos, e páginas mais relevantes que visitou recentemente, para que possa regressar a estes mais facilmente.",
@@ -3427,18 +3682,20 @@
     "settings_pane_button_label": "Personalizar a sua página de novo separador",
     "settings_pane_header": "Novas preferências de separador",
     "settings_pane_body": "Escolha o que ver quando abre um novo separador.",
     "settings_pane_search_header": "Pesquisar",
     "settings_pane_search_body": "Pesquise na Web a partir do seu novo separador.",
     "settings_pane_topsites_header": "Sites mais visitados",
     "settings_pane_topsites_body": "Aceda aos websites que mais visita.",
     "settings_pane_topsites_options_showmore": "Mostrar duas linhas",
-    "settings_pane_highlights_header": "Destaques",
-    "settings_pane_highlights_body": "Veja o seu histórico de navegação recente e marcadores recentemente criados.",
+    "settings_pane_bookmarks_header": "Marcadores recentes",
+    "settings_pane_bookmarks_body": "Os seus marcadores recém-criados num único local acessível.",
+    "settings_pane_visit_again_header": "Visitar novamente",
+    "settings_pane_visit_again_body": "O Firefox irá mostrar-lhe partes do seu histórico de navegação que pode querer relembrar ou voltar a aceder.",
     "settings_pane_pocketstories_header": "Histórias principais",
     "settings_pane_pocketstories_body": "O Pocket, parte da família Mozilla, irá ajudar a ligar-se a conteúdo de alta qualidade que você poderia não ter encontrado de outra forma.",
     "settings_pane_done_button": "Feito",
     "edit_topsites_button_text": "Editar",
     "edit_topsites_button_label": "Personalizar a sua secção de sites mais visitados",
     "edit_topsites_showmore_button": "Mostrar mais",
     "edit_topsites_showless_button": "Mostrar menos",
     "edit_topsites_done_button": "Feito",
@@ -3461,29 +3718,33 @@
     "pocket_feedback_body": "O Pocket, parte da família Mozilla, irá ajudar a ligar-se a conteúdo de alta qualidade que você poderia não ter encontrado de outra forma.",
     "pocket_send_feedback": "Enviar feedback"
   },
   "rm": {
     "newtab_page_title": "Nov tab",
     "default_label_loading": "Chargiar…",
     "header_top_sites": "Paginas preferidas",
     "header_highlights": "Accents",
+    "header_stories": "Artitgels populars",
+    "header_stories_from": "da",
     "type_label_visited": "Visità",
     "type_label_bookmarked": "Cun segnapagina",
     "type_label_synced": "Sincronisà dad auters apparats",
+    "type_label_recommended": "Popular",
     "type_label_open": "Avert",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Marcar sco segnapagina",
     "menu_action_remove_bookmark": "Allontanar il segnapagina",
     "menu_action_copy_address": "Copiar l'adressa",
     "menu_action_email_link": "Trametter la colliaziun per e-mail…",
     "menu_action_open_new_window": "Avrir en ina nova fanestra",
     "menu_action_open_private_window": "Avrir en ina nova fanestra privata",
     "menu_action_dismiss": "Serrar",
     "menu_action_delete": "Stizzar da la cronologia",
+    "menu_action_save_to_pocket": "Memorisar en Pocket",
     "search_for_something_with": "Tschertgar {search_term} cun:",
     "search_button": "Tschertgar",
     "search_header": "Tschertga da {search_engine_name}",
     "search_web_placeholder": "Tschertgar en il Web",
     "search_settings": "Midar las preferenzas per tschertgar",
     "welcome_title": "Bainvegni sin in nov tab",
     "welcome_body": "Firefox utilisescha quest plaz per ta mussar ils segnapaginas, ils artitgels, ils videos e las paginas las pli relevantas che ti has visità dacurt, uschè che ti pos turnar a moda simpla tar quellas.",
     "welcome_label": "Identifitgar tes accents",
@@ -3496,25 +3757,42 @@
     "settings_pane_body": "Tscherna tge che ti vesas sche ti avras in nov tab.",
     "settings_pane_search_header": "Tschertgar",
     "settings_pane_search_body": "Tschertgar en l'internet da tes nov tab.",
     "settings_pane_topsites_header": "Paginas preferidas",
     "settings_pane_topsites_body": "Acceder las websites che ti visitas il pli savens.",
     "settings_pane_topsites_options_showmore": "Mussar duas colonnas",
     "settings_pane_highlights_header": "Accents",
     "settings_pane_highlights_body": "Dar in sguard enavos sin websites visitadas dacurt e sin segnapaginas creads dacurt.",
+    "settings_pane_pocketstories_header": "Artitgels populars",
+    "settings_pane_pocketstories_body": "Pocket che fa part da Mozilla ta gida da scuvrir cuntegn dad auta qualitad che ti avessas uschiglio forsa manchentà.",
     "settings_pane_done_button": "Finì",
     "edit_topsites_button_text": "Modifitgar",
     "edit_topsites_button_label": "Persunalisar la secziun da paginas preferidas",
     "edit_topsites_showmore_button": "Mussar dapli",
     "edit_topsites_showless_button": "Mussar pli pauc",
     "edit_topsites_done_button": "Finì",
     "edit_topsites_pin_button": "Fixar questa pagina",
+    "edit_topsites_unpin_button": "Betg pli fixar questa pagina",
     "edit_topsites_edit_button": "Modifitgar questa pagina",
-    "edit_topsites_dismiss_button": "Allontanar questa pagina"
+    "edit_topsites_dismiss_button": "Allontanar questa pagina",
+    "edit_topsites_add_button": "Agiuntar",
+    "topsites_form_add_header": "Nova pagina populara",
+    "topsites_form_edit_header": "Modifitgar la pagina populara",
+    "topsites_form_title_placeholder": "Endatar in titel",
+    "topsites_form_url_placeholder": "Tippar u encollar in URL",
+    "topsites_form_add_button": "Agiuntar",
+    "topsites_form_save_button": "Memorisar",
+    "topsites_form_cancel_button": "Interrumper",
+    "topsites_form_url_validation": "In URL valid è necessari",
+    "pocket_read_more": "Temas populars:",
+    "pocket_read_even_more": "Mussar dapli artitgels",
+    "pocket_feedback_header": "Il meglier ord il web, selecziunà da dapli che 25 milliuns umans.",
+    "pocket_feedback_body": "Pocket che fa part da Mozilla ta gida da scuvrir cuntegn dad auta qualitad che ti avessas uschiglio forsa manchentà.",
+    "pocket_send_feedback": "Trametter in resun"
   },
   "ro": {
     "newtab_page_title": "Filă nouă",
     "default_label_loading": "Se încarcă…",
     "header_top_sites": "Site-uri de top",
     "header_highlights": "Evidențieri",
     "header_stories_from": "de la",
     "type_label_visited": "Vizitate",
@@ -3644,33 +3922,39 @@
     "pocket_feedback_body": "Pocket, часть семьи Mozilla, поможет подключить вас к высококачественному контенту, который вы можете иначе и не найти.",
     "pocket_send_feedback": "Отправить отзыв"
   },
   "si": {},
   "sk": {
     "newtab_page_title": "Nová karta",
     "default_label_loading": "Načítava sa…",
     "header_top_sites": "Top stránky",
-    "header_highlights": "Vybrané stránky",
     "header_stories": "Top príbehy",
+    "header_visit_again": "Navštívte znova",
+    "header_bookmarks": "Nedávno pridané záložky",
+    "header_bookmarks_placeholder": "Zatiaľ nemáte žiadne záložky.",
     "header_stories_from": "zo služby",
     "type_label_visited": "Navštívené",
     "type_label_bookmarked": "V záložkách",
     "type_label_synced": "Synchronizované z ďalšieho zariadenia",
     "type_label_recommended": "Trendy",
     "type_label_open": "Otvorené",
     "type_label_topic": "Téma",
     "menu_action_bookmark": "Pridať medzi záložky",
     "menu_action_remove_bookmark": "Odstrániť záložku",
     "menu_action_copy_address": "Kopírovať adresu",
     "menu_action_email_link": "Odoslať odkaz e-mailom…",
     "menu_action_open_new_window": "Otvoriť v novom okne",
     "menu_action_open_private_window": "Otvoriť v novom okne režimu Súkromné prehliadanie",
     "menu_action_dismiss": "Skryť",
     "menu_action_delete": "Odstrániť z histórie",
+    "menu_action_pin": "Pripnúť",
+    "menu_action_unpin": "Odopnúť",
+    "confirm_history_delete_p1": "Ste si istí, že chcete odstrániť všetky výskyty tejto stránky zo svojej histórie prehliadania?",
+    "confirm_history_delete_notice_p2": "Túto akciu nie je možné vrátiť späť.",
     "menu_action_save_to_pocket": "Uložiť do služby Pocket",
     "search_for_something_with": "Hľadať {search_term} pomocou:",
     "search_button": "Hľadať",
     "search_header": "Vyhľadávanie pomocou {search_engine_name}",
     "search_web_placeholder": "Vyhľadávanie na webe",
     "search_settings": "Zmeniť nastavenia vyhľadávania",
     "welcome_title": "Vitajte na stránke novej karty",
     "welcome_body": "Firefox bude na tomto mieste zobrazovať často zobrazované záložky, články, videá a stránky, ktoré ste nedávno navštívili. Váš prístup k nim je tak omnoho ľahší.",
@@ -3682,18 +3966,20 @@
     "settings_pane_button_label": "Prispôsobte si svoju stránku Nová karta",
     "settings_pane_header": "Nastavenia Novej karty",
     "settings_pane_body": "Vyberte si, čo chcete vidieť keď otvoríte novú kartu.",
     "settings_pane_search_header": "Vyhľadávanie",
     "settings_pane_search_body": "Vyhľadávanie zo stránky novej karty.",
     "settings_pane_topsites_header": "Top stránky",
     "settings_pane_topsites_body": "Prístup k webovým stránkam, ktoré navštevujete najčastejšie.",
     "settings_pane_topsites_options_showmore": "Zobraziť dva riadky",
-    "settings_pane_highlights_header": "Vybrané stránky",
-    "settings_pane_highlights_body": "Pozrite sa na vašu nedávnu históriu prehliadania a na novovytvorené záložky.",
+    "settings_pane_bookmarks_header": "Nedávno pridané záložky",
+    "settings_pane_bookmarks_body": "Vaše nedávno pridané záložky na jednom mieste.",
+    "settings_pane_visit_again_header": "Navštívte znova",
+    "settings_pane_visit_again_body": "Firefox vám ukáže niektoré časti vašej histórie prehliadania, ktoré by ste si mohli chcieť pripomenúť alebo sa k nim vrátiť.",
     "settings_pane_pocketstories_header": "Top príbehy",
     "settings_pane_pocketstories_body": "Pocket, súčasť Mozilla rodiny, vám pomôže nájsť vysokokvalitný obsah, ktorý by ste inde zrejme nenašli.",
     "settings_pane_done_button": "Hotovo",
     "edit_topsites_button_text": "Upraviť",
     "edit_topsites_button_label": "Upravte sekciu Top stránky",
     "edit_topsites_showmore_button": "Zobraziť viac",
     "edit_topsites_showless_button": "Zobraziť menej",
     "edit_topsites_done_button": "Hotovo",
@@ -3715,33 +4001,39 @@
     "pocket_feedback_header": "To najlepšie z webu - podľa názoru 25 miliónov ľudí.",
     "pocket_feedback_body": "Pocket, súčasť Mozilla rodiny, vám pomôže nájsť vysokokvalitný obsah, ktorý by ste inde zrejme nenašli.",
     "pocket_send_feedback": "Odoslať spätnú väzbu"
   },
   "sl": {
     "newtab_page_title": "Nov zavihek",
     "default_label_loading": "Nalaganje …",
     "header_top_sites": "Glavne strani",
-    "header_highlights": "Poudarki",
     "header_stories": "Glavne vesti",
+    "header_visit_again": "Obiščite znova",
+    "header_bookmarks": "Nedavni zaznamki",
+    "header_bookmarks_placeholder": "Nimate še nobenih zaznamkov.",
     "header_stories_from": "od",
     "type_label_visited": "Obiskano",
     "type_label_bookmarked": "Med zaznamki",
     "type_label_synced": "Sinhronizirano z druge naprave",
     "type_label_recommended": "Najbolj priljubljeno",
     "type_label_open": "Odpri",
     "type_label_topic": "Tema",
     "menu_action_bookmark": "Dodaj med zaznamke",
     "menu_action_remove_bookmark": "Odstrani zaznamek",
     "menu_action_copy_address": "Kopiraj naslov",
     "menu_action_email_link": "Pošlji povezavo po e-pošti …",
     "menu_action_open_new_window": "Odpri v novem oknu",
     "menu_action_open_private_window": "Odpri v novem zasebnem oknu",
     "menu_action_dismiss": "Opusti",
     "menu_action_delete": "Izbriši iz zgodovine",
+    "menu_action_pin": "Pripni",
+    "menu_action_unpin": "Odpni",
+    "confirm_history_delete_p1": "Ali ste prepričani, da želite izbrisati vse primerke te strani iz zgodovine?",
+    "confirm_history_delete_notice_p2": "Tega dejanja ni mogoče razveljaviti.",
     "menu_action_save_to_pocket": "Shrani v Pocket",
     "search_for_something_with": "Išči \"{search_term}\" z iskalnikom:",
     "search_button": "Iskanje",
     "search_header": "Iskanje {search_engine_name}",
     "search_web_placeholder": "Iskanje po spletu",
     "search_settings": "Spremeni nastavitve iskanja",
     "welcome_title": "Dobrodošli v novem zavihku",
     "welcome_body": "Na tem prostoru bo Firefox prikazoval najustreznejše zaznamke, članke, videoposnetke in nedavno obiskane strani, tako da jih lahko pozneje znova hitro najdete.",
@@ -3753,18 +4045,20 @@
     "settings_pane_button_label": "Prilagodite stran novega zavihka",
     "settings_pane_header": "Nastavitve novega zavihka",
     "settings_pane_body": "Izberite, kaj naj se prikaže, ko odprete nov zavihek.",
     "settings_pane_search_header": "Išči",
     "settings_pane_search_body": "Iščite po spletu s strani novega zavihka.",
     "settings_pane_topsites_header": "Glavne strani",
     "settings_pane_topsites_body": "Priročen dostop do najbolj obiskanih strani.",
     "settings_pane_topsites_options_showmore": "Prikaži dve vrsti",
-    "settings_pane_highlights_header": "Poudarki",
-    "settings_pane_highlights_body": "Pogled nazaj na nedavno zgodovino brskanja in novo ustvarjene zaznamke.",
+    "settings_pane_bookmarks_header": "Nedavni zaznamki",
+    "settings_pane_bookmarks_body": "Vaši novo ustvarjeni zaznamki na enem mestu.",
+    "settings_pane_visit_again_header": "Obiščite znova",
+    "settings_pane_visit_again_body": "Firefox vam bo prikazoval dele zgodovine brskanja, ki bi se jih morda želeli spomniti ali se nanje vrniti.",
     "settings_pane_pocketstories_header": "Glavne vesti",
     "settings_pane_pocketstories_body": "Pocket, del Mozilline družine, vam bo pomagal pridobiti visokokakovostne vsebine, ki jih sicer ne bi našli.",
     "settings_pane_done_button": "Končano",
     "edit_topsites_button_text": "Uredi",
     "edit_topsites_button_label": "Prilagodite odsek Glavne strani",
     "edit_topsites_showmore_button": "Prikaži več",
     "edit_topsites_showless_button": "Prikaži manj",
     "edit_topsites_done_button": "Končano",
@@ -3908,33 +4202,39 @@
     "pocket_feedback_header": "Најбоље од веба од преко 25 милиона кустоса.",
     "pocket_feedback_body": "Pocket, део Mozilla-ине породице, ће вам помоћи да повежете ваш квалитетан садржај који можда не би пронашли другачије.",
     "pocket_send_feedback": "Пошаљи повратну информацију"
   },
   "sv-SE": {
     "newtab_page_title": "Ny flik",
     "default_label_loading": "Laddar…",
     "header_top_sites": "Mest besökta",
-    "header_highlights": "Höjdpunkter",
     "header_stories": "Huvudnyheter",
+    "header_visit_again": "Besökt igen",
+    "header_bookmarks": "Senaste bokmärken",
+    "header_bookmarks_placeholder": "Du har inga bokmärken ännu.",
     "header_stories_from": "från",
     "type_label_visited": "Besökta",
     "type_label_bookmarked": "Bokmärkta",
     "type_label_synced": "Synkroniserade från en annan enhet",
     "type_label_recommended": "Trend",
     "type_label_open": "Öppna",
     "type_label_topic": "Ämne",
     "menu_action_bookmark": "Bokmärke",
     "menu_action_remove_bookmark": "Ta bort bokmärke",
     "menu_action_copy_address": "Kopiera adress",
     "menu_action_email_link": "E-posta länk…",
     "menu_action_open_new_window": "Öppna i nytt fönster",
     "menu_action_open_private_window": "Öppna i nytt privat fönster",
     "menu_action_dismiss": "Avfärda",
     "menu_action_delete": "Ta bort från historik",
+    "menu_action_pin": "Fäst",
+    "menu_action_unpin": "Lösgör",
+    "confirm_history_delete_p1": "Är du säker på att du vill radera varje förekomst av den här sidan från din historik?",
+    "confirm_history_delete_notice_p2": "Den här åtgärden kan inte ångras.",
     "menu_action_save_to_pocket": "Spara till Pocket",
     "search_for_something_with": "Sök efter {search_term} med:",
     "search_button": "Sök",
     "search_header": "{search_engine_name}",
     "search_web_placeholder": "Sök på webben",
     "search_settings": "Ändra sökinställningar",
     "welcome_title": "Välkommen till ny flik",
     "welcome_body": "Firefox kommer att använda detta utrymme för att visa dina mest relevanta bokmärken, artiklar, videor och sidor du nyligen besökt, så du kan hitta dem lätt.",
@@ -3946,18 +4246,20 @@
     "settings_pane_button_label": "Anpassa sidan för Ny flik",
     "settings_pane_header": "Inställningar Ny flik",
     "settings_pane_body": "Välj vad som ska visas när du öppnar en ny flik.",
     "settings_pane_search_header": "Sök",
     "settings_pane_search_body": "Sök på webben från din nya flik.",
     "settings_pane_topsites_header": "Mest besökta",
     "settings_pane_topsites_body": "Åtkomst till de webbplatser du besökt mest.",
     "settings_pane_topsites_options_showmore": "Visa två rader",
-    "settings_pane_highlights_header": "Höjdpunkter",
-    "settings_pane_highlights_body": "Titta tillbaka på din senaste webbhistorik och nyskapade bokmärken.",
+    "settings_pane_bookmarks_header": "Senaste bokmärken",
+    "settings_pane_bookmarks_body": "Dina nyskapade bokmärken på ett bra ställe.",
+    "settings_pane_visit_again_header": "Besökt igen",
+    "settings_pane_visit_again_body": "Firefox visar dig delar av din surfhistorik som du kanske vill komma ihåg eller återkomma till.",
     "settings_pane_pocketstories_header": "Huvudnyheter",
     "settings_pane_pocketstories_body": "Pocket, en del av Mozilla-familjen, hjälper dig att hitta högkvalitativt innehåll som du kanske annars inte hade hittat.",
     "settings_pane_done_button": "Klar",
     "edit_topsites_button_text": "Redigera",
     "edit_topsites_button_label": "Anpassa avsnittet Mest besökta",
     "edit_topsites_showmore_button": "Visa mer",
     "edit_topsites_showless_button": "Visa mindre",
     "edit_topsites_done_button": "Klar",
@@ -3979,33 +4281,39 @@
     "pocket_feedback_header": "Det bästa av webben, sammanställt av över 25 miljoner människor.",
     "pocket_feedback_body": "Pocket, en del av Mozilla-familjen, hjälper dig att hitta högkvalitativt innehåll som du kanske annars inte hade hittat.",
     "pocket_send_feedback": "Skicka återkoppling"
   },
   "ta": {
     "newtab_page_title": "புதிய கீற்று",
     "default_label_loading": "ஏற்றுகிறது…",
     "header_top_sites": "சிறந்த தளங்கள்",
-    "header_highlights": "சிறப்பம்சங்கள்",
     "header_stories": "முக்கிய கதைகள்",
+    "header_visit_again": "மீண்டும் வருக",
+    "header_bookmarks": "சமீபத்திய புத்தகக்குறிகள்",
+    "header_bookmarks_placeholder": "நீங்கள் புத்தகக்குறிகளைக் கொண்டிருக்கவில்லை .",
     "header_stories_from": "அனுப்பியவர்",
     "type_label_visited": "பார்த்தவை",
     "type_label_bookmarked": "புத்தகக்குறியிடப்பட்டது",
     "type_label_synced": "இன்னொரு சாதனத்திலிருந்து ஒத்திசைக்கப்பட்டது",
     "type_label_recommended": "பிரபலமான",
     "type_label_open": "திற",
     "type_label_topic": "தலைப்பு",
     "menu_action_bookmark": "புத்தகக்குறி",
     "menu_action_remove_bookmark": "புத்தகக்குறியை நீக்கு",
     "menu_action_copy_address": "முகவரியை நகலெடு",
     "menu_action_email_link": "மின்னஞ்சல் தொடுப்பு…",
     "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": "பாக்கட்டில் சேமி",
     "search_for_something_with": "{search_term} சொல்லிற்காகத் தேடு:",
     "search_button": "தேடு",
     "search_header": "{search_engine_name} தேடுபொறியில் தேடு",
     "search_web_placeholder": "இணையத்தில் தேடு",
     "search_settings": "தேடல் அமைவுகளை மாற்று",
     "welcome_title": "புதிய கீற்றுக்கு வருக",
     "welcome_body": "உங்களுக்கு மிகவும் பொருத்தமான புத்தகக்குறிகள், கட்டுரைகள், காணொளிகள் மற்றும் சமீபத்தில் பார்வையிட்ட பக்கங்களைக் காண்பிக்க பயர்பாக்ஸ் இந்த இடத்தைப் பயன்படுத்தும், எனவே நீங்கள் அவற்றை எளிதாகத் திரும்பப் பெறலாம்.",
@@ -4017,18 +4325,20 @@
     "settings_pane_button_label": "உங்கள் புதிய கீற்றுப் பக்கத்தை விருப்பமை",
     "settings_pane_header": "புதிய கீற்றின் முன்னுரிமைகள்",
     "settings_pane_body": "ஒரு புதிய கீற்றைத் திறக்கும்போது நீங்கள் பார்ப்பதை தேர்க.",
     "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_body": "உங்கள் சமீபத்திய உலாவல் வரலாற்றையும் புதிதாகச் சேர்த்த புக்மார்க்குகளையும் திரும்பப் பார்க்கவும்.",
+    "settings_pane_bookmarks_header": "சமீபத்திய புத்தகக்குறிகள்",
+    "settings_pane_bookmarks_body": "ஒரு வசதியான இடத்தில் உங்கள் புதிதாக உருவாக்கப்பட்ட புத்தகக்குறிகள்.",
+    "settings_pane_visit_again_header": "மீண்டும் வருக",
+    "settings_pane_visit_again_body": "பயர்பாக்ஸ் நீங்கள் நினைவுப்படுத்த (அ) திரும்பப் பெற விரும்பும் உங்கள் உலாவல் வரலாற்றின் சில பகுதிகளைக் காட்டும்.",
     "settings_pane_pocketstories_header": "முக்கிய கதைகள்",
     "settings_pane_pocketstories_body": "Pocket, ஒரு மொசில்லா குடும்ப உறுப்பினராக, உயர்தர உள்ளடக்கங்களுடன் இணைய உதவுகிறது, இது இல்லையேல் அது சாத்தியமாகது.",
     "settings_pane_done_button": "முடிந்தது",
     "edit_topsites_button_text": "தொகு",
     "edit_topsites_button_label": "உங்களின் சிறந்த தளங்களுக்கான தொகுதியை விருப்பமை",
     "edit_topsites_showmore_button": "கூடுதலாகக் காட்டுக",
     "edit_topsites_showless_button": "குறைவாகக் காண்பி",
     "edit_topsites_done_button": "முடிந்தது",
@@ -4052,29 +4362,33 @@
     "pocket_send_feedback": "கருத்துகளைத் தெறிவிக்கவும்"
   },
   "ta-LK": {},
   "te": {
     "newtab_page_title": "కొత్త ట్యాబు",
     "default_label_loading": "వస్తోంది…",
     "header_top_sites": "మేటి సైట్లు",
     "header_highlights": "ముఖ్యాంశాలు",
+    "header_stories": "ముఖ్య కథనాలు",
+    "header_stories_from": "నుండి",
     "type_label_visited": "సందర్శించినవి",
     "type_label_bookmarked": "ఇష్టాంశము చేయబడినది",
     "type_label_synced": "మరో పరికరం నుంచి సమకాలీకరించి తెచ్చుకున్నవి",
+    "type_label_recommended": "ట్రెండింగ్",
     "type_label_open": "తెరువు",
     "type_label_topic": "విషయం",
     "menu_action_bookmark": "ఇష్టాంశము",
     "menu_action_remove_bookmark": "ఇష్టాంశాన్ని తొలగించు",
     "menu_action_copy_address": "చిరునామా కాపీ చెయ్యండి",
     "menu_action_email_link": "ఈమెయిలు లింకు…",
     "menu_action_open_new_window": "కొత్త విండోలో తెరువు",
     "menu_action_open_private_window": "కొత్త వ్యక్తిగత విండోలో తెరువు",
     "menu_action_dismiss": "విస్మరించు",
     "menu_action_delete": "చరిత్ర నుంచి తీసివేయి",
+    "menu_action_save_to_pocket": "Pocket కి సేవ్ చేయండి",
     "search_for_something_with": "{search_term} కోసం దీని సాయంతో వెతుకు:",
     "search_button": "వెతకండి",
     "search_header": "{search_engine_name} శోధన",
     "search_web_placeholder": "జాలంలో వెతకండి",
     "search_settings": "శోధన అమరికలు మార్చు",
     "welcome_title": "కొత్త ట్యాబుకు స్వాగతం",
     "welcome_body": "సముచితమైన మీ ఇష్టాంశాలను, వ్యాసాలను, వీడియోలను, ఇంకా మీరు ఇటీవలే చూసిన పేజీలను మీకు తేలిగ్గా అందుబాటులో ఉంచేందుకు Firefox ఈ జాగాని వాడుకుంటుంది.",
     "welcome_label": "మీ ముఖ్యాంశాలను గుర్తిస్తున్నది",
@@ -4087,47 +4401,69 @@
     "settings_pane_body": "మీరు కొత్త ట్యాబు తెరిచినప్పుడు ఏం చూడాలో ఎంచుకోండి.",
     "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_body": "మీ ఇటీవలి విహరణ చరిత్రనూ కొత్త ఇష్టాంశాలను చూడండి.",
+    "settings_pane_pocketstories_header": "ముఖ్య కథనాలు",
+    "settings_pane_pocketstories_body": "Mozilla కుటుంబం యొక్క Pocket, మీరు కనుగొనలేకపోయే అధిక-నాణ్యత విషయముకి మిమ్మల్ని అనుసంధానించడానికి సహాయపడుతుంది.",
     "settings_pane_done_button": "పూర్తయింది",
     "edit_topsites_button_text": "మార్చు",
     "edit_topsites_button_label": "మీ మేటి సైట్ల విభాగాన్ని మలచుకోండి",
     "edit_topsites_showmore_button": "ఇంకా చూపించు",
     "edit_topsites_showless_button": "కొన్నే చూపించు",
     "edit_topsites_done_button": "పూర్తయింది",
     "edit_topsites_pin_button": "ఈ సైటును ఇక్కడ గుచ్చు",
+    "edit_topsites_unpin_button": "ఈ సైట్ను అన్పిన్ చేయండి",
     "edit_topsites_edit_button": "ఈ సైటును మార్చు",
-    "edit_topsites_dismiss_button": "ఈ సైటుని తీసివేయి"
+    "edit_topsites_dismiss_button": "ఈ సైటుని తీసివేయి",
+    "edit_topsites_add_button": "జోడించు",
+    "topsites_form_add_header": "కొత్త టాప్ సైట్",
+    "topsites_form_edit_header": "టాప్ సైట్ను సవరించండి",
+    "topsites_form_title_placeholder": "శీర్షికను నమోదు చేయండి",
+    "topsites_form_url_placeholder": "URL ను టైప్ చేయండి లేదా అతికించండి",
+    "topsites_form_add_button": "చేర్చు",
+    "topsites_form_save_button": "భద్రపరచు",
+    "topsites_form_cancel_button": "రద్దుచేయి",
+    "topsites_form_url_validation": "చెల్లుబాటు అయ్యే URL అవసరం",
+    "pocket_read_more": "ప్రముఖ అంశాలు:",
+    "pocket_read_even_more": "మరిన్ని కథలను వీక్షించండి",
+    "pocket_feedback_header": "వెబ్లో అత్యుత్తమమైనది, 25 మిలియన్లకు పైగా ప్రజలు పర్యవేక్షించినవి.",
+    "pocket_feedback_body": "Mozilla కుటుంబం యొక్క Pocket, మీరు కనుగొనలేకపోయే అధిక-నాణ్యత విషయముకి మిమ్మల్ని అనుసంధానించడానికి సహాయపడుతుంది.",
+    "pocket_send_feedback": "అభిప్రాయాన్ని పంపండి"
   },
   "th": {
     "newtab_page_title": "แท็บใหม่",
     "default_label_loading": "กำลังโหลด…",
     "header_top_sites": "ไซต์เด่น",
-    "header_highlights": "รายการเด่น",
     "header_stories": "เรื่องราวเด่น",
+    "header_visit_again": "เยี่ยมชมอีกครั้ง",
+    "header_bookmarks": "ที่คั่นหน้าเมื่อเร็ว ๆ นี้",
+    "header_bookmarks_placeholder": "คุณยังไม่มีที่คั่นหน้าใด ๆ",
     "header_stories_from": "จาก",
     "type_label_visited": "เยี่ยมชมแล้ว",
     "type_label_bookmarked": "มีที่คั่นหน้าแล้ว",
     "type_label_synced": "ซิงค์จากอุปกรณ์อื่น",
     "type_label_recommended": "กำลังนิยม",
     "type_label_open": "เปิด",
     "type_label_topic": "หัวข้อ",
     "menu_action_bookmark": "เพิ่มที่คั่นหน้า",
     "menu_action_remove_bookmark": "เอาที่คั่นหน้าออก",
     "menu_action_copy_address": "คัดลอกที่อยู่",
     "menu_action_email_link": "ส่งอีเมลลิงก์…",
     "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_notice_p2": "การกระทำนี้ไม่สามารถเลิกทำได้",
     "menu_action_save_to_pocket": "บันทึกไปยัง Pocket",
     "search_for_something_with": "ค้นหาสำหรับ {search_term} ด้วย:",
     "search_button": "ค้นหา",
     "search_header": "ค้นหา {search_engine_name}",
     "search_web_placeholder": "ค้นหาเว็บ",
     "search_settings": "เปลี่ยนการตั้งค่าการค้นหา",
     "welcome_title": "ยินดีต้อนรับสู่แท็บใหม่",
     "welcome_body": "Firefox จะใช้พื้นที่นี้เพื่อแสดงที่คั่นหน้า, บทความ, วิดีโอ และหน้าที่คุณเพิ่งเยี่ยมชมที่เกี่ยวข้องกับคุณมากที่สุด เพื่อให้คุณสามารถกลับมาชมได้อย่างง่ายดาย",
@@ -4139,19 +4475,20 @@
     "settings_pane_button_label": "ปรับแต่งหน้าแท็บใหม่ของคุณ",
     "settings_pane_header": "ค่ากำหนดแท็บใหม่",
     "settings_pane_body": "เลือกสิ่งที่คุณเห็นเมื่อคุณเปิดแท็บใหม่",
     "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_body": "มองย้อนกลับมาดูประวัติการท่องเว็บเมื่อเร็ว ๆ นี้และที่คั่นหน้าที่สร้างใหม่ของคุณ",
+    "settings_pane_bookmarks_header": "ที่คั่นหน้าเมื่อเร็ว ๆ นี้",
+    "settings_pane_visit_again_header": "เยี่ยมชมอีกครั้ง",
     "settings_pane_pocketstories_header": "เรื่องราวเด่น",
+    "settings_pane_pocketstories_body": "Pocket ส่วนหนึ่งของครอบครัว Mozilla จะช่วยเชื่อมต่อคุณกับเนื้อหาคุณภาพสูงที่คุณอาจไม่พบที่อื่น",
     "settings_pane_done_button": "เสร็จสิ้น",
     "edit_topsites_button_text": "แก้ไข",
     "edit_topsites_button_label": "ปรับแต่งส่วนไซต์เด่นของคุณ",
     "edit_topsites_showmore_button": "แสดงเพิ่มเติม",
     "edit_topsites_showless_button": "แสดงน้อยลง",
     "edit_topsites_done_button": "เสร็จสิ้น",
     "edit_topsites_pin_button": "ปักหมุดไซต์นี้",
     "edit_topsites_unpin_button": "ถอดหมุดไซต์นี้",
@@ -4163,16 +4500,17 @@
     "topsites_form_title_placeholder": "ป้อนชื่อเรื่อง",
     "topsites_form_url_placeholder": "พิมพ์หรือวาง URL",
     "topsites_form_add_button": "เพิ่ม",
     "topsites_form_save_button": "บันทึก",
     "topsites_form_cancel_button": "ยกเลิก",
     "topsites_form_url_validation": "ต้องการ URL ที่ถูกต้อง",
     "pocket_read_more": "หัวข้อยอดนิยม:",
     "pocket_read_even_more": "ดูเรื่องราวเพิ่มเติม",
+    "pocket_feedback_body": "Pocket ส่วนหนึ่งของครอบครัว Mozilla จะช่วยเชื่อมต่อคุณกับเนื้อหาคุณภาพสูงที่คุณอาจไม่พบที่อื่น",
     "pocket_send_feedback": "ส่งข้อคิดเห็น"
   },
   "tl": {
     "newtab_page_title": "Bagong Tab",
     "default_label_loading": "Pagkarga…",
     "header_top_sites": "Tuktok na mga Site",
     "header_highlights": "Highlights",
     "type_label_visited": "Binisita",
@@ -4219,33 +4557,39 @@
     "edit_topsites_pin_button": "I-pin sa site na ito",
     "edit_topsites_edit_button": "I-edit ang site na ito",
     "edit_topsites_dismiss_button": "I-dismiss sa site na ito"
   },
   "tr": {
     "newtab_page_title": "Yeni Sekme",
     "default_label_loading": "Yükleniyor…",
     "header_top_sites": "En Sık Kullanılan Siteler",
-    "header_highlights": "Öne Çıkanlar",
     "header_stories": "İlginç Yazılar",
+    "header_visit_again": "Yeniden Ziyaret Edin",
+    "header_bookmarks": "Son Yer imleri",
+    "header_bookmarks_placeholder": "Henüz hiç yer iminiz yok.",
     "header_stories_from": "kaynak:",
     "type_label_visited": "Ziyaret edildi",
     "type_label_bookmarked": "Yer imlerine eklendi",
     "type_label_synced": "Başka bir cihazdan eşitlendi",
     "type_label_recommended": "Popüler",
     "type_label_open": "Açık",
     "type_label_topic": "Konu",
     "menu_action_bookmark": "Yer imlerine ekle",
     "menu_action_remove_bookmark": "Yer imini sil",
     "menu_action_copy_address": "Adresi kopyala",
     "menu_action_email_link": "Bağlantıyı e-postayla gönder…",
     "menu_action_open_new_window": "Yeni pencerede aç",
     "menu_action_open_private_window": "Yeni gizli pencerede aç",
     "menu_action_dismiss": "Kapat",
     "menu_action_delete": "Geçmişten sil",
+    "menu_action_pin": "Sabitle",
+    "menu_action_unpin": "Sabitleneni kaldır",
+    "confirm_history_delete_p1": "Bu sayfanın tüm kayıtlarını geçmişinizden silmek istediğinizden emin misiniz?",
+    "confirm_history_delete_notice_p2": "Bu işlem geri alınamaz.",
     "menu_action_save_to_pocket": "Pocket’a kaydet",
     "search_for_something_with": "{search_term} terimini şununla ara:",
     "search_button": "Ara",
     "search_header": "{search_engine_name} Araması",
     "search_web_placeholder": "Web'de ara",
     "search_settings": "Arama ayarlarını değiştir",
     "welcome_title": "Yeni sekmeye hoş geldiniz",
     "welcome_body": "Firefox son zamanlarda ziyaret ettiğiniz ve sık kullandığınız yer imlerini, makaleleri, videoları ve sayfaları onlara tekrar kolayca geri dönebilmeniz için bu alanda gösterecektir.",
@@ -4257,18 +4601,20 @@
     "settings_pane_button_label": "Yeni Sekme sayfanızı özelleştirin",
     "settings_pane_header": "Yeni Sekme Tercihleri",
     "settings_pane_body": "Yeni bir sekme açtığınızda neleri göreceğinizi seçin.",
     "settings_pane_search_header": "Arama",
     "settings_pane_search_body": "Yeni sekme üzerinden web'de arama yapın.",
     "settings_pane_topsites_header": "Sık Kullandıklarınız",
     "settings_pane_topsites_body": "En sık ziyaret ettiğiniz web sitelerine erişin.",
     "settings_pane_topsites_options_showmore": "İki satır göster",
-    "settings_pane_highlights_header": "Öne Çıkanlar",
-    "settings_pane_highlights_body": "Yakın zamandaki gezinti geçmişinize ve yeni eklediğiniz yer imlerine göz atın.",
+    "settings_pane_bookmarks_header": "Son Yer İmleri",
+    "settings_pane_bookmarks_body": "Yeni eklediğiniz yer imlerini bir araya topladık.",
+    "settings_pane_visit_again_header": "Yeniden Ziyaret Edin",
+    "settings_pane_visit_again_body": "Firefox, gezinti geçmişinizden hatırlamak veya yeniden ziyaret etmek isteyebileceğiniz sayfaları burada gösterecek.",
     "settings_pane_pocketstories_header": "İlginç Yazılar",
     "settings_pane_pocketstories_body": "Mozilla ailesinin yeni üyesi Pocket, kolayca bulamayacağınız, kaliteli içerikleri karşınıza getiriyor.",
     "settings_pane_done_button": "Tamam",
     "edit_topsites_button_text": "Düzenle",
     "edit_topsites_button_label": "Sık Kullandıklarınız bölümünü özelleştirin",
     "edit_topsites_showmore_button": "Daha fazla göster",
     "edit_topsites_showless_button": "Daha az göster",
     "edit_topsites_done_button": "Tamam",
@@ -4290,33 +4636,39 @@
     "pocket_feedback_header": "25 milyon kişinin katkılarıyla, web’in en iyileri.",
     "pocket_feedback_body": "Mozilla ailesinin yeni üyesi Pocket, kolayca bulamayacağınız, kaliteli içerikleri karşınıza getiriyor.",
     "pocket_send_feedback": "Görüş gönder"
   },
   "uk": {
     "newtab_page_title": "Нова вкладка",
     "default_label_loading": "Завантаження…",
     "header_top_sites": "Популярні сайти",
-    "header_highlights": "Обране",
     "header_stories": "Головні новини",
+    "header_visit_again": "Відвідати знову",
+    "header_bookmarks": "Недавно закладені",
+    "header_bookmarks_placeholder": "У вас ще немає закладок.",
     "header_stories_from": "від",
     "type_label_visited": "Відвідано",
     "type_label_bookmarked": "Закладено",
     "type_label_synced": "Синхронізовано з іншого пристрою",
     "type_label_recommended": "Популярне",
     "type_label_open": "Відкрито",
     "type_label_topic": "Тема",
     "menu_action_bookmark": "Додати до закладок",
     "menu_action_remove_bookmark": "Вилучити закладку",
     "menu_action_copy_address": "Копіювати адресу",
     "menu_action_email_link": "Надіслати посилання…",
     "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",
     "search_for_something_with": "Шукати {search_term} з:",
     "search_button": "Пошук",
     "search_header": "Шукати з {search_engine_name}",
     "search_web_placeholder": "Пошук в Інтернеті",
     "search_settings": "Змінити налаштування пошуку",
     "welcome_title": "Вітаємо на новій вкладці",
     "welcome_body": "Firefox буде використовувати її для показу найважливіших закладок, статей, відео, а також нещодавно відвіданих сторінок, щоб ви могли з легкістю повернутися до них.",
@@ -4328,18 +4680,20 @@
     "settings_pane_button_label": "Налаштуйте свою сторінку нової вкладки",
     "settings_pane_header": "Налаштування нової вкладки",
     "settings_pane_body": "Оберіть, що показувати при відкритті нової вкладки.",
     "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_body": "Огляд нещодавньої історії перегляду та нових закладок.",
+    "settings_pane_bookmarks_header": "Недавно закладені",
+    "settings_pane_bookmarks_body": "Ваші нові закладки в одному зручному розташуванні.",
+    "settings_pane_visit_again_header": "Відвідати знову",
+    "settings_pane_visit_again_body": "Firefox покаже вам елементи історії перегляду, які ви, можливо, захочете запам'ятати чи відвідати знову.",
     "settings_pane_pocketstories_header": "Головні новини",
     "settings_pane_pocketstories_body": "Pocket, частина сім'ї Mozilla, допоможе підключити вас до якісного вмісту, що ви можете інакше й не знайти.",
     "settings_pane_done_button": "Готово",
     "edit_topsites_button_text": "Змінити",
     "edit_topsites_button_label": "Налаштувати розділ популярних сайтів",
     "edit_topsites_showmore_button": "Показати більше",
     "edit_topsites_showless_button": "Показати менше",
     "edit_topsites_done_button": "Готово",
@@ -4432,33 +4786,39 @@
   "uz": {},
   "vi": {},
   "wo": {},
   "xh": {},
   "zh-CN": {
     "newtab_page_title": "新标签页",
     "default_label_loading": "正在载入…",
     "header_top_sites": "常用网站",
-    "header_highlights": "集锦",
     "header_stories": "热门报道",
+    "header_visit_again": "再次造访",
+    "header_bookmarks": "最近的书签",
+    "header_bookmarks_placeholder": "您还没有最近的书签。",
     "header_stories_from": "出自",
     "type_label_visited": "曾经访问",
     "type_label_bookmarked": "已加书签",
     "type_label_synced": "从其他设备同步而来",
     "type_label_recommended": "趋势",
     "type_label_open": "打开",
     "type_label_topic": "主题",
     "menu_action_bookmark": "添加书签",
     "menu_action_remove_bookmark": "移除书签",
     "menu_action_copy_address": "复制地址",
     "menu_action_email_link": "用邮件发送链接…",
     "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",
     "search_for_something_with": "搜索 {search_term},使用:",
     "search_button": "搜索",
     "search_header": "{search_engine_name} 搜索",
     "search_web_placeholder": "在网络上搜索",
     "search_settings": "更改搜索设置",
     "welcome_title": "欢迎使用新标签页",
     "welcome_body": "Firefox 会在这里显示对您最有用的书签、文章、视频和访问过的页面,便于您回到这些网站。",
@@ -4470,18 +4830,20 @@
     "settings_pane_button_label": "定制您的新标签页",
     "settings_pane_header": "新标签页选项",
     "settings_pane_body": "选择您在新标签页上看到哪些组件。",
     "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_body": "回顾您最近的浏览和新增书签。",
+    "settings_pane_bookmarks_header": "最近的书签",
+    "settings_pane_bookmarks_body": "您最近创建的书签将在此显示。",
+    "settings_pane_visit_again_header": "再次造访",
+    "settings_pane_visit_again_body": "Firefox 在此显示您可能想记住或再次访问的浏览记录。",
     "settings_pane_pocketstories_header": "热门报道",
     "settings_pane_pocketstories_body": "Pocket,Mozilla 家族的一员,它可以帮助您找到更多不易发现的高品质内容。",
     "settings_pane_done_button": "完成",
     "edit_topsites_button_text": "编辑",
     "edit_topsites_button_label": "定制您的“常用网站”区域",
     "edit_topsites_showmore_button": "显示更多",
     "edit_topsites_showless_button": "显示更少",
     "edit_topsites_done_button": "完成",
--- a/browser/extensions/activity-stream/lib/TelemetryFeed.jsm
+++ b/browser/extensions/activity-stream/lib/TelemetryFeed.jsm
@@ -50,18 +50,19 @@ this.TelemetryFeed = class TelemetryFeed
     Object.defineProperty(this, "telemetrySender", {value: new TelemetrySender()});
     return this.telemetrySender;
   }
 
   /**
    * addSession - Start tracking a new session
    *
    * @param  {string} id the portID of the open session
-   * @param  {number} absVisChangeTime absolute timestamp of
+   * @param  {number} absVisChangeTime Optional. Absolute timestamp of
    *                                   document.visibilityState becoming visible
+   * @return {obj}    Session object
    */
   addSession(id, absVisChangeTime) {
     // XXX note that there is a race condition here; we're assuming that no
     // other tab will be interleaving calls to browserOpenNewtabStart and
     // addSession on this object.  For manually created windows, it's hard to
     // imagine us hitting this race condition.
     //
     // However, for session restore, where multiple windows with multiple tabs
@@ -73,35 +74,40 @@ this.TelemetryFeed = class TelemetryFeed
     // data through closures into the tab itself so that we could match them
     //
     // As of this writing (very early days of system add-on perf telemetry),
     // the hypothesis is that hitting this race should be so rare that makes
     // more sense to live with the slight data inaccuracy that it would
     // introduce, rather than doing the correct by complicated thing.  It may
     // well be worth reexamining this hypothesis after we have more experience
     // with the data.
-    let absBrowserOpenTabStart =
-      perfService.getMostRecentAbsMarkStartByName("browser-open-newtab-start");
+    let absBrowserOpenTabStart;
+    try {
+      absBrowserOpenTabStart = perfService.getMostRecentAbsMarkStartByName("browser-open-newtab-start");
+    } catch (e) {
+      // Just use undefined so it doesn't get sent to the server
+    }
 
-    this.sessions.set(id, {
+    // If we're missing either starting timestamps, treat it as an unexpected
+    // session; otherwise, assume it's the usual behavior.
+    const triggerType = absBrowserOpenTabStart === undefined ||
+      absVisChangeTime === undefined ? "unexpected" : "menu_plus_or_keyboard";
+
+    const session = {
       start_time: Components.utils.now(),
       session_id: String(gUUIDGenerator.generateUUID()),
       page: "about:newtab", // TODO: Handle about:home here and in perf below
       perf: {
         load_trigger_ts: absBrowserOpenTabStart,
-        load_trigger_type: "menu_plus_or_keyboard",
+        load_trigger_type: triggerType,
         visibility_event_rcvd_ts: absVisChangeTime
       }
-    });
-
-    let duration = absVisChangeTime - absBrowserOpenTabStart;
-    this.store.dispatch({
-      type: at.TELEMETRY_PERFORMANCE_EVENT,
-      data: {visability_duration: duration}
-    });
+    };
+    this.sessions.set(id, session);
+    return session;
   }
 
   /**
    * endSession - Stop tracking a session
    *
    * @param  {string} portID the portID of the session that just closed
    */
   endSession(portID) {
@@ -128,17 +134,17 @@ this.TelemetryFeed = class TelemetryFeed
     const ping = {
       client_id: await this.telemetryClientId,
       addon_version: appInfo.version,
       locale: appInfo.locale
     };
 
     // If the ping is part of a user session, add session-related info
     if (portID) {
-      const session = this.sessions.get(portID);
+      const session = this.sessions.get(portID) || this.addSession(portID);
       Object.assign(ping, {
         session_id: session.session_id,
         page: session.page
       });
     }
     return ping;
   }
 
--- a/browser/extensions/activity-stream/lib/TopSitesFeed.jsm
+++ b/browser/extensions/activity-stream/lib/TopSitesFeed.jsm
@@ -3,16 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 const {utils: Cu} = Components;
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 const {actionCreators: ac, actionTypes: at} = Cu.import("resource://activity-stream/common/Actions.jsm", {});
 const {Prefs} = Cu.import("resource://activity-stream/lib/ActivityStreamPrefs.jsm", {});
+const {insertPinned} = Cu.import("resource://activity-stream/common/Reducers.jsm", {});
 
 XPCOMUtils.defineLazyModuleGetter(this, "NewTabUtils",
   "resource://gre/modules/NewTabUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "PreviewProvider",
   "resource:///modules/PreviewProvider.jsm");
 
 const TOP_SITES_SHOWMORE_LENGTH = 12;
 const UPDATE_TIME = 15 * 60 * 1000; // 15 minutes
@@ -34,75 +35,85 @@ this.TopSitesFeed = class TopSitesFeed {
       }
     }
   }
   async getScreenshot(url) {
     let screenshot = await PreviewProvider.getThumbnail(url);
     const action = {type: at.SCREENSHOT_UPDATED, data: {url, screenshot}};
     this.store.dispatch(ac.BroadcastToContent(action));
   }
-  sortLinks(frecent, pinned) {
-    let sortedLinks = [...frecent, ...DEFAULT_TOP_SITES];
-    sortedLinks = sortedLinks.filter(link => !NewTabUtils.pinnedLinks.isPinned(link));
-
-    // Insert the pinned links in their specified location
-    pinned.forEach((val, index) => {
-      if (!val) { return; }
-      let link = Object.assign({}, val, {isPinned: true, pinIndex: index, pinTitle: val.title});
-      if (index > sortedLinks.length) {
-        sortedLinks[index] = link;
-      } else {
-        sortedLinks.splice(index, 0, link);
-      }
-    });
-
-    return sortedLinks.slice(0, TOP_SITES_SHOWMORE_LENGTH);
-  }
   async getLinksWithDefaults(action) {
     let pinned = NewTabUtils.pinnedLinks.links;
     let frecent = await NewTabUtils.activityStreamLinks.getTopSites();
 
     if (!frecent) {
       frecent = [];
     } else {
       frecent = frecent.filter(link => link && link.type !== "affiliate");
     }
 
-    return this.sortLinks(frecent, pinned);
+    return insertPinned([...frecent, ...DEFAULT_TOP_SITES], pinned).slice(0, TOP_SITES_SHOWMORE_LENGTH);
   }
-  async refresh(action) {
+  async refresh(target = null) {
     const links = await this.getLinksWithDefaults();
 
     // First, cache existing screenshots in case we need to reuse them
     const currentScreenshots = {};
     for (const link of this.store.getState().TopSites.rows) {
-      if (link.screenshot) {
+      if (link && link.screenshot) {
         currentScreenshots[link.url] = link.screenshot;
       }
     }
 
     // Now, get a screenshot for every item
     for (let link of links) {
+      if (!link) { continue; }
       if (currentScreenshots[link.url]) {
         link.screenshot = currentScreenshots[link.url];
       } else {
         this.getScreenshot(link.url);
       }
     }
-
     const newAction = {type: at.TOP_SITES_UPDATED, data: links};
 
-    // Send an update to content so the preloaded tab can get the updated content
-    this.store.dispatch(ac.SendToContent(newAction, action.meta.fromTarget));
+    if (target) {
+      // Send an update to content so the preloaded tab can get the updated content
+      this.store.dispatch(ac.SendToContent(newAction, target));
+    } else {
+      // Broadcast an update to all open content pages
+      this.store.dispatch(ac.BroadcastToContent(newAction));
+    }
     this.lastUpdated = Date.now();
   }
   openNewWindow(action, isPrivate = false) {
     const win = action._target.browser.ownerGlobal;
     win.openLinkIn(action.data.url, "window", {private: isPrivate});
   }
+  _getPinnedWithData() {
+    // Augment the pinned links with any other extra data we have for them already in the store
+    const links = this.store.getState().TopSites.rows;
+    const pinned = NewTabUtils.pinnedLinks.links;
+    return pinned.map(pinnedLink => (pinnedLink ? Object.assign(links.find(link => link && link.url === pinnedLink.url) || {}, pinnedLink, {isDefault: false}) : pinnedLink));
+  }
+  pin(action) {
+    const {site, index} = action.data;
+    NewTabUtils.pinnedLinks.pin(site, index);
+    this.store.dispatch(ac.BroadcastToContent({
+      type: at.PINNED_SITES_UPDATED,
+      data: this._getPinnedWithData()
+    }));
+  }
+  unpin(action) {
+    const {site} = action.data;
+    NewTabUtils.pinnedLinks.unpin(site);
+    this.store.dispatch(ac.BroadcastToContent({
+      type: at.PINNED_SITES_UPDATED,
+      data: this._getPinnedWithData()
+    }));
+  }
   onAction(action) {
     let realRows;
     switch (action.type) {
       case at.INIT:
         this.init();
         break;
       case at.NEW_TAB_LOAD:
         // Only check against real rows returned from history, not default ones.
@@ -110,26 +121,34 @@ this.TopSitesFeed = class TopSitesFeed {
         if (
           // When a new tab is opened, if we don't have enough top sites yet, refresh the data.
           (realRows.length < TOP_SITES_SHOWMORE_LENGTH) ||
 
           // When a new tab is opened, if the last time we refreshed the data
           // is greater than 15 minutes, refresh the data.
           (Date.now() - this.lastUpdated >= UPDATE_TIME)
         ) {
-          this.refresh(action);
+          this.refresh(action.meta.fromTarget);
         }
         break;
       case at.OPEN_NEW_WINDOW:
         this.openNewWindow(action);
         break;
-      case at.OPEN_PRIVATE_WINDOW: {
+      case at.OPEN_PRIVATE_WINDOW:
         this.openNewWindow(action, true);
         break;
-      }
+      case at.PLACES_HISTORY_CLEARED:
+        this.refresh();
+        break;
+      case at.TOP_SITES_PIN:
+        this.pin(action);
+        break;
+      case at.TOP_SITES_UNPIN:
+        this.unpin(action);
+        break;
     }
   }
 };
 
 this.UPDATE_TIME = UPDATE_TIME;
 this.TOP_SITES_SHOWMORE_LENGTH = TOP_SITES_SHOWMORE_LENGTH;
 this.DEFAULT_TOP_SITES = DEFAULT_TOP_SITES;
 this.EXPORTED_SYMBOLS = ["TopSitesFeed", "UPDATE_TIME", "DEFAULT_TOP_SITES", "TOP_SITES_SHOWMORE_LENGTH"];
--- a/browser/extensions/activity-stream/test/schemas/pings.js
+++ b/browser/extensions/activity-stream/test/schemas/pings.js
@@ -34,17 +34,20 @@ const UserEventAction = Joi.object().key
       "DELETE_CONFIRM",
       "DIALOG_CANCEL",
       "DIALOG_OPEN",
       "OPEN_NEW_WINDOW",
       "OPEN_PRIVATE_WINDOW",
       "OPEN_NEWTAB_PREFS",
       "CLOSE_NEWTAB_PREFS",
       "BOOKMARK_DELETE",
-      "BOOKMARK_ADD"
+      "BOOKMARK_ADD",
+      "PIN",
+      "UNPIN",
+      "SAVE_TO_POCKET"
     ]).required(),
     source: Joi.valid(["TOP_SITES"]),
     action_position: Joi.number().integer()
   }).required(),
   meta: Joi.object().keys({
     to: Joi.valid(MAIN_MESSAGE_TYPE).required(),
     from: Joi.valid(CONTENT_MESSAGE_TYPE).required()
   }).required()
@@ -77,18 +80,18 @@ const SessionPing = Joi.object().keys(Ob
     // observer event doesn't fire
     load_trigger_ts: Joi.number().positive()
       .notes(["server counter", "server counter alert"]),
 
     // What was the perceived trigger of the load action?
     //
     // Not required at least for the error cases where the observer event
     // doesn't fire
-    load_trigger_type: Joi.valid(["menu_plus_or_keyboard"])
-      .notes(["server counter", "server counter alert"]),
+    load_trigger_type: Joi.valid(["menu_plus_or_keyboard", "unexpected"])
+      .notes(["server counter", "server counter alert"]).required(),
 
     // When the page itself receives an event that document.visibilityState
     // == visible.
     //
     // Not required at least for the (error?) case where the
     // visibility_event doesn't fire.  (It's not clear whether this
     // can happen in practice, but if it does, we'd like to know about it).
     visibility_event_rcvd_ts: Joi.number().positive()
--- a/browser/extensions/activity-stream/test/unit/common/Reducers.test.js
+++ b/browser/extensions/activity-stream/test/unit/common/Reducers.test.js
@@ -1,9 +1,9 @@
-const {reducers, INITIAL_STATE} = require("common/Reducers.jsm");
+const {reducers, INITIAL_STATE, insertPinned} = require("common/Reducers.jsm");
 const {TopSites, App, Prefs, Dialog} = reducers;
 const {actionTypes: at} = require("common/Actions.jsm");
 
 describe("Reducers", () => {
   describe("App", () => {
     it("should return the initial state", () => {
       const nextState = App(undefined, {type: "FOO"});
       assert.equal(nextState, INITIAL_STATE.App);
@@ -102,16 +102,23 @@ describe("Reducers", () => {
       const events = [at.PLACES_LINK_BLOCKED, at.PLACES_LINK_DELETED];
       events.forEach(event => {
         const oldState = {rows: [{url: "foo.com"}, {url: "bar.com"}]};
         const action = {type: event, data: {url: "bar.com"}};
         const nextState = TopSites(oldState, action);
         assert.deepEqual(nextState.rows, [{url: "foo.com"}]);
       });
     });
+    it("should insert pinned links on PINNED_SITES_UPDATED", () => {
+      const oldState = {rows: [{url: "foo.com"}, {url: "bar.com"}]};
+      const action = {type: at.PINNED_SITES_UPDATED, data: [{url: "baz.com", title: "baz"}]};
+      const nextState = TopSites(oldState, action);
+      console.log(nextState.rows);
+      assert.deepEqual(nextState.rows, [{url: "baz.com", title: "baz", isPinned: true, pinIndex: 0, pinTitle: "baz"}, {url: "foo.com"}, {url: "bar.com"}]);
+    });
   });
   describe("Prefs", () => {
     function prevState(custom = {}) {
       return Object.assign({}, INITIAL_STATE.Prefs, custom);
     }
     it("should have the correct initial state", () => {
       const state = Prefs(undefined, {});
       assert.deepEqual(state, INITIAL_STATE.Prefs);
@@ -168,9 +175,74 @@ describe("Reducers", () => {
     });
     it("should return inital state on DELETE_HISTORY_URL", () => {
       const action = {type: at.DELETE_HISTORY_URL};
       const nextState = Dialog(INITIAL_STATE.Dialog, action);
 
       assert.deepEqual(INITIAL_STATE.Dialog, nextState);
     });
   });
+  describe("#insertPinned", () => {
+    let links;
+
+    beforeEach(() => {
+      links =  new Array(12).fill(null).map((v, i) => ({url: `site${i}.com`}));
+    });
+
+    it("should place pinned links where they belong", () => {
+      const pinned = [
+        {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"},
+        {"url": "http://example.com", "title": "example"}
+      ];
+      const result = insertPinned(links, pinned);
+      for (let index of [0, 1]) {
+        assert.equal(result[index].url, pinned[index].url);
+        assert.ok(result[index].isPinned);
+        assert.equal(result[index].pinTitle, pinned[index].title);
+        assert.equal(result[index].pinIndex, index);
+      }
+      assert.deepEqual(result.slice(2), links);
+    });
+    it("should handle empty slots in the pinned list", () => {
+      const pinned = [
+        null,
+        {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"},
+        null,
+        null,
+        {"url": "http://example.com", "title": "example"}
+      ];
+      const result = insertPinned(links, pinned);
+      for (let index of [1, 4]) {
+        assert.equal(result[index].url, pinned[index].url);
+        assert.ok(result[index].isPinned);
+        assert.equal(result[index].pinTitle, pinned[index].title);
+        assert.equal(result[index].pinIndex, index);
+      }
+      result.splice(4, 1);
+      result.splice(1, 1);
+      assert.deepEqual(result, links);
+    });
+    it("should handle a pinned site past the end of the list of links", () => {
+      const pinned = [];
+      pinned[11] = {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"};
+      const result = insertPinned([], pinned);
+      assert.equal(result[11].url, pinned[11].url);
+      assert.isTrue(result[11].isPinned);
+      assert.equal(result[11].pinTitle, pinned[11].title);
+      assert.equal(result[11].pinIndex, 11);
+    });
+    it("should unpin previously pinned links no longer in the pinned list", () => {
+      const pinned = [];
+      links[2].isPinned = true;
+      links[2].pinTitle = "pinned site";
+      links[2].pinIndex = 2;
+      const result = insertPinned(links, pinned);
+      assert.notProperty(result[2], "isPinned");
+      assert.notProperty(result[2], "pinTitle");
+      assert.notProperty(result[2], "pinIndex");
+    });
+    it("should handle a link present in both the links and pinned list", () => {
+      const pinned = [links[7]];
+      const result = insertPinned(links, pinned);
+      assert.equal(links.length, result.length);
+    });
+  });
 });
--- a/browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/TelemetryFeed.test.js
@@ -25,21 +25,16 @@ describe("TelemetryFeed", () => {
   class TelemetrySender {sendPing() {} uninit() {}}
   class PerfService {getMostRecentAbsMarkStartByName() { return 1234; } mark() {}}
   const perfService = new PerfService();
   const {TelemetryFeed} = injector({
     "lib/TelemetrySender.jsm": {TelemetrySender},
     "common/PerfService.jsm": {perfService}
   });
 
-  function addSession(id) {
-    instance.addSession(id);
-    return instance.sessions.get(id);
-  }
-
   beforeEach(() => {
     globals = new GlobalOverrider();
     sandbox = globals.sandbox;
     globals.set("ClientID", {getClientID: sandbox.spy(async () => FAKE_TELEMETRY_ID)});
     globals.set("gUUIDGenerator", {generateUUID: () => FAKE_UUID});
     instance = new TelemetryFeed();
     instance.store = store;
   });
@@ -59,36 +54,62 @@ describe("TelemetryFeed", () => {
       instance.init();
 
       assert.calledOnce(Services.obs.addObserver);
       assert.calledWithExactly(Services.obs.addObserver,
         instance.browserOpenNewtabStart, "browser-open-newtab-start");
     });
   });
   describe("#addSession", () => {
-    it("should add a session", () => {
-      addSession("foo");
-      assert.isTrue(instance.sessions.has("foo"));
+    it("should add a session and return it", () => {
+      const session = instance.addSession("foo");
+
+      assert.equal(instance.sessions.get("foo"), session);
     });
     it("should set the start_time", () => {
       sandbox.spy(Components.utils, "now");
-      const session = addSession("foo");
+
+      const session = instance.addSession("foo");
+
       assert.calledOnce(Components.utils.now);
       assert.equal(session.start_time, Components.utils.now.firstCall.returnValue);
     });
     it("should set the session_id", () => {
       sandbox.spy(global.gUUIDGenerator, "generateUUID");
-      const session = addSession("foo");
+
+      const session = instance.addSession("foo");
+
       assert.calledOnce(global.gUUIDGenerator.generateUUID);
       assert.equal(session.session_id, global.gUUIDGenerator.generateUUID.firstCall.returnValue);
     });
     it("should set the page", () => {
-      const session = addSession("foo");
+      const session = instance.addSession("foo");
+
       assert.equal(session.page, "about:newtab"); // This is hardcoded for now.
     });
+    it("should set the perf type when lacking timestamp", () => {
+      const session = instance.addSession("foo");
+
+      assert.propertyVal(session.perf, "load_trigger_type", "unexpected");
+    });
+    it("should set the perf type with timestamp", () => {
+      const session = instance.addSession("foo", 123);
+
+      assert.propertyVal(session.perf, "load_trigger_type", "menu_plus_or_keyboard"); // This is hardcoded for now.
+    });
+    it("should save visibility time", () => {
+      const session = instance.addSession("foo", 123);
+
+      assert.propertyVal(session.perf, "visibility_event_rcvd_ts", 123);
+    });
+    it("should not save visibility time when lacking timestamp", () => {
+      const session = instance.addSession("foo");
+
+      assert.propertyVal(session.perf, "visibility_event_rcvd_ts", undefined);
+    });
   });
   describe("#browserOpenNewtabStart", () => {
     it("should call perfService.mark with browser-open-newtab-start", () => {
       sandbox.stub(perfService, "mark");
 
       instance.browserOpenNewtabStart();
 
       assert.calledOnce(perfService.mark);
@@ -97,39 +118,44 @@ describe("TelemetryFeed", () => {
   });
 
   describe("#endSession", () => {
     it("should not throw if there is no session for the given port ID", () => {
       assert.doesNotThrow(() => instance.endSession("doesn't exist"));
     });
     it("should add a session_duration", () => {
       sandbox.stub(instance, "sendEvent");
-      const session = addSession("foo");
+      const session = instance.addSession("foo");
+
       instance.endSession("foo");
+
       assert.property(session, "session_duration");
     });
     it("should remove the session from .sessions", () => {
       sandbox.stub(instance, "sendEvent");
-      addSession("foo");
+      instance.addSession("foo");
+
       instance.endSession("foo");
+
       assert.isFalse(instance.sessions.has("foo"));
     });
     it("should call createSessionSendEvent and sendEvent with the sesssion", () => {
       sandbox.stub(instance, "sendEvent");
       sandbox.stub(instance, "createSessionEndEvent");
-      const session = addSession("foo");
+      const session = instance.addSession("foo");
+
       instance.endSession("foo");
 
       // Did we call sendEvent with the result of createSessionEndEvent?
       assert.calledWith(instance.createSessionEndEvent, session);
       assert.calledWith(instance.sendEvent, instance.createSessionEndEvent.firstCall.returnValue);
     });
   });
   describe("ping creators", () => {
-    beforeEach(async () => await instance.init());
+    beforeEach(() => instance.init());
     describe("#createPing", () => {
       it("should create a valid base ping without a session if no portID is supplied", async () => {
         const ping = await instance.createPing();
         assert.validate(ping, BasePing);
         assert.notProperty(ping, "session_id");
       });
       it("should create a valid base ping with session info if a portID is supplied", async () => {
         // Add a session
@@ -140,46 +166,56 @@ describe("TelemetryFeed", () => {
         // Create a ping referencing the session
         const ping = await instance.createPing(portID);
         assert.validate(ping, BasePing);
 
         // Make sure we added the right session-related stuff to the ping
         assert.propertyVal(ping, "session_id", sessionID);
         assert.propertyVal(ping, "page", "about:newtab");
       });
+      it("should create an unexpected base ping if no session yet portID is supplied", async () => {
+        const ping = await instance.createPing("foo");
+
+        assert.validate(ping, BasePing);
+        assert.propertyVal(ping, "page", "about:newtab");
+        assert.propertyVal(instance.sessions.get("foo").perf, "load_trigger_type", "unexpected");
+      });
     });
     describe("#createUserEvent", () => {
       it("should create a valid event", async () => {
         const portID = "foo";
         const data = {source: "TOP_SITES", event: "CLICK"};
         const action = ac.SendToMain(ac.UserEvent(data), portID);
-        const session = addSession(portID);
+        const session = instance.addSession(portID);
+
         const ping = await instance.createUserEvent(action);
 
         // Is it valid?
         assert.validate(ping, UserEventPing);
         // Does it have the right session_id?
         assert.propertyVal(ping, "session_id", session.session_id);
       });
     });
     describe("#createUndesiredEvent", () => {
       it("should create a valid event without a session", async () => {
         const action = ac.UndesiredEvent({source: "TOP_SITES", event: "MISSING_IMAGE", value: 10});
+
         const ping = await instance.createUndesiredEvent(action);
 
         // Is it valid?
         assert.validate(ping, UndesiredPing);
         // Does it have the right value?
         assert.propertyVal(ping, "value", 10);
       });
       it("should create a valid event with a session", async () => {
         const portID = "foo";
         const data = {source: "TOP_SITES", event: "MISSING_IMAGE", value: 10};
         const action = ac.SendToMain(ac.UndesiredEvent(data), portID);
-        const session = addSession(portID);
+        const session = instance.addSession(portID);
+
         const ping = await instance.createUndesiredEvent(action);
 
         // Is it valid?
         assert.validate(ping, UndesiredPing);
         // Does it have the right session_id?
         assert.propertyVal(ping, "session_id", session.session_id);
         // Does it have the right value?
         assert.propertyVal(ping, "value", 10);
@@ -194,17 +230,18 @@ describe("TelemetryFeed", () => {
         assert.validate(ping, PerfPing);
         // Does it have the right value?
         assert.propertyVal(ping, "value", 100);
       });
       it("should create a valid event with a session", async () => {
         const portID = "foo";
         const data = {event: "PAGE_LOADED", value: 100};
         const action = ac.SendToMain(ac.PerfEvent(data), portID);
-        const session = addSession(portID);
+        const session = instance.addSession(portID);
+
         const ping = await instance.createPerformanceEvent(action);
 
         // Is it valid?
         assert.validate(ping, PerfPing);
         // Does it have the right session_id?
         assert.propertyVal(ping, "session_id", session.session_id);
         // Does it have the right value?
         assert.propertyVal(ping, "value", 100);
@@ -223,16 +260,31 @@ describe("TelemetryFeed", () => {
           }
         });
         // Is it valid?
         assert.validate(ping, SessionPing);
         assert.propertyVal(ping, "session_id", FAKE_UUID);
         assert.propertyVal(ping, "page", "about:newtab");
         assert.propertyVal(ping, "session_duration", 12345);
       });
+      it("should create a valid unexpected session event", async () => {
+        const ping = await instance.createSessionEndEvent({
+          session_id: FAKE_UUID,
+          page: "about:newtab",
+          session_duration: 12345,
+          perf: {load_trigger_type: "unexpected"}
+        });
+
+        // Is it valid?
+        assert.validate(ping, SessionPing);
+        assert.propertyVal(ping, "session_id", FAKE_UUID);
+        assert.propertyVal(ping, "page", "about:newtab");
+        assert.propertyVal(ping, "session_duration", 12345);
+        assert.propertyVal(ping.perf, "load_trigger_type", "unexpected");
+      });
     });
   });
   describe("#sendEvent", () => {
     it("should call telemetrySender", async () => {
       sandbox.stub(instance.telemetrySender, "sendPing");
       const event = {};
       await instance.sendEvent(Promise.resolve(event));
       assert.calledWith(instance.telemetrySender.sendPing, event);
--- a/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js
+++ b/browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js
@@ -1,14 +1,15 @@
 "use strict";
 const injector = require("inject!lib/TopSitesFeed.jsm");
 const {UPDATE_TIME, TOP_SITES_SHOWMORE_LENGTH} = require("lib/TopSitesFeed.jsm");
 const {FakePrefs, GlobalOverrider} = require("test/unit/utils");
 const action = {meta: {fromTarget: {}}};
 const {actionTypes: at} = require("common/Actions.jsm");
+const {insertPinned} = require("common/Reducers.jsm");
 const FAKE_LINKS = new Array(TOP_SITES_SHOWMORE_LENGTH).fill(null).map((v, i) => ({url: `site${i}.com`}));
 const FAKE_SCREENSHOT = "data123";
 
 describe("Top Sites Feed", () => {
   let TopSitesFeed;
   let DEFAULT_TOP_SITES;
   let feed;
   let globals;
@@ -19,23 +20,28 @@ describe("Top Sites Feed", () => {
 
   beforeEach(() => {
     globals = new GlobalOverrider();
     sandbox = globals.sandbox;
     fakeNewTabUtils = {
       activityStreamLinks: {getTopSites: sandbox.spy(() => Promise.resolve(links))},
       pinnedLinks: {
         links: [],
-        isPinned: () => false
+        isPinned: () => false,
+        pin: sandbox.spy(),
+        unpin: sandbox.spy()
       }
     };
     globals.set("NewTabUtils", fakeNewTabUtils);
     globals.set("PreviewProvider", {getThumbnail: sandbox.spy(() => Promise.resolve(FAKE_SCREENSHOT))});
     FakePrefs.prototype.prefs["default.sites"] = "https://foo.com/";
-    ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({"lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs}}));
+    ({TopSitesFeed, DEFAULT_TOP_SITES} = injector({
+      "lib/ActivityStreamPrefs.jsm": {Prefs: FakePrefs},
+      "common/Reducers.jsm": {insertPinned}
+    }));
     feed = new TopSitesFeed();
     feed.store = {dispatch: sinon.spy(), getState() { return {TopSites: {rows: Array(12).fill("site")}}; }};
     links = FAKE_LINKS;
     clock = sinon.useFakeTimers();
   });
   afterEach(() => {
     globals.restore();
     clock.restore();
@@ -51,64 +57,16 @@ describe("Top Sites Feed", () => {
       DEFAULT_TOP_SITES.forEach(link => assert.propertyVal(link, "isDefault", true));
     });
     it("should add no defaults on empty pref", () => {
       FakePrefs.prototype.prefs["default.sites"] = "";
       feed.init();
       assert.equal(DEFAULT_TOP_SITES.length, 0);
     });
   });
-  describe("#sortLinks", () => {
-    beforeEach(() => {
-      feed.init();
-    });
-
-    it("should place pinned links where they belong", () => {
-      const pinned = [
-        {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"},
-        {"url": "http://example.com", "title": "example"}
-      ];
-      const result = feed.sortLinks(links, pinned);
-      for (let index of [0, 1]) {
-        assert.equal(result[index].url, pinned[index].url);
-        assert.ok(result[index].isPinned);
-        assert.equal(result[index].pinTitle, pinned[index].title);
-        assert.equal(result[index].pinIndex, index);
-      }
-      assert.deepEqual(result.slice(2), links.slice(0, -2));
-    });
-    it("should handle empty slots in the pinned list", () => {
-      const pinned = [
-        null,
-        {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"},
-        null,
-        null,
-        {"url": "http://example.com", "title": "example"}
-      ];
-      const result = feed.sortLinks(links, pinned);
-      for (let index of [1, 4]) {
-        assert.equal(result[index].url, pinned[index].url);
-        assert.ok(result[index].isPinned);
-        assert.equal(result[index].pinTitle, pinned[index].title);
-        assert.equal(result[index].pinIndex, index);
-      }
-      result.splice(4, 1);
-      result.splice(1, 1);
-      assert.deepEqual(result, links.slice(0, -2));
-    });
-    it("should handle a pinned site past the end of the list of frecent+default", () => {
-      const pinned = [];
-      pinned[11] = {"url": "http://github.com/mozilla/activity-stream", "title": "moz/a-s"};
-      const result = feed.sortLinks([], pinned);
-      assert.equal(result[11].url, pinned[11].url);
-      assert.isTrue(result[11].isPinned);
-      assert.equal(result[11].pinTitle, pinned[11].title);
-      assert.equal(result[11].pinIndex, 11);
-    });
-  });
   describe("#getLinksWithDefaults", () => {
     beforeEach(() => {
       feed.init();
     });
 
     it("should get the links from NewTabUtils", async () => {
       const result = await feed.getLinksWithDefaults();
       assert.deepEqual(result, links);
@@ -151,55 +109,63 @@ describe("Top Sites Feed", () => {
       results.forEach(link => {
         if (link.url === FAKE_LINKS[0].url) {
           assert.equal(link.screenshot, "foo.jpg");
         } else {
           assert.calledWith(feed.getScreenshot, link.url);
         }
       });
     });
+    it("should handle empty slots in the resulting top sites array", async () => {
+      links = [FAKE_LINKS[0]];
+      fakeNewTabUtils.pinnedLinks.links = [null, null, FAKE_LINKS[1], null, null, null, null, null, FAKE_LINKS[2]];
+      sandbox.stub(feed, "getScreenshot");
+      await feed.refresh(action);
+      assert.calledOnce(feed.store.dispatch);
+    });
   });
   describe("getScreenshot", () => {
     it("should call PreviewProvider.getThumbnail with the right url", async () => {
       const url = "foo.com";
       await feed.getScreenshot(url);
       assert.calledWith(global.PreviewProvider.getThumbnail, url);
     });
   });
   describe("#onAction", () => {
+    const newTabAction = {type: at.NEW_TAB_LOAD, meta: {fromTarget: "target"}};
     it("should call refresh if there are not enough sites on NEW_TAB_LOAD", () => {
       feed.store.getState = function() { return {TopSites: {rows: []}}; };
       sinon.stub(feed, "refresh");
-      feed.onAction({type: at.NEW_TAB_LOAD});
-      assert.calledOnce(feed.refresh);
+      feed.onAction(newTabAction);
+      assert.calledWith(feed.refresh, newTabAction.meta.fromTarget);
     });
     it("should call refresh if there are not sites on NEW_TAB_LOAD, not counting defaults", () => {
       feed.store.getState = function() { return {TopSites: {rows: [{url: "foo.com"}, ...DEFAULT_TOP_SITES]}}; };
       sinon.stub(feed, "refresh");
-      feed.onAction({type: at.NEW_TAB_LOAD});
-      assert.calledOnce(feed.refresh);
+      feed.onAction(newTabAction);
+      assert.calledWith(feed.refresh, newTabAction.meta.fromTarget);
     });
     it("should not call refresh if there are enough sites on NEW_TAB_LOAD", () => {
       feed.lastUpdated = Date.now();
       sinon.stub(feed, "refresh");
-      feed.onAction({type: at.NEW_TAB_LOAD});
+      feed.onAction(newTabAction);
       assert.notCalled(feed.refresh);
     });
     it("should call refresh if .lastUpdated is too old on NEW_TAB_LOAD", () => {
       feed.lastUpdated = 0;
       clock.tick(UPDATE_TIME);
       sinon.stub(feed, "refresh");
-      feed.onAction({type: at.NEW_TAB_LOAD});
-      assert.calledOnce(feed.refresh);
+      feed.onAction(newTabAction);
+      assert.calledWith(feed.refresh, newTabAction.meta.fromTarget);
     });
     it("should not call refresh if .lastUpdated is less than update time on NEW_TAB_LOAD", () => {
       feed.lastUpdated = 0;
       clock.tick(UPDATE_TIME - 1);
       sinon.stub(feed, "refresh");
-      feed.onAction({type: at.NEW_TAB_LOAD});
+      feed.onAction(newTabAction);
       assert.notCalled(feed.refresh);
     });
     it("should call openNewWindow with the correct url on OPEN_NEW_WINDOW", () => {
       sinon.stub(feed, "openNewWindow");
       const openWindowAction = {type: at.OPEN_NEW_WINDOW, data: {url: "foo.com"}};
       feed.onAction(openWindowAction);
       assert.calledWith(feed.openNewWindow, openWindowAction);
     });
@@ -214,10 +180,41 @@ describe("Top Sites Feed", () => {
         type: at.OPEN_NEW_WINDOW,
         data: {url: "foo.com"},
         _target: {browser: {ownerGlobal: {openLinkIn: () => {}}}}
       };
       sinon.stub(openWindowAction._target.browser.ownerGlobal, "openLinkIn");
       feed.onAction(openWindowAction);
       assert.calledOnce(openWindowAction._target.browser.ownerGlobal.openLinkIn);
     });
+    it("should call with correct parameters on TOP_SITES_PIN", () => {
+      const pinAction = {
+        type: at.TOP_SITES_PIN,
+        data: {site: {url: "foo.com"}, index: 7}
+      };
+      feed.onAction(pinAction);
+      assert.calledOnce(fakeNewTabUtils.pinnedLinks.pin);
+      assert.calledWith(fakeNewTabUtils.pinnedLinks.pin, pinAction.data.site, pinAction.data.index);
+    });
+    it("should call unpin with correct parameters on TOP_SITES_UNPIN", () => {
+      fakeNewTabUtils.pinnedLinks.links = [null, null, {url: "foo.com"}, null, null, null, null, null, FAKE_LINKS[0]];
+      const unpinAction = {
+        type: at.TOP_SITES_UNPIN,
+        data: {site: {url: "foo.com"}}
+      };
+      feed.onAction(unpinAction);
+      assert.calledOnce(fakeNewTabUtils.pinnedLinks.unpin);
+      assert.calledWith(fakeNewTabUtils.pinnedLinks.unpin, unpinAction.data.site);
+    });
+    it("should call refresh without a target if we clear history with PLACES_HISTORY_CLEARED", () => {
+      sandbox.stub(feed, "refresh");
+      feed.onAction({type: at.PLACES_HISTORY_CLEARED});
+      assert.calledOnce(feed.refresh);
+      assert.equal(feed.refresh.firstCall.args[0], null);
+    });
+    it("should still dispatch an action even if there's no target provided", async () => {
+      sandbox.stub(feed, "getScreenshot");
+      await feed.refresh();
+      assert.calledOnce(feed.store.dispatch);
+      assert.propertyVal(feed.store.dispatch.firstCall.args[0], "type", at.TOP_SITES_UPDATED);
+    });
   });
 });
--- a/testing/profiles/prefs_general.js
+++ b/testing/profiles/prefs_general.js
@@ -287,16 +287,19 @@ user_pref("security.ssl.errorReporting.u
 user_pref("browser.translation.bing.authURL", "http://%(server)s/browser/browser/components/translation/test/bing.sjs");
 user_pref("browser.translation.bing.translateArrayURL", "http://%(server)s/browser/browser/components/translation/test/bing.sjs");
 user_pref("browser.translation.yandex.translateURLOverride", "http://%(server)s/browser/browser/components/translation/test/yandex.sjs");
 user_pref("browser.translation.engine", "bing");
 
 // Make sure we don't try to load snippets from the network.
 user_pref("browser.aboutHomeSnippets.updateUrl", "nonexistent://test");
 
+// Use an empty list of sites to avoid fetching
+user_pref("browser.newtabpage.activity-stream.default.sites", "");
+
 // Don't fetch directory tiles data from real servers
 user_pref("browser.newtabpage.directory.source", 'data:application/json,{"testing":1}');
 
 // Ensure UITour won't hit the network
 user_pref("browser.uitour.pinnedTabUrl", "http://%(server)s/uitour-dummy/pinnedTab");
 user_pref("browser.uitour.url", "http://%(server)s/uitour-dummy/tour");
 
 // Tell the search service we are running in the US.  This also has the desired
--- a/testing/talos/talos/config.py
+++ b/testing/talos/talos/config.py
@@ -91,16 +91,17 @@ DEFAULTS = dict(
         'network.proxy.http': 'localhost',
         'network.proxy.http_port': 80,
         'network.proxy.type': 1,
         'security.enable_java': False,
         'security.fileuri.strict_origin_policy': False,
         'dom.send_after_paint_to_content': True,
         'security.turn_off_all_security_so_that_viruses_can_'
         'take_over_this_computer': True,
+        'browser.newtabpage.activity-stream.default.sites': '',
         'browser.newtabpage.directory.source':
             '${webserver}/directoryLinks.json',
         'browser.newtabpage.introShown': True,
         'browser.safebrowsing.downloads.remote.url':
             'http://127.0.0.1/safebrowsing-dummy/downloads',
         'browser.safebrowsing.provider.google.gethashURL':
             'http://127.0.0.1/safebrowsing-dummy/gethash',
         'browser.safebrowsing.provider.google.updateURL':