Bug 1441018 - Add snippets data, lazy menus and bug fixes to Activity Stream. r=k88hudson

MozReview-Commit-ID: 6CilV8vrqwY

--HG--
extra : rebase_source : 438c0250cc9a96b20e94ec53a0b43eae1b02e6d5
This commit is contained in:
Ed Lee 2018-03-01 11:21:00 -08:00
parent 101d7d588a
commit d96c554c26
172 changed files with 1001 additions and 708 deletions

View File

@ -3,11 +3,11 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var MAIN_MESSAGE_TYPE = "ActivityStream:Main";
var CONTENT_MESSAGE_TYPE = "ActivityStream:Content";
var PRELOAD_MESSAGE_TYPE = "ActivityStream:PreloadedBrowser";
var UI_CODE = 1;
var BACKGROUND_PROCESS = 2;
this.MAIN_MESSAGE_TYPE = "ActivityStream:Main";
this.CONTENT_MESSAGE_TYPE = "ActivityStream:Content";
this.PRELOAD_MESSAGE_TYPE = "ActivityStream:PreloadedBrowser";
this.UI_CODE = 1;
this.BACKGROUND_PROCESS = 2;
/**
* globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?
@ -88,6 +88,8 @@ for (const type of [
"TOP_SITES_PIN",
"TOP_SITES_UNPIN",
"TOP_SITES_UPDATED",
"TOTAL_BOOKMARKS_REQUEST",
"TOTAL_BOOKMARKS_RESPONSE",
"UNINIT",
"WEBEXT_CLICK",
"WEBEXT_DISMISS"
@ -277,7 +279,7 @@ function WebExtEvent(type, data, importContext = globalImportContext) {
this.actionTypes = actionTypes;
var actionCreators = {
this.actionCreators = {
BroadcastToContent,
UserEvent,
UndesiredEvent,
@ -293,7 +295,7 @@ var actionCreators = {
};
// These are helpers to test for certain kinds of actions
var actionUtils = {
this.actionUtils = {
isSendToMain(action) {
if (!action.meta) {
return false;
@ -338,7 +340,7 @@ var actionUtils = {
_RouteMessage
};
var EXPORTED_SYMBOLS = [
const EXPORTED_SYMBOLS = [
"actionTypes",
"actionCreators",
"actionUtils",

View File

@ -1,4 +1,4 @@
var Dedupe = class Dedupe {
this.Dedupe = class Dedupe {
constructor(createKey) {
this.createKey = createKey || this.defaultCreateKey;
}
@ -31,4 +31,4 @@ var Dedupe = class Dedupe {
}
};
var EXPORTED_SYMBOLS = ["Dedupe"];
const EXPORTED_SYMBOLS = ["Dedupe"];

View File

@ -121,5 +121,5 @@ _PerfService.prototype = {
}
};
var perfService = new _PerfService();
var EXPORTED_SYMBOLS = ["_PerfService", "perfService"];
this.perfService = new _PerfService();
const EXPORTED_SYMBOLS = ["_PerfService", "perfService"];

View File

@ -46,7 +46,7 @@ class _PrerenderData {
}
}
var PrerenderData = new _PrerenderData({
this.PrerenderData = new _PrerenderData({
initialPrefs: {
"migrationExpired": true,
"showTopSites": true,
@ -96,4 +96,4 @@ var PrerenderData = new _PrerenderData({
});
this._PrerenderData = _PrerenderData;
var EXPORTED_SYMBOLS = ["PrerenderData", "_PrerenderData"];
const EXPORTED_SYMBOLS = ["PrerenderData", "_PrerenderData"];

View File

@ -207,6 +207,19 @@ function Sections(prevState = INITIAL_STATE.Sections, action) {
// If the action is updating rows, we should consider initialized to be true.
// This can be overridden if initialized is defined in the action.data
const initialized = action.data.rows ? {initialized: true} : {};
// Make sure pinned cards stay at their current position when rows are updated.
// Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.
if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {
const rows = Array.from(action.data.rows);
section.rows.forEach((card, index) => {
if (card.pinned) {
rows.splice(index, 0, card);
}
});
return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));
}
return Object.assign({}, section, initialized, action.data);
}
return section;
@ -273,6 +286,7 @@ function Sections(prevState = INITIAL_STATE.Sections, action) {
rows: section.rows.map(item => {
if (item.url === action.data.url) {
return Object.assign({}, item, {
open_url: action.data.open_url,
pocket_id: action.data.pocket_id,
title: action.data.title,
type: "pocket"
@ -342,6 +356,6 @@ this.INITIAL_STATE = INITIAL_STATE;
this.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;
this.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;
var reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, PreferencesPane};
this.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, PreferencesPane};
var EXPORTED_SYMBOLS = ["reducers", "INITIAL_STATE", "insertPinned", "TOP_SITES_DEFAULT_ROWS", "TOP_SITES_MAX_SITES_PER_ROW"];
const EXPORTED_SYMBOLS = ["reducers", "INITIAL_STATE", "insertPinned", "TOP_SITES_DEFAULT_ROWS", "TOP_SITES_MAX_SITES_PER_ROW"];

View File

@ -1196,7 +1196,7 @@ main {
background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
border: 0;
cursor: pointer;
fill: #D7D7DB;
fill: #737373;
height: 27px;
offset-inline-end: 0;
opacity: 0;
@ -1206,21 +1206,22 @@ main {
transition-property: opacity;
width: 27px; }
.collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
fill: rgba(12, 12, 13, 0.8); }
fill: #0C0C0D; }
.collapsible-section .section-top-bar .context-menu {
top: 16px; }
@media (max-width: 1458px) {
.collapsible-section .section-top-bar .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
.collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
opacity: 1; }
.collapsible-section.active {
background: rgba(237, 237, 240, 0.2); }
background: rgba(237, 237, 240, 0.6);
border-radius: 4px; }
.collapsible-section.active .section-top-bar .context-menu-button {
fill: rgba(12, 12, 13, 0.8); }
@media (max-width: 1458px) {
.collapsible-section .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
fill: #0C0C0D; }
.collapsible-section .section-disclaimer {
color: #4A4A4F;
font-size: 13px;

File diff suppressed because one or more lines are too long

View File

@ -1196,7 +1196,7 @@ main {
background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
border: 0;
cursor: pointer;
fill: #D7D7DB;
fill: #737373;
height: 27px;
offset-inline-end: 0;
opacity: 0;
@ -1206,21 +1206,22 @@ main {
transition-property: opacity;
width: 27px; }
.collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
fill: rgba(12, 12, 13, 0.8); }
fill: #0C0C0D; }
.collapsible-section .section-top-bar .context-menu {
top: 16px; }
@media (max-width: 1458px) {
.collapsible-section .section-top-bar .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
.collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
opacity: 1; }
.collapsible-section.active {
background: rgba(237, 237, 240, 0.2); }
background: rgba(237, 237, 240, 0.6);
border-radius: 4px; }
.collapsible-section.active .section-top-bar .context-menu-button {
fill: rgba(12, 12, 13, 0.8); }
@media (max-width: 1458px) {
.collapsible-section .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
fill: #0C0C0D; }
.collapsible-section .section-disclaimer {
color: #4A4A4F;
font-size: 13px;

File diff suppressed because one or more lines are too long

View File

@ -1196,7 +1196,7 @@ main {
background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
border: 0;
cursor: pointer;
fill: #D7D7DB;
fill: #737373;
height: 27px;
offset-inline-end: 0;
opacity: 0;
@ -1206,21 +1206,22 @@ main {
transition-property: opacity;
width: 27px; }
.collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
fill: rgba(12, 12, 13, 0.8); }
fill: #0C0C0D; }
.collapsible-section .section-top-bar .context-menu {
top: 16px; }
@media (max-width: 1458px) {
.collapsible-section .section-top-bar .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
.collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
opacity: 1; }
.collapsible-section.active {
background: rgba(237, 237, 240, 0.2); }
background: rgba(237, 237, 240, 0.6);
border-radius: 4px; }
.collapsible-section.active .section-top-bar .context-menu-button {
fill: rgba(12, 12, 13, 0.8); }
@media (max-width: 1458px) {
.collapsible-section .context-menu {
margin-inline-end: 5px;
margin-inline-start: auto;
offset-inline-end: 0;
offset-inline-start: auto; } }
fill: #0C0C0D; }
.collapsible-section .section-disclaimer {
color: #4A4A4F;
font-size: 13px;

File diff suppressed because one or more lines are too long

View File

@ -106,7 +106,7 @@ const actionTypes = {};
/* harmony export (immutable) */ __webpack_exports__["b"] = actionTypes;
for (const type of ["ARCHIVE_FROM_POCKET", "BLOCK_URL", "BOOKMARK_URL", "DELETE_BOOKMARK_BY_ID", "DELETE_FROM_POCKET", "DELETE_HISTORY_URL", "DELETE_HISTORY_URL_CONFIRM", "DIALOG_CANCEL", "DIALOG_OPEN", "DISABLE_ONBOARDING", "INIT", "MIGRATION_CANCEL", "MIGRATION_COMPLETED", "MIGRATION_START", "NEW_TAB_INIT", "NEW_TAB_INITIAL_STATE", "NEW_TAB_LOAD", "NEW_TAB_REHYDRATED", "NEW_TAB_STATE_REQUEST", "NEW_TAB_UNLOAD", "OPEN_LINK", "OPEN_NEW_WINDOW", "OPEN_PRIVATE_WINDOW", "PAGE_PRERENDERED", "PLACES_BOOKMARK_ADDED", "PLACES_BOOKMARK_CHANGED", "PLACES_BOOKMARK_REMOVED", "PLACES_HISTORY_CLEARED", "PLACES_LINKS_DELETED", "PLACES_LINK_BLOCKED", "PLACES_SAVED_TO_POCKET", "PREFS_INITIAL_VALUES", "PREF_CHANGED", "RICH_ICON_MISSING", "SAVE_SESSION_PERF_DATA", "SAVE_TO_POCKET", "SCREENSHOT_UPDATED", "SECTION_DEREGISTER", "SECTION_DISABLE", "SECTION_ENABLE", "SECTION_OPTIONS_CHANGED", "SECTION_REGISTER", "SECTION_UPDATE", "SECTION_UPDATE_CARD", "SETTINGS_CLOSE", "SETTINGS_OPEN", "SET_PREF", "SHOW_FIREFOX_ACCOUNTS", "SNIPPETS_BLOCKLIST_UPDATED", "SNIPPETS_DATA", "SNIPPETS_RESET", "SNIPPET_BLOCKED", "SYSTEM_TICK", "TELEMETRY_IMPRESSION_STATS", "TELEMETRY_PERFORMANCE_EVENT", "TELEMETRY_UNDESIRED_EVENT", "TELEMETRY_USER_EVENT", "TOP_SITES_CANCEL_EDIT", "TOP_SITES_EDIT", "TOP_SITES_INSERT", "TOP_SITES_PIN", "TOP_SITES_UNPIN", "TOP_SITES_UPDATED", "UNINIT", "WEBEXT_CLICK", "WEBEXT_DISMISS"]) {
for (const type of ["ARCHIVE_FROM_POCKET", "BLOCK_URL", "BOOKMARK_URL", "DELETE_BOOKMARK_BY_ID", "DELETE_FROM_POCKET", "DELETE_HISTORY_URL", "DELETE_HISTORY_URL_CONFIRM", "DIALOG_CANCEL", "DIALOG_OPEN", "DISABLE_ONBOARDING", "INIT", "MIGRATION_CANCEL", "MIGRATION_COMPLETED", "MIGRATION_START", "NEW_TAB_INIT", "NEW_TAB_INITIAL_STATE", "NEW_TAB_LOAD", "NEW_TAB_REHYDRATED", "NEW_TAB_STATE_REQUEST", "NEW_TAB_UNLOAD", "OPEN_LINK", "OPEN_NEW_WINDOW", "OPEN_PRIVATE_WINDOW", "PAGE_PRERENDERED", "PLACES_BOOKMARK_ADDED", "PLACES_BOOKMARK_CHANGED", "PLACES_BOOKMARK_REMOVED", "PLACES_HISTORY_CLEARED", "PLACES_LINKS_DELETED", "PLACES_LINK_BLOCKED", "PLACES_SAVED_TO_POCKET", "PREFS_INITIAL_VALUES", "PREF_CHANGED", "RICH_ICON_MISSING", "SAVE_SESSION_PERF_DATA", "SAVE_TO_POCKET", "SCREENSHOT_UPDATED", "SECTION_DEREGISTER", "SECTION_DISABLE", "SECTION_ENABLE", "SECTION_OPTIONS_CHANGED", "SECTION_REGISTER", "SECTION_UPDATE", "SECTION_UPDATE_CARD", "SETTINGS_CLOSE", "SETTINGS_OPEN", "SET_PREF", "SHOW_FIREFOX_ACCOUNTS", "SNIPPETS_BLOCKLIST_UPDATED", "SNIPPETS_DATA", "SNIPPETS_RESET", "SNIPPET_BLOCKED", "SYSTEM_TICK", "TELEMETRY_IMPRESSION_STATS", "TELEMETRY_PERFORMANCE_EVENT", "TELEMETRY_UNDESIRED_EVENT", "TELEMETRY_USER_EVENT", "TOP_SITES_CANCEL_EDIT", "TOP_SITES_EDIT", "TOP_SITES_INSERT", "TOP_SITES_PIN", "TOP_SITES_UNPIN", "TOP_SITES_UPDATED", "TOTAL_BOOKMARKS_REQUEST", "TOTAL_BOOKMARKS_RESPONSE", "UNINIT", "WEBEXT_CLICK", "WEBEXT_DISMISS"]) {
actionTypes[type] = type;
}
@ -679,6 +679,19 @@ function Sections(prevState = INITIAL_STATE.Sections, action) {
// If the action is updating rows, we should consider initialized to be true.
// This can be overridden if initialized is defined in the action.data
const initialized = action.data.rows ? { initialized: true } : {};
// Make sure pinned cards stay at their current position when rows are updated.
// Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.
if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {
const rows = Array.from(action.data.rows);
section.rows.forEach((card, index) => {
if (card.pinned) {
rows.splice(index, 0, card);
}
});
return Object.assign({}, section, initialized, Object.assign({}, action.data, { rows }));
}
return Object.assign({}, section, initialized, action.data);
}
return section;
@ -745,6 +758,7 @@ function Sections(prevState = INITIAL_STATE.Sections, action) {
rows: section.rows.map(item => {
if (item.url === action.data.url) {
return Object.assign({}, item, {
open_url: action.data.open_url,
pocket_id: action.data.pocket_id,
title: action.data.title,
type: "pocket"
@ -906,6 +920,10 @@ ErrorBoundary.defaultProps = { FallbackComponent: ErrorBoundaryFallback };
// EXTERNAL MODULE: ./system-addon/common/Actions.jsm
var Actions = __webpack_require__(0);
// EXTERNAL MODULE: external "ReactRedux"
var external__ReactRedux_ = __webpack_require__(4);
var external__ReactRedux__default = /*#__PURE__*/__webpack_require__.n(external__ReactRedux_);
// EXTERNAL MODULE: ./system-addon/content-src/components/ContextMenu/ContextMenu.jsx
var ContextMenu = __webpack_require__(9);
@ -916,6 +934,16 @@ var external__ReactIntl__default = /*#__PURE__*/__webpack_require__.n(external__
// CONCATENATED MODULE: ./system-addon/content-src/lib/link-menu-options.js
const _OpenInPrivateWindow = site => ({
id: "menu_action_open_private_window",
icon: "new-window-private",
action: Actions["a" /* actionCreators */].OnlyToMain({
type: Actions["b" /* actionTypes */].OPEN_PRIVATE_WINDOW,
data: { url: site.url, referrer: site.referrer }
}),
userEvent: "OPEN_PRIVATE_WINDOW"
});
/**
* 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
@ -951,15 +979,6 @@ const LinkMenuOptions = {
}),
userEvent: "OPEN_NEW_WINDOW"
}),
OpenInPrivateWindow: site => ({
id: "menu_action_open_private_window",
icon: "new-window-private",
action: Actions["a" /* actionCreators */].AlsoToMain({
type: Actions["b" /* actionTypes */].OPEN_PRIVATE_WINDOW,
data: { url: site.url, referrer: site.referrer }
}),
userEvent: "OPEN_PRIVATE_WINDOW"
}),
BlockUrl: (site, index, eventSource) => ({
id: "menu_action_dismiss",
icon: "dismiss",
@ -1065,7 +1084,8 @@ const LinkMenuOptions = {
CheckPinTopSite: (site, index) => site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index),
CheckSavedToPocket: (site, index) => site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index),
CheckBookmarkOrArchive: site => site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site),
CheckDeleteHistoryOrEmpty: (site, index, eventSource) => site.pocket_id ? LinkMenuOptions.EmptyItem() : LinkMenuOptions.DeleteUrl(site, index, eventSource)
CheckDeleteHistoryOrEmpty: (site, index, eventSource) => site.pocket_id ? LinkMenuOptions.EmptyItem() : LinkMenuOptions.DeleteUrl(site, index, eventSource),
OpenInPrivateWindow: (site, index, eventSource, isEnabled) => isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem()
};
// EXTERNAL MODULE: external "React"
var external__React_ = __webpack_require__(1);
@ -1078,17 +1098,18 @@ var external__React__default = /*#__PURE__*/__webpack_require__.n(external__Reac
const DEFAULT_SITE_MENU_OPTIONS = ["CheckPinTopSite", "EditTopSite", "Separator", "OpenInNewWindow", "OpenInPrivateWindow", "Separator", "BlockUrl"];
class LinkMenu__LinkMenu extends external__React__default.a.PureComponent {
getOptions() {
const { props } = this;
const { site, index, source } = props;
const { site, index, source, isPrivateBrowsingEnabled } = props;
// Handle special case of default site
const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;
const options = propOptions.map(o => LinkMenuOptions[o](site, index, source)).map(option => {
const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled)).map(option => {
const { action, impression, id, string_id, type, userEvent } = option;
if (!type && id) {
option.label = props.intl.formatMessage({ id: string_id || id });
@ -1119,7 +1140,6 @@ class LinkMenu__LinkMenu extends external__React__default.a.PureComponent {
render() {
return external__React__default.a.createElement(ContextMenu["a" /* ContextMenu */], {
visible: this.props.visible,
onUpdate: this.props.onUpdate,
options: this.getOptions() });
}
@ -1127,7 +1147,8 @@ class LinkMenu__LinkMenu extends external__React__default.a.PureComponent {
/* unused harmony export _LinkMenu */
const LinkMenu = Object(external__ReactIntl_["injectIntl"])(LinkMenu__LinkMenu);
const getState = state => ({ isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled });
const LinkMenu = Object(external__ReactRedux_["connect"])(getState)(Object(external__ReactIntl_["injectIntl"])(LinkMenu__LinkMenu));
/* harmony export (immutable) */ __webpack_exports__["a"] = LinkMenu;
@ -1136,7 +1157,7 @@ const LinkMenu = Object(external__ReactIntl_["injectIntl"])(LinkMenu__LinkMenu);
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1);
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
@ -1150,29 +1171,20 @@ class ContextMenu extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.PureComp
this.props.onUpdate(false);
}
componentWillMount() {
this.hideContext();
}
componentDidUpdate(prevProps) {
if (this.props.visible && !prevProps.visible) {
setTimeout(() => {
window.addEventListener("click", this.hideContext);
}, 0);
}
if (!this.props.visible && prevProps.visible) {
window.removeEventListener("click", this.hideContext);
}
componentDidMount() {
setTimeout(() => {
global.addEventListener("click", this.hideContext);
}, 0);
}
componentWillUnmount() {
window.removeEventListener("click", this.hideContext);
global.removeEventListener("click", this.hideContext);
}
render() {
return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
"span",
{ hidden: !this.props.visible, className: "context-menu" },
{ className: "context-menu" },
__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
"ul",
{ role: "menu", className: "context-menu-list" },
@ -1230,6 +1242,7 @@ class ContextMenuItem extends __WEBPACK_IMPORTED_MODULE_0_react___default.a.Pure
}
/* unused harmony export ContextMenuItem */
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
/***/ }),
/* 10 */
@ -1439,7 +1452,7 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_3_react___default.a.
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react_intl__["FormattedMessage"], { id: "section_context_menu_button_sr" })
)
),
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4_content_src_components_SectionMenu_SectionMenu__["a" /* SectionMenu */], {
showContextMenu && __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4_content_src_components_SectionMenu_SectionMenu__["a" /* SectionMenu */], {
extraOptions: extraMenuOptions,
eventSource: eventSource,
showPrefName: showPrefName,
@ -1447,7 +1460,6 @@ class _CollapsibleSection extends __WEBPACK_IMPORTED_MODULE_3_react___default.a.
privacyNoticeURL: privacyNoticeURL,
isCollapsed: isCollapsed,
onUpdate: this.onMenuUpdate,
visible: showContextMenu,
dispatch: dispatch })
)
),
@ -1997,14 +2009,13 @@ class TopSite extends __WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponen
__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_intl__["FormattedMessage"], { id: "context_menu_button_sr", values: { title } })
)
),
__WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_content_src_components_LinkMenu_LinkMenu__["a" /* LinkMenu */], {
isContextMenuOpen && __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3_content_src_components_LinkMenu_LinkMenu__["a" /* LinkMenu */], {
dispatch: props.dispatch,
index: props.index,
onUpdate: this.onMenuUpdate,
options: __WEBPACK_IMPORTED_MODULE_2__TopSitesConstants__["c" /* TOP_SITES_CONTEXT_MENU_OPTIONS */],
site: link,
source: __WEBPACK_IMPORTED_MODULE_2__TopSitesConstants__["d" /* TOP_SITES_SOURCE */],
visible: isContextMenuOpen })
source: __WEBPACK_IMPORTED_MODULE_2__TopSitesConstants__["d" /* TOP_SITES_SOURCE */] })
)
);
}
@ -2346,6 +2357,18 @@ class SnippetsMap extends Map {
this._dispatch(__WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].AlsoToMain({ type: __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionTypes */].SHOW_FIREFOX_ACCOUNTS }));
}
getTotalBookmarksCount() {
return new Promise(resolve => {
this._dispatch(__WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["a" /* actionCreators */].OnlyToMain({ type: __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionTypes */].TOTAL_BOOKMARKS_REQUEST }));
global.addMessageListener("ActivityStream:MainToContent", function onMessage({ data: action }) {
if (action.type === __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__["b" /* actionTypes */].TOTAL_BOOKMARKS_RESPONSE) {
resolve(action.data);
global.removeMessageListener("ActivityStream:MainToContent", onMessage);
}
});
});
}
/**
* connect - Attaches an indexedDB back-end to the Map so that any set values
* are also cached in a store. It also restores any existing values
@ -3776,7 +3799,7 @@ class Card_Card extends external__React__default.a.PureComponent {
{ className: `card-outer${isContextMenuOpen ? " active" : ""}${props.placeholder ? " placeholder" : ""}` },
external__React__default.a.createElement(
"a",
{ href: link.url, onClick: !props.placeholder ? this.onLinkClick : undefined },
{ href: link.type === "pocket" ? link.open_url : link.url, onClick: !props.placeholder ? this.onLinkClick : undefined },
external__React__default.a.createElement(
"div",
{ className: "card" },
@ -3836,14 +3859,13 @@ class Card_Card extends external__React__default.a.PureComponent {
`Open context menu for ${link.title}`
)
),
!props.placeholder && external__React__default.a.createElement(LinkMenu["a" /* LinkMenu */], {
isContextMenuOpen && external__React__default.a.createElement(LinkMenu["a" /* LinkMenu */], {
dispatch: dispatch,
index: index,
source: eventSource,
onUpdate: this.onMenuUpdate,
options: link.contextMenuOptions || contextMenuOptions,
site: link,
visible: isContextMenuOpen,
shouldSendImpressionStats: shouldSendImpressionStats })
);
}
@ -3976,7 +3998,6 @@ class SectionMenu__SectionMenu extends external__React__default.a.PureComponent
render() {
return external__React__default.a.createElement(ContextMenu["a" /* ContextMenu */], {
visible: this.props.visible,
onUpdate: this.props.onUpdate,
options: this.getOptions() });
}

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
<em:type>2</em:type>
<em:bootstrap>true</em:bootstrap>
<em:unpack>false</em:unpack>
<em:version>2018.02.23.1351-10fafea4</em:version>
<em:version>2018.03.01.1281-6a7c8294</em:version>
<em:name>Activity Stream</em:name>
<em:description>A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox.</em:description>
<em:multiprocessCompatible>true</em:multiprocessCompatible>

View File

@ -5,6 +5,9 @@
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "AppConstants",
"resource://gre/modules/AppConstants.jsm");
// NB: Eagerly load modules that will be loaded/constructed/initialized in the
// common case to avoid the overhead of wrapping and detecting lazy loading.
const {actionCreators: ac, actionTypes: at} = ChromeUtils.import("resource://activity-stream/common/Actions.jsm", {});
@ -113,6 +116,11 @@ const PREFS_CONFIG = new Map([
value: true,
value_local_dev: false
}],
["telemetry.ut.events", {
title: "Enable Unified Telemetry event data collection",
value: !AppConstants.RELEASE_OR_BETA,
value_local_dev: false
}],
["telemetry.ping.endpoint", {
title: "Telemetry server endpoint",
value: "https://tiles.services.mozilla.com/v4/links/activity-stream"
@ -234,7 +242,7 @@ for (const config of FEEDS_DATA) {
PREFS_CONFIG.set(pref, config);
}
var ActivityStream = class ActivityStream {
this.ActivityStream = class ActivityStream {
/**
* constructor - Initializes an instance of ActivityStream
*
@ -339,4 +347,4 @@ var ActivityStream = class ActivityStream {
}
};
var EXPORTED_SYMBOLS = ["ActivityStream", "PREFS_CONFIG"];
const EXPORTED_SYMBOLS = ["ActivityStream", "PREFS_CONFIG"];

View File

@ -21,7 +21,7 @@ const DEFAULT_OPTIONS = {
incomingMessageName: "ActivityStream:ContentToMain"
};
var ActivityStreamMessageChannel = class ActivityStreamMessageChannel {
this.ActivityStreamMessageChannel = class ActivityStreamMessageChannel {
/**
* ActivityStreamMessageChannel - This module connects a Redux store to a RemotePageManager in Firefox.
* Call .createChannel to start the connection, and .destroyChannel to destroy it.
@ -256,4 +256,4 @@ var ActivityStreamMessageChannel = class ActivityStreamMessageChannel {
};
this.DEFAULT_OPTIONS = DEFAULT_OPTIONS;
var EXPORTED_SYMBOLS = ["ActivityStreamMessageChannel", "DEFAULT_OPTIONS"];
const EXPORTED_SYMBOLS = ["ActivityStreamMessageChannel", "DEFAULT_OPTIONS"];

View File

@ -9,7 +9,7 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
const ACTIVITY_STREAM_PREF_BRANCH = "browser.newtabpage.activity-stream.";
var Prefs = class Prefs extends Preferences {
this.Prefs = class Prefs extends Preferences {
/**
* Prefs - A wrapper around Preferences that always sets the branch to
* ACTIVITY_STREAM_PREF_BRANCH
@ -39,7 +39,7 @@ var Prefs = class Prefs extends Preferences {
}
};
var DefaultPrefs = class DefaultPrefs {
this.DefaultPrefs = class DefaultPrefs {
/**
* DefaultPrefs - A helper for setting and resetting default prefs for the add-on
*
@ -103,4 +103,4 @@ var DefaultPrefs = class DefaultPrefs {
}
};
var EXPORTED_SYMBOLS = ["DefaultPrefs", "Prefs"];
const EXPORTED_SYMBOLS = ["DefaultPrefs", "Prefs"];

View File

@ -21,7 +21,7 @@ const ONE_DAY = 24 * 60 * 60 * 1000;
const TIPPYTOP_UPDATE_TIME = ONE_DAY;
const TIPPYTOP_RETRY_DELAY = FIVE_MINUTES;
var FaviconFeed = class FaviconFeed {
this.FaviconFeed = class FaviconFeed {
constructor() {
this.tippyTopNextUpdate = 0;
this.cache = new PersistentCache("tippytop", true);
@ -124,9 +124,7 @@ var FaviconFeed = class FaviconFeed {
if (domain in sitesByDomain) {
let iconUri = Services.io.newURI(sitesByDomain[domain].image_url);
// The #tippytop is to be able to identify them for telemetry.
iconUri = iconUri.mutate()
.setRef("tippytop")
.finalize();
iconUri = iconUri.mutate().setRef("tippytop").finalize();
PlacesUtils.favicons.setAndFetchFaviconForPage(
Services.io.newURI(url),
iconUri,
@ -160,4 +158,4 @@ var FaviconFeed = class FaviconFeed {
}
};
var EXPORTED_SYMBOLS = ["FaviconFeed"];
const EXPORTED_SYMBOLS = ["FaviconFeed"];

View File

@ -46,7 +46,7 @@ function filterAdult(links) {
});
}
var EXPORTED_SYMBOLS = ["filterAdult"];
const EXPORTED_SYMBOLS = ["filterAdult"];
// These are md5 hashes of base domains to be filtered out. Originally from:
// https://hg.mozilla.org/mozilla-central/log/default/browser/base/content/newtab/newTab.inadjacent.json

View File

@ -27,7 +27,7 @@ const HIGHLIGHTS_MAX_LENGTH = 9;
const MANY_EXTRA_LENGTH = HIGHLIGHTS_MAX_LENGTH * 5 + TOP_SITES_DEFAULT_ROWS * TOP_SITES_MAX_SITES_PER_ROW;
const SECTION_ID = "highlights";
var HighlightsFeed = class HighlightsFeed {
this.HighlightsFeed = class HighlightsFeed {
constructor() {
this.dedupe = new Dedupe(this._dedupeKey);
this.linksCache = new LinksCache(NewTabUtils.activityStreamLinks,
@ -224,6 +224,4 @@ var HighlightsFeed = class HighlightsFeed {
}
};
var EXPORTED_SYMBOLS = ["HighlightsFeed", "SECTION_ID", "MANY_EXTRA_LENGTH"];
const EXPORTED_SYMBOLS = ["HighlightsFeed", "SECTION_ID", "MANY_EXTRA_LENGTH"];

View File

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["LinksCache"];
const EXPORTED_SYMBOLS = ["LinksCache"];
// This should be slightly less than SYSTEM_TICK_INTERVAL as timer
// comparisons are too exact while the async/await functionality will make the
@ -18,7 +18,7 @@ const EXPIRATION_TIME = 4.5 * 60 * 1000; // 4.5 minutes
* amount of time has passed. Allows for migrating data from previously cached
* links to the new links with the same url.
*/
var LinksCache = class LinksCache {
this.LinksCache = class LinksCache {
/**
* Create a links cache for a given object property.
*

View File

@ -14,7 +14,7 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "MigrationUtils", "resource:///modules/MigrationUtils.jsm");
ChromeUtils.defineModuleGetter(this, "ProfileAge", "resource://gre/modules/ProfileAge.jsm");
var ManualMigration = class ManualMigration {
this.ManualMigration = class ManualMigration {
constructor() {
Services.obs.addObserver(this, MIGRATION_ENDED_EVENT);
this._prefs = new Prefs();
@ -96,4 +96,4 @@ var ManualMigration = class ManualMigration {
}
};
var EXPORTED_SYMBOLS = ["ManualMigration"];
const EXPORTED_SYMBOLS = ["ManualMigration"];

View File

@ -9,7 +9,7 @@ const {actionCreators: ac, actionTypes: at} = ChromeUtils.import("resource://act
* NewTabInit - A placeholder for now. This will send a copy of the state to all
* newly opened tabs.
*/
var NewTabInit = class NewTabInit {
this.NewTabInit = class NewTabInit {
constructor() {
this._repliedEarlyTabs = new Map();
}
@ -49,4 +49,4 @@ var NewTabInit = class NewTabInit {
}
};
var EXPORTED_SYMBOLS = ["NewTabInit"];
const EXPORTED_SYMBOLS = ["NewTabInit"];

View File

@ -11,7 +11,7 @@ XPCOMUtils.defineLazyGetter(this, "gTextDecoder", () => new TextDecoder());
/**
* A file (disk) based persistent cache of a JSON serializable object.
*/
var PersistentCache = class PersistentCache {
this.PersistentCache = class PersistentCache {
/**
* Create a cache object based on a name.
*
@ -79,4 +79,4 @@ var PersistentCache = class PersistentCache {
}
};
var EXPORTED_SYMBOLS = ["PersistentCache"];
const EXPORTED_SYMBOLS = ["PersistentCache"];

View File

@ -220,7 +220,10 @@ class PlacesFeed {
}
const win = action._target.browser.ownerGlobal;
win.openLinkIn(action.data.url, where || win.whereToOpenLink(event), params);
// Pocket gives us a special reader URL to open their stories in
const urlToOpen = action.data.type === "pocket" ? action.data.open_url : action.data.url;
win.openLinkIn(urlToOpen, where || win.whereToOpenLink(event), params);
}
async saveToPocket(site, browser) {
@ -230,7 +233,7 @@ class PlacesFeed {
if (data) {
this.store.dispatch(ac.BroadcastToContent({
type: at.PLACES_SAVED_TO_POCKET,
data: {url, title, pocket_id: data.item.item_id}
data: {url, open_url: data.item.open_url, title, pocket_id: data.item.item_id}
}));
}
} catch (err) {
@ -289,4 +292,4 @@ this.PlacesFeed = PlacesFeed;
PlacesFeed.HistoryObserver = HistoryObserver;
PlacesFeed.BookmarksObserver = BookmarksObserver;
var EXPORTED_SYMBOLS = ["PlacesFeed"];
const EXPORTED_SYMBOLS = ["PlacesFeed"];

View File

@ -8,9 +8,12 @@ const {Prefs} = ChromeUtils.import("resource://activity-stream/lib/ActivityStrea
const {PrerenderData} = ChromeUtils.import("resource://activity-stream/common/PrerenderData.jsm", {});
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
"resource://gre/modules/PrivateBrowsingUtils.jsm");
const ONBOARDING_FINISHED_PREF = "browser.onboarding.notification.finished";
var PrefsFeed = class PrefsFeed {
this.PrefsFeed = class PrefsFeed {
constructor(prefMap) {
this._prefMap = prefMap;
this._prefs = new Prefs();
@ -63,6 +66,9 @@ var PrefsFeed = class PrefsFeed {
values[name] = this._prefs.get(name);
}
// Not a pref, but we need this to determine whether to show private-browsing-related stuff
values.isPrivateBrowsingEnabled = PrivateBrowsingUtils.enabled;
// Set the initial state of all prefs in redux
this.store.dispatch(ac.BroadcastToContent({type: at.PREFS_INITIAL_VALUES, data: values}));
@ -93,4 +99,4 @@ var PrefsFeed = class PrefsFeed {
}
};
var EXPORTED_SYMBOLS = ["PrefsFeed"];
const EXPORTED_SYMBOLS = ["PrefsFeed"];

View File

@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["Screenshots"];
const EXPORTED_SYMBOLS = ["Screenshots"];
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
@ -24,7 +24,7 @@ ChromeUtils.defineModuleGetter(this, "Services",
const GREY_10 = "#F9F9FA";
var Screenshots = {
this.Screenshots = {
/**
* Convert bytes to a string using extremely fast String.fromCharCode without
* exceeding the max number of arguments that can be provided to a function.

View File

@ -348,4 +348,4 @@ class SectionsFeed {
this.SectionsFeed = SectionsFeed;
this.SectionsManager = SectionsManager;
var EXPORTED_SYMBOLS = ["SectionsFeed", "SectionsManager"];
const EXPORTED_SYMBOLS = ["SectionsFeed", "SectionsManager"];

View File

@ -33,7 +33,6 @@ function getETLD(host) {
}
}
/**
* shortURL - Creates a short version of a link's url, used for display purposes
* e.g. {url: http://www.foosite.com} => "foosite"
@ -68,4 +67,4 @@ function shortURL({url}) {
parsed.pathname || parsed.href;
}
var EXPORTED_SYMBOLS = ["shortURL", "getETLD"];
const EXPORTED_SYMBOLS = ["shortURL", "getETLD"];

View File

@ -3,16 +3,19 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
ChromeUtils.import("resource://gre/modules/Services.jsm");
const {actionTypes: at, actionCreators: ac} = ChromeUtils.import("resource://activity-stream/common/Actions.jsm", {});
ChromeUtils.defineModuleGetter(this, "AddonManager",
"resource://gre/modules/AddonManager.jsm");
ChromeUtils.defineModuleGetter(this, "ShellService",
"resource:///modules/ShellService.jsm");
ChromeUtils.defineModuleGetter(this, "ProfileAge",
"resource://gre/modules/ProfileAge.jsm");
ChromeUtils.defineModuleGetter(this, "FxAccounts",
"resource://gre/modules/FxAccounts.jsm");
ChromeUtils.defineModuleGetter(this, "NewTabUtils",
"resource://gre/modules/NewTabUtils.jsm");
// Url to fetch snippets, in the urlFormatter service format.
const SNIPPETS_URL_PREF = "browser.aboutHomeSnippets.updateUrl";
@ -27,11 +30,14 @@ const SEARCH_ENGINE_OBSERVER_TOPIC = "browser-search-engine-modified";
// Should be bumped up if the snippets content format changes.
const STARTPAGE_VERSION = 5;
const ONE_WEEK = 7 * 24 * 60 * 60 * 1000;
const ONE_DAY = 24 * 60 * 60 * 1000;
const ONE_WEEK = 7 * ONE_DAY;
var SnippetsFeed = class SnippetsFeed {
this.SnippetsFeed = class SnippetsFeed {
constructor() {
this._refresh = this._refresh.bind(this);
this._totalBookmarks = null;
this._totalBookmarksLastUpdated = null;
}
get snippetsURL() {
@ -49,6 +55,10 @@ var SnippetsFeed = class SnippetsFeed {
return null;
}
isDevtoolsUser() {
return Services.prefs.getIntPref("devtools.selfxss.count") >= 5;
}
async getProfileInfo() {
const profileAge = new ProfileAge(null, null);
const createdDate = await profileAge.created;
@ -79,6 +89,39 @@ var SnippetsFeed = class SnippetsFeed {
});
}
async getAddonInfo() {
const {addons, fullData} = await AddonManager.getActiveAddons(["extension", "service"]);
const info = {};
for (const addon of addons) {
info[addon.id] = {
version: addon.version,
type: addon.type,
isSystem: addon.isSystem,
isWebExtension: addon.isWebExtension
};
if (fullData) {
Object.assign(info[addon.id], {
name: addon.name,
userDisabled: addon.userDisabled,
installDate: addon.installDate
});
}
}
return info;
}
async getTotalBookmarksCount(target) {
if (!this._totalBookmarks || (Date.now() - this._totalBookmarksLastUpdated > ONE_DAY)) {
this._totalBookmarksLastUpdated = Date.now();
try {
this._totalBookmarks = await NewTabUtils.activityStreamProvider.getTotalBookmarksCount();
} catch (e) {
Cu.reportError(e);
}
}
this.store.dispatch(ac.OnlyToOneContent({type: at.TOTAL_BOOKMARKS_RESPONSE, data: this._totalBookmarks}, target));
}
_dispatchChanges(data) {
this.store.dispatch(ac.BroadcastToContent({type: at.SNIPPETS_DATA, data}));
}
@ -94,7 +137,9 @@ var SnippetsFeed = class SnippetsFeed {
onboardingFinished: Services.prefs.getBoolPref(ONBOARDING_FINISHED_PREF),
fxaccount: Services.prefs.prefHasUserValue(FXA_USERNAME_PREF),
selectedSearchEngine: await this.getSelectedSearchEngine(),
defaultBrowser: this.isDefaultBrowser()
defaultBrowser: this.isDefaultBrowser(),
isDevtoolsUser: this.isDevtoolsUser(),
addonInfo: await this.getAddonInfo()
};
this._dispatchChanges(data);
}
@ -144,8 +189,11 @@ var SnippetsFeed = class SnippetsFeed {
case at.SNIPPETS_BLOCKLIST_UPDATED:
this.store.dispatch(ac.BroadcastToContent({type: at.SNIPPET_BLOCKED, data: action.data}));
break;
case at.TOTAL_BOOKMARKS_REQUEST:
this.getTotalBookmarksCount(action._target.browser);
break;
}
}
};
var EXPORTED_SYMBOLS = ["SnippetsFeed"];
const EXPORTED_SYMBOLS = ["SnippetsFeed"];

View File

@ -15,7 +15,7 @@ const {redux} = ChromeUtils.import("resource://activity-stream/vendor/Redux.jsm"
* It also accepts an array of "Feeds" on inititalization, which
* can listen for any action that is dispatched through the store.
*/
var Store = class Store {
this.Store = class Store {
/**
* constructor - The redux store and message manager are created here,
* but no listeners are added until "init" is called.
@ -157,4 +157,4 @@ var Store = class Store {
}
};
var EXPORTED_SYMBOLS = ["Store"];
const EXPORTED_SYMBOLS = ["Store"];

View File

@ -13,7 +13,7 @@ ChromeUtils.defineModuleGetter(this, "clearInterval", "resource://gre/modules/Ti
// Frequency at which SYSTEM_TICK events are fired
const SYSTEM_TICK_INTERVAL = 5 * 60 * 1000;
var SystemTickFeed = class SystemTickFeed {
this.SystemTickFeed = class SystemTickFeed {
init() {
this.intervalId = setInterval(() => this.store.dispatch({type: at.SYSTEM_TICK}), SYSTEM_TICK_INTERVAL);
}
@ -31,4 +31,4 @@ var SystemTickFeed = class SystemTickFeed {
};
this.SYSTEM_TICK_INTERVAL = SYSTEM_TICK_INTERVAL;
var EXPORTED_SYMBOLS = ["SystemTickFeed", "SYSTEM_TICK_INTERVAL"];
const EXPORTED_SYMBOLS = ["SystemTickFeed", "SYSTEM_TICK_INTERVAL"];

View File

@ -37,16 +37,20 @@ const USER_PREFS_ENCODING = {
const PREF_IMPRESSION_ID = "impressionId";
const TELEMETRY_PREF = "telemetry";
const EVENTS_TELEMETRY_PREF = "telemetry.ut.events";
var TelemetryFeed = class TelemetryFeed {
this.TelemetryFeed = class TelemetryFeed {
constructor(options) {
this.sessions = new Map();
this._prefs = new Prefs();
this._impressionId = this.getOrCreateImpressionId();
this.telemetryEnabled = this._prefs.get(TELEMETRY_PREF);
this.eventTelemetryEnabled = this._prefs.get(EVENTS_TELEMETRY_PREF);
this._aboutHomeSeen = false;
this._onTelemetryPrefChange = this._onTelemetryPrefChange.bind(this);
this._prefs.observe(TELEMETRY_PREF, this._onTelemetryPrefChange);
this._onEventsTelemetryPrefChange = this._onEventsTelemetryPrefChange.bind(this);
this._prefs.observe(EVENTS_TELEMETRY_PREF, this._onEventsTelemetryPrefChange);
}
init() {
@ -105,6 +109,10 @@ var TelemetryFeed = class TelemetryFeed {
this.telemetryEnabled = prefVal;
}
_onEventsTelemetryPrefChange(prefVal) {
this.eventTelemetryEnabled = prefVal;
}
/**
* Lazily initialize PingCentre to send pings
*/
@ -229,7 +237,7 @@ var TelemetryFeed = class TelemetryFeed {
let sessionEndEvent = this.createSessionEndEvent(session);
this.sendEvent(sessionEndEvent);
this.utEvents.sendSessionEndEvent(sessionEndEvent);
this.sendUTEvent(sessionEndEvent, this.utEvents.sendSessionEndEvent);
this.sessions.delete(portID);
}
@ -351,6 +359,12 @@ var TelemetryFeed = class TelemetryFeed {
}
}
sendUTEvent(event_object, eventFunction) {
if (this.eventTelemetryEnabled) {
eventFunction(event_object);
}
}
handleImpressionStats(action) {
this.sendEvent(this.createImpressionStats(action));
}
@ -358,7 +372,7 @@ var TelemetryFeed = class TelemetryFeed {
handleUserEvent(action) {
let userEvent = this.createUserEvent(action);
this.sendEvent(userEvent);
this.utEvents.sendUserEvent(userEvent);
this.sendUTEvent(userEvent, this.utEvents.sendUserEvent);
}
handleUndesiredEvent(action) {
@ -450,6 +464,7 @@ var TelemetryFeed = class TelemetryFeed {
try {
this._prefs.ignore(TELEMETRY_PREF, this._onTelemetryPrefChange);
this._prefs.ignore(EVENTS_TELEMETRY_PREF, this._onEventsTelemetryPrefChange);
} catch (e) {
Cu.reportError(e);
}
@ -457,9 +472,10 @@ var TelemetryFeed = class TelemetryFeed {
}
};
var EXPORTED_SYMBOLS = [
const EXPORTED_SYMBOLS = [
"TelemetryFeed",
"USER_PREFS_ENCODING",
"PREF_IMPRESSION_ID",
"TELEMETRY_PREF"
"TELEMETRY_PREF",
"EVENTS_TELEMETRY_PREF"
];

View File

@ -18,7 +18,7 @@ function getDomain(url) {
return domain;
}
var TippyTopProvider = class TippyTopProvider {
this.TippyTopProvider = class TippyTopProvider {
constructor() {
this._sitesByDomain = new Map();
this.initialized = false;
@ -50,4 +50,4 @@ var TippyTopProvider = class TippyTopProvider {
}
};
var EXPORTED_SYMBOLS = ["TippyTopProvider", "getDomain"];
const EXPORTED_SYMBOLS = ["TippyTopProvider", "getDomain"];

View File

@ -29,7 +29,7 @@ const MIN_FAVICON_SIZE = 96;
const CACHED_LINK_PROPS_TO_MIGRATE = ["screenshot"];
const PINNED_FAVICON_PROPS_TO_MIGRATE = ["favicon", "faviconRef", "faviconSize"];
var TopSitesFeed = class TopSitesFeed {
this.TopSitesFeed = class TopSitesFeed {
constructor() {
this._tippyTopProvider = new TippyTopProvider();
this.dedupe = new Dedupe(this._dedupeKey);
@ -347,4 +347,4 @@ var TopSitesFeed = class TopSitesFeed {
};
this.DEFAULT_TOP_SITES = DEFAULT_TOP_SITES;
var EXPORTED_SYMBOLS = ["TopSitesFeed", "DEFAULT_TOP_SITES"];
const EXPORTED_SYMBOLS = ["TopSitesFeed", "DEFAULT_TOP_SITES"];

View File

@ -27,7 +27,7 @@ const SPOC_IMPRESSION_TRACKING_PREF = "feeds.section.topstories.spoc.impressions
const REC_IMPRESSION_TRACKING_PREF = "feeds.section.topstories.rec.impressions";
const MAX_LIFETIME_CAP = 100; // Guard against misconfiguration on the server
var TopStoriesFeed = class TopStoriesFeed {
this.TopStoriesFeed = class TopStoriesFeed {
constructor() {
this.spocCampaignMap = new Map();
this.contentUpdateQueue = [];
@ -311,7 +311,7 @@ var TopStoriesFeed = class TopStoriesFeed {
// Create a new array with a spoc inserted at index 2
const position = SectionsManager.sections.get(SECTION_ID).order;
let rows = this.store.getState().Sections[position].rows.slice(0, this.stories.length);
rows.splice(2, 0, spocs[0]);
rows.splice(2, 0, Object.assign(spocs[0], {pinned: true}));
// Send a content update to the target tab
const action = {type: at.SECTION_UPDATE, data: Object.assign({rows}, {id: SECTION_ID})};
@ -506,4 +506,4 @@ this.SPOC_IMPRESSION_TRACKING_PREF = SPOC_IMPRESSION_TRACKING_PREF;
this.REC_IMPRESSION_TRACKING_PREF = REC_IMPRESSION_TRACKING_PREF;
this.MIN_DOMAIN_AFFINITIES_UPDATE_TIME = MIN_DOMAIN_AFFINITIES_UPDATE_TIME;
this.DEFAULT_RECS_EXPIRE_TIME = DEFAULT_RECS_EXPIRE_TIME;
var EXPORTED_SYMBOLS = ["TopStoriesFeed", "STORIES_UPDATE_TIME", "TOPICS_UPDATE_TIME", "SECTION_ID", "SPOC_IMPRESSION_TRACKING_PREF", "MIN_DOMAIN_AFFINITIES_UPDATE_TIME", "REC_IMPRESSION_TRACKING_PREF", "DEFAULT_RECS_EXPIRE_TIME"];
const EXPORTED_SYMBOLS = ["TopStoriesFeed", "STORIES_UPDATE_TIME", "TOPICS_UPDATE_TIME", "SECTION_ID", "SPOC_IMPRESSION_TRACKING_PREF", "MIN_DOMAIN_AFFINITIES_UPDATE_TIME", "REC_IMPRESSION_TRACKING_PREF", "DEFAULT_RECS_EXPIRE_TIME"];

View File

@ -13,7 +13,7 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
*/
const EXTRAS_FIELD_NAMES = ["addon_version", "session_id", "page", "user_prefs", "action_position"];
var UTEventReporting = class UTEventReporting {
this.UTEventReporting = class UTEventReporting {
constructor() {
Services.telemetry.setEventRecordingEnabled("activity_stream", true);
}
@ -56,4 +56,4 @@ var UTEventReporting = class UTEventReporting {
}
};
var EXPORTED_SYMBOLS = ["UTEventReporting"];
const EXPORTED_SYMBOLS = ["UTEventReporting"];

View File

@ -72,7 +72,7 @@ function merge(...args) {
* needs to be calculated every time the feed updates. Therefore allowing cache
* lookups of scores[domain][parameterSet] is beneficial
*/
var UserDomainAffinityProvider = class UserDomainAffinityProvider {
this.UserDomainAffinityProvider = class UserDomainAffinityProvider {
constructor(
timeSegments = DEFAULT_TIME_SEGMENTS,
parameterSets = DEFAULT_PARAMETER_SETS,
@ -326,4 +326,4 @@ var UserDomainAffinityProvider = class UserDomainAffinityProvider {
}
};
var EXPORTED_SYMBOLS = ["UserDomainAffinityProvider"];
const EXPORTED_SYMBOLS = ["UserDomainAffinityProvider"];

View File

@ -16,7 +16,7 @@ window.gActivityStreamStrings = {
"type_label_bookmarked": "У закладках",
"type_label_synced": "Сінхранізаванае з іншай прылады",
"type_label_recommended": "Тэндэнцыі",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Захавана ў Pocket",
"type_label_open": "Адкрыта",
"type_label_topic": "Тэма",
"type_label_now": "Зараз",
@ -33,7 +33,7 @@ window.gActivityStreamStrings = {
"confirm_history_delete_p1": "Вы сапраўды жадаеце выдаліць усе запісы аб гэтай старонцы з гісторыі?",
"confirm_history_delete_notice_p2": "Гэта дзеянне немагчыма адмяніць.",
"menu_action_save_to_pocket": "Захаваць у Pocket",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_delete_pocket": "Выдаліць з Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"search_for_something_with": "Шукаць {search_term} у:",
"search_button": "Шукаць",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Дадаць",
"topsites_form_add_header": "Новы папулярны сайт",
"topsites_form_edit_header": "Рэдагаваць папулярны сайт",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Загаловак",
"topsites_form_title_placeholder": "Увядзіце назву",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Увядзіце або ўстаўце URL",
@ -111,6 +111,5 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Дадаць папулярны сайт"
"section_menu_action_privacy_notice": "Паведамленне аб прыватнасці"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Zatím nemáte uložené žádné záložky.",
"header_stories_from": "ze šlužby",
"context_menu_button_sr": "Otevřít kontextovou nabídku pro {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Otevřít kontextovou nabídku sekce",
"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_pocket": "Saved to Pocket",
"type_label_pocket": "Uloženo do služby Pocket",
"type_label_open": "Otevřené",
"type_label_topic": "Téma",
"type_label_now": "Teď",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Smazat ze služby Pocket",
"menu_action_archive_pocket": "Archivovat do služby Pocket",
"search_for_something_with": "Vyhledat {search_term} pomocí:",
"search_button": "Vyhledat",
"search_header": "Vyhledat pomocí {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Přidat",
"topsites_form_add_header": "Nová top stránka",
"topsites_form_edit_header": "Upravit top stránku",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Nadpis",
"topsites_form_title_placeholder": "Zadejte název",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Zadejte nebo vložte URL adresu",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Vyzkoušejte Firefox se záložkami, historií a hesly z jiného vašeho prohlížeče.",
"manual_migration_cancel_button": "Ne, děkuji",
"manual_migration_import_button": "Importovat nyní",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Přidat top stránku"
"error_fallback_default_info": "Jejda, při načítání tohoto obsahu se něco pokazilo.",
"error_fallback_default_refresh_suggestion": "Obnovte prosím stránku a zkuste to znovu.",
"section_menu_action_remove_section": "Odebrat sekci",
"section_menu_action_collapse_section": "Sbalit sekci",
"section_menu_action_expand_section": "Rozbalit sekci",
"section_menu_action_manage_section": "Nastavení sekce",
"section_menu_action_add_topsite": "Přidat mezi top stránky",
"section_menu_action_move_up": "Posunout nahoru",
"section_menu_action_move_down": "Posunout dolů",
"section_menu_action_privacy_notice": "Zásady ochrany soukromí"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Nid oes gennych unrhyw nodau tudalen eto.",
"header_stories_from": "oddi wrth",
"context_menu_button_sr": "Agor dewislen cynnwys {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Agor dewislen cyd-destun yr adran",
"type_label_visited": "Ymwelwyd",
"type_label_bookmarked": "Nod Tudalen",
"type_label_synced": "Cydweddwyd o ddyfais arall",
"type_label_recommended": "Trendio",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Wedi ei gadw i Pocket",
"type_label_open": "Ar Agor",
"type_label_topic": "Pwnc",
"type_label_now": "Nawr",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"confirm_history_delete_p1": "Ydych chi'n siŵr eich bod chi am ddileu pob enghraifft o'r dudalen hon o'ch hanes?",
"confirm_history_delete_notice_p2": "Nid oes modd dadwneud hyn.",
"menu_action_save_to_pocket": "Cadw i Pocket",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Dileu o Pocket",
"menu_action_archive_pocket": "Archifo i Pocket",
"search_for_something_with": "Chwilio am {search_term} gyda:",
"search_button": "Chwilio",
"search_header": "{search_engine_name} Chwilio",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Ychwanegu",
"topsites_form_add_header": "Hoff Wefan Newydd",
"topsites_form_edit_header": "Golygu'r Hoff Wefan",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Teitl",
"topsites_form_title_placeholder": "Rhoi teitl",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Teipio neu ludo URL",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Profwch Firefox gyda nodau tudalen, hanes a chyfrineiriau o borwr arall.",
"manual_migration_cancel_button": "Dim Diolch",
"manual_migration_import_button": "Mewnforio Nawr",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Ychwanegu Prif Wefan"
"error_fallback_default_info": "Wps, aeth rhywbeth o'i le wrth llwytho'r cynnwys hwn.",
"error_fallback_default_refresh_suggestion": "Adnewyddu'r dudalen i geisio eto.",
"section_menu_action_remove_section": "Tynnu'r Adran",
"section_menu_action_collapse_section": "Cau'r Adran",
"section_menu_action_expand_section": "Estyn yr Adran",
"section_menu_action_manage_section": "Rheoli'r Adran",
"section_menu_action_add_topsite": "Ychwanegu Hoff Wefan",
"section_menu_action_move_up": "Symud i Fyny",
"section_menu_action_move_down": "Symud i Lawr",
"section_menu_action_privacy_notice": "Hysbysiad Preifatrwydd"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Sie haben noch keine Lesezeichen.",
"header_stories_from": "von",
"context_menu_button_sr": "Kontextmenü für {title} öffnen",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Kontextmenü des Abschnitts öffnen",
"type_label_visited": "Besucht",
"type_label_bookmarked": "Lesezeichen",
"type_label_synced": "Von anderem Gerät synchronisiert",
"type_label_recommended": "Beliebt",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Bei Pocket gespeichert",
"type_label_open": "Geöffnet",
"type_label_topic": "Thema",
"type_label_now": "Jetzt",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Aus Pocket löschen",
"menu_action_archive_pocket": "In Pocket archivieren",
"search_for_something_with": "Nach {search_term} suchen mit:",
"search_button": "Suchen",
"search_header": "{search_engine_name}-Suche",
@ -85,9 +85,9 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Hinzufügen",
"topsites_form_add_header": "Neue wichtige Seite",
"topsites_form_edit_header": "Wichtige Seite bearbeiten",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Titel",
"topsites_form_title_placeholder": "Name eingeben",
"topsites_form_url_label": "URL",
"topsites_form_url_label": "Adresse",
"topsites_form_url_placeholder": "Eine Adresse eingeben oder einfügen",
"topsites_form_add_button": "Hinzufügen",
"topsites_form_save_button": "Speichern",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Probieren Sie Firefox aus und importieren Sie die Lesezeichen, Chronik und Passwörter eines anderen Browsers.",
"manual_migration_cancel_button": "Nein, danke",
"manual_migration_import_button": "Jetzt importieren",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Wichtige Seite hinzufügen"
"error_fallback_default_info": "Beim Laden dieses Inhalts ist ein Fehler aufgetreten.",
"error_fallback_default_refresh_suggestion": "Aktualisieren Sie die Seite, um es erneut zu versuchen.",
"section_menu_action_remove_section": "Abschnitt entfernen",
"section_menu_action_collapse_section": "Abschnitt einklappen",
"section_menu_action_expand_section": "Abschnitt ausklappen",
"section_menu_action_manage_section": "Abschnitt verwalten",
"section_menu_action_add_topsite": "Wichtige Seite hinzufügen",
"section_menu_action_move_up": "Nach oben schieben",
"section_menu_action_move_down": "Nach unten schieben",
"section_menu_action_privacy_notice": "Datenschutzhinweis"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Hyšći cytańske znamjenja njamaśo.",
"header_stories_from": "wót",
"context_menu_button_sr": "Kontekstowy meni za {title} wócyniś",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Kontekstowy meni wótrězka wócyniś",
"type_label_visited": "Woglědany",
"type_label_bookmarked": "Ako cytańske znamje skłaźony",
"type_label_synced": "Z drugego rěda synchronizěrowany",
"type_label_recommended": "Popularny",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Do Pocket skłaźony",
"type_label_open": "Wócynjony",
"type_label_topic": "Tema",
"type_label_now": "Něnto",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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ś",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Z Pocket wulašowaś",
"menu_action_archive_pocket": "W Pocket archiwěrowaś",
"search_for_something_with": "Za {search_term} pytaś z:",
"search_button": "Pytaś",
"search_header": "Z {search_engine_name} pytaś",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Pśidaś",
"topsites_form_add_header": "Nowe nejcesćej woglědane sedło",
"topsites_form_edit_header": "Nejcesćej woglědane sedło wobźěłaś",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Titel",
"topsites_form_title_placeholder": "Titel zapódaś",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "URL zapódaś abo zasajźiś",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Wopytajśo Firefox z cytanskimi znamjenjami, historiju a gronidłami z drugego wobglědowaka.",
"manual_migration_cancel_button": "Ně, źěkujom se",
"manual_migration_import_button": "Něnto importěrowaś",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Woblubowane sedło pśidaś"
"error_fallback_default_info": "Hopla, pśi cytanju toś togo wopśimjeśa njejo se něco raźiło.",
"error_fallback_default_refresh_suggestion": "Aktualizěrujśo bok, aby hyšći raz wopytał.",
"section_menu_action_remove_section": "Wótrězk wótwónoźeś",
"section_menu_action_collapse_section": "Wótrězk schowaś",
"section_menu_action_expand_section": "Wótrězk pokazaś",
"section_menu_action_manage_section": "Wótrězk zastojaś",
"section_menu_action_add_topsite": "Woblubowane sedło pśidaś",
"section_menu_action_move_up": "Górjej",
"section_menu_action_move_down": "Dołoj",
"section_menu_action_privacy_notice": "Powěźeńka priwatnosći"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Todavía no hay ningún marcador.",
"header_stories_from": "de",
"context_menu_button_sr": "Abrir el menú para {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Abrir la sección menú contextual",
"type_label_visited": "Visitados",
"type_label_bookmarked": "Marcados",
"type_label_synced": "Sincronizados de otro dispositivo",
"type_label_recommended": "Tendencias",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Guardado en Pocket",
"type_label_open": "Abrir",
"type_label_topic": "Tópico",
"type_label_now": "Ahora",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"confirm_history_delete_p1": "¿Está seguro de querer borrar cualquier instancia de esta página del historial?",
"confirm_history_delete_notice_p2": "Esta acción no puede deshacerse.",
"menu_action_save_to_pocket": "Guardar en Pocket",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Eliminar de Pocket",
"menu_action_archive_pocket": "Archivar en Pocket",
"search_for_something_with": "Buscar {search_term} con:",
"search_button": "Buscar",
"search_header": "Buscar con {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Agregar",
"topsites_form_add_header": "Nuevo sitio más visitado",
"topsites_form_edit_header": "Editar sitio más visitado",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Título",
"topsites_form_title_placeholder": "Ingresar un título",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Escribir o pegar URL",
@ -102,15 +102,15 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Probá Firefox con los marcadores, historial y contraseñas de otro navegador.",
"manual_migration_cancel_button": "No gracias",
"manual_migration_import_button": "Importar ahora",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
"error_fallback_default_refresh_suggestion": "Recarga la página e intentálo de nuevo.",
"section_menu_action_remove_section": "Eliminar sección",
"section_menu_action_collapse_section": "Contraer sección",
"section_menu_action_expand_section": "Expandir sección",
"section_menu_action_manage_section": "Gestionar sección",
"section_menu_action_add_topsite": "Añadir sitio popular",
"section_menu_action_move_up": "Subir",
"section_menu_action_move_down": "Bajar",
"section_menu_action_privacy_notice": "Aviso de privacidad",
"edit_topsites_add_button_tooltip": "Agregar Sitio más visitado"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Todavía no tienes marcadores.",
"header_stories_from": "de",
"context_menu_button_sr": "Abrir menú contextual para {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Abrir la sección menú contextual",
"type_label_visited": "Visitado",
"type_label_bookmarked": "Marcado",
"type_label_synced": "Sacado de otro dispositivo",
"type_label_recommended": "Popular",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Guardado en Pocket",
"type_label_open": "Abrir",
"type_label_topic": "Tema",
"type_label_now": "Ahora",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"confirm_history_delete_p1": "¿Estás seguro de que quieres eliminar cada instancia de esta página de tu historial?",
"confirm_history_delete_notice_p2": "Esta acción no puede ser deshecha.",
"menu_action_save_to_pocket": "Guardar en Pocket",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Eliminar de Pocket",
"menu_action_archive_pocket": "Archivar en Pocket",
"search_for_something_with": "Buscar {search_term} con:",
"search_button": "Buscar",
"search_header": "Búsqueda de {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Añadir",
"topsites_form_add_header": "Nuevo sitio frecuente",
"topsites_form_edit_header": "Editar sitio frecuente",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Título",
"topsites_form_title_placeholder": "Ingresar un título",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Escribe o pega una URL",
@ -102,15 +102,15 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
"manual_migration_cancel_button": "No, gracias",
"manual_migration_import_button": "Importar ahora",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
"error_fallback_default_refresh_suggestion": "Recarga la página e intentálo de nuevo.",
"section_menu_action_remove_section": "Eliminar sección",
"section_menu_action_collapse_section": "Contraer sección",
"section_menu_action_expand_section": "Expandir sección",
"section_menu_action_manage_section": "Gestionar sección",
"section_menu_action_add_topsite": "Añadir sitio popular",
"section_menu_action_move_up": "Subir",
"section_menu_action_move_down": "Bajar",
"section_menu_action_privacy_notice": "Aviso de privacidad",
"edit_topsites_add_button_tooltip": "Añadir sitio frecuente"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Todavía no tienes ningún marcador.",
"header_stories_from": "desde",
"context_menu_button_sr": "Abrir menú de contexto para {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Abrir la sección menú contextual",
"type_label_visited": "Visitados",
"type_label_bookmarked": "En marcadores",
"type_label_synced": "Sincronizado desde otro dispositivo",
"type_label_recommended": "Tendencias",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Guardado en Pocket",
"type_label_open": "Abrir",
"type_label_topic": "Tema",
"type_label_now": "Ahora",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Eliminar de Pocket",
"menu_action_archive_pocket": "Archivar en Pocket",
"search_for_something_with": "Buscar {search_term} con:",
"search_button": "Buscar",
"search_header": "Búsqueda de {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Agregar",
"topsites_form_add_header": "Nuevo sitio popular",
"topsites_form_edit_header": "Editar sitio popular",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Título",
"topsites_form_title_placeholder": "Introducir título",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Escribir o pegar una URL",
@ -102,15 +102,15 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
"manual_migration_cancel_button": "No, gracias",
"manual_migration_import_button": "Importar ahora",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Añadir sitio popular"
"error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
"error_fallback_default_refresh_suggestion": "Recarga la página e intentálo de nuevo.",
"section_menu_action_remove_section": "Eliminar sección",
"section_menu_action_collapse_section": "Contraer sección",
"section_menu_action_expand_section": "Expandir sección",
"section_menu_action_manage_section": "Gestionar sección",
"section_menu_action_add_topsite": "Añadir sitio popular",
"section_menu_action_move_up": "Subir",
"section_menu_action_move_down": "Bajar",
"section_menu_action_privacy_notice": "Aviso de privacidad",
"edit_topsites_add_button_tooltip": "Agregar sitio popular"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Aún no tienes ningún marcador.",
"header_stories_from": "de",
"context_menu_button_sr": "Abrir menú contextual para {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Abrir la sección menú contextual",
"type_label_visited": "Visitados",
"type_label_bookmarked": "Marcados",
"type_label_synced": "Sincronizado desde otro dispositivo",
"type_label_recommended": "Tendencias",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Guardado en Pocket",
"type_label_open": "Abrir",
"type_label_topic": "Tema",
"type_label_now": "Ahora",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Eliminar de Pocket",
"menu_action_archive_pocket": "Archivar en Pocket",
"search_for_something_with": "Buscar {search_term} con:",
"search_button": "Buscar",
"search_header": "Buscar {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Agregar",
"topsites_form_add_header": "Nuevo sitio popular",
"topsites_form_edit_header": "Editar sitio popular",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Título",
"topsites_form_title_placeholder": "Introducir un título",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Escribir o pegar una URL",
@ -102,15 +102,15 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Prueba Firefox con los marcadores, historial y contraseñas de otro navegador.",
"manual_migration_cancel_button": "No, gracias",
"manual_migration_import_button": "Importar ahora",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"error_fallback_default_info": "Lo sentimos, algo salió mal al cargar el contenido.",
"error_fallback_default_refresh_suggestion": "Recarga la página e intentálo de nuevo.",
"section_menu_action_remove_section": "Eliminar sección",
"section_menu_action_collapse_section": "Contraer sección",
"section_menu_action_expand_section": "Expandir sección",
"section_menu_action_manage_section": "Gestionar sección",
"section_menu_action_add_topsite": "Añadir sitio popular",
"section_menu_action_move_up": "Subir",
"section_menu_action_move_down": "Bajar",
"section_menu_action_privacy_notice": "Aviso de privacidad",
"edit_topsites_add_button_tooltip": "Agregar sitio popular"
};

View File

@ -10,7 +10,7 @@ window.gActivityStreamStrings = {
"header_recommended_by": "દ્વારા ભલામણ",
"header_bookmarks_placeholder": "તમારી પાસે હજી સુધી કોઈ બુકમાર્ક્સ નથી.",
"header_stories_from": "થી",
"context_menu_button_sr": "Open context menu for {title}",
"context_menu_button_sr": "{title} માટે સંદર્ભ મેનૂ ખોલો",
"section_context_menu_button_sr": "Open the section context menu",
"type_label_visited": "જોવામા આવેલ:",
"type_label_bookmarked": "બુકમાર્ક્સ",
@ -111,5 +111,6 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice"
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "ટોચની સાઇટ ઉમેરો"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Hišće zapołožki nimaće.",
"header_stories_from": "wot",
"context_menu_button_sr": "Kontekstowy meni za {title} wočinić",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Kontekstowy meni wotrězka wočinić",
"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_pocket": "Saved to Pocket",
"type_label_pocket": "Do Pocket składowany",
"type_label_open": "Wočinjeny",
"type_label_topic": "Tema",
"type_label_now": "Nětko",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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ć",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Z Pocket zhašeć",
"menu_action_archive_pocket": "W Pocket archiwować",
"search_for_something_with": "Za {search_term} pytać z:",
"search_button": "Pytać",
"search_header": "Z {search_engine_name} pytać",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Přidać",
"topsites_form_add_header": "Nowe najhusćišo wopytane sydło",
"topsites_form_edit_header": "Najhusćišo wopytane sydło wobdźěłać",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Titul",
"topsites_form_title_placeholder": "Titul zapodać",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "URL zapodać abo zasadźić",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Wupruwujće Firefox ze zapołožkami, historiju a hesłami z druheho wobhladowaka.",
"manual_migration_cancel_button": "Ně, dźakuju so",
"manual_migration_import_button": "Nětko importować",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Woblubowane sydło přidać"
"error_fallback_default_info": "Hopla, při čitanju tutoho wobsaha je so něšto nimokuliło.",
"error_fallback_default_refresh_suggestion": "Aktualizujće stronu, zo byšće hišće raz spytał.",
"section_menu_action_remove_section": "Wotrězk wotstronić",
"section_menu_action_collapse_section": "Wotrězk schować",
"section_menu_action_expand_section": "Wotrězk pokazać",
"section_menu_action_manage_section": "Wotrězk rjadować",
"section_menu_action_add_topsite": "Woblubowane sydło přidać",
"section_menu_action_move_up": "Horje",
"section_menu_action_move_down": "Dele",
"section_menu_action_privacy_notice": "Zdźělenka priwatnosće"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Még nincs könyvjelzője.",
"header_stories_from": "innen:",
"context_menu_button_sr": "Környezeti menü megnyitása ehhez: {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "A szakasz környezeti menüjének megnyitása",
"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_pocket": "Saved to Pocket",
"type_label_pocket": "Mentve a Pocketbe",
"type_label_open": "Megnyitás",
"type_label_topic": "Téma",
"type_label_now": "Most",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Törlés a Pocketből",
"menu_action_archive_pocket": "Archiválás a Pocketben",
"search_for_something_with": "„{search_term}” keresése ezzel:",
"search_button": "Keresés",
"search_header": "{search_engine_name} keresés",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Hozzáadás",
"topsites_form_add_header": "Új népszerű oldal",
"topsites_form_edit_header": "Népszerű oldal szerkesztése",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Cím",
"topsites_form_title_placeholder": "Cím megadása",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Írjon vagy illesszen be egy URL-t",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Próbálja ki a Firefoxot másik böngészőből származó könyvjelzőkkel, előzményekkel és jelszavakkal.",
"manual_migration_cancel_button": "Köszönöm, nem",
"manual_migration_import_button": "Importálás most",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Népszerű oldal hozzáadása"
"error_fallback_default_info": "Hoppá, valami hiba történt a tartalom betöltésekor.",
"error_fallback_default_refresh_suggestion": "Az újrapróbálkozáshoz frissítse az oldalt.",
"section_menu_action_remove_section": "Szakasz eltávolítása",
"section_menu_action_collapse_section": "Szakasz összecsukása",
"section_menu_action_expand_section": "Szakasz lenyitása",
"section_menu_action_manage_section": "Szakasz kezelése",
"section_menu_action_add_topsite": "Hozzáadás a népszerű oldalakhoz",
"section_menu_action_move_up": "Mozgatás felfelé",
"section_menu_action_move_down": "Mozgatás lefelé",
"section_menu_action_privacy_notice": "Adatvédelmi nyilatkozat"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "Non è ancora disponibile alcun segnalibro.",
"header_stories_from": "da",
"context_menu_button_sr": "Apri menu contestuale per {title}",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "Apri il menu contestuale per la sezione",
"type_label_visited": "Visitato",
"type_label_bookmarked": "Nei segnalibri",
"type_label_synced": "Sincronizzato da un altro dispositivo",
"type_label_recommended": "Di tendenza",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Salvato in Pocket",
"type_label_open": "Apri",
"type_label_topic": "Argomento",
"type_label_now": "Adesso",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"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",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Elimina da Pocket",
"menu_action_archive_pocket": "Archivia in Pocket",
"search_for_something_with": "Cerca {search_term} con:",
"search_button": "Cerca",
"search_header": "Ricerca {search_engine_name}",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "Aggiungi",
"topsites_form_add_header": "Nuovi sito principale",
"topsites_form_edit_header": "Modifica sito principale",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "Titolo",
"topsites_form_title_placeholder": "Inserire un titolo",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "Digitare o incollare un URL",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "Prova Firefox con i segnalibri, la cronologia e le password di un altro browser.",
"manual_migration_cancel_button": "No grazie",
"manual_migration_import_button": "Importa adesso",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "Aggiungi sito principale"
"error_fallback_default_info": "Oops, qualcosa è andato storto durante il tentativo di caricare questo contenuto.",
"error_fallback_default_refresh_suggestion": "Aggiornare la pagina per riprovare.",
"section_menu_action_remove_section": "Rimuovi sezione",
"section_menu_action_collapse_section": "Comprimi sezione",
"section_menu_action_expand_section": "Espandi sezione",
"section_menu_action_manage_section": "Gestisci sezione",
"section_menu_action_add_topsite": "Aggiungi sito principale",
"section_menu_action_move_up": "Sposta in alto",
"section_menu_action_move_down": "Sposta in basso",
"section_menu_action_privacy_notice": "Informativa sulla privacy"
};

View File

@ -11,12 +11,12 @@ window.gActivityStreamStrings = {
"header_bookmarks_placeholder": "まだブックマークがありません。",
"header_stories_from": "配信元",
"context_menu_button_sr": "{title} のコンテキストメニューを開く",
"section_context_menu_button_sr": "Open the section context menu",
"section_context_menu_button_sr": "セクションのコンテキストメニューを開く",
"type_label_visited": "訪問済み",
"type_label_bookmarked": "ブックマーク済み",
"type_label_synced": "他の端末から同期",
"type_label_recommended": "話題の記事",
"type_label_pocket": "Saved to Pocket",
"type_label_pocket": "Pocket に保存しました",
"type_label_open": "開く",
"type_label_topic": "トピック",
"type_label_now": "今",
@ -33,8 +33,8 @@ window.gActivityStreamStrings = {
"confirm_history_delete_p1": "本当にこのページに関して保存されているあらゆる情報を履歴から削除しますか?",
"confirm_history_delete_notice_p2": "この操作は取り消せません。",
"menu_action_save_to_pocket": "Pocket へ保存",
"menu_action_delete_pocket": "Delete from Pocket",
"menu_action_archive_pocket": "Archive in Pocket",
"menu_action_delete_pocket": "Pocket から削除",
"menu_action_archive_pocket": "Pocket にアーカイブ",
"search_for_something_with": "{search_term} を検索:",
"search_button": "検索",
"search_header": "{search_engine_name} 検索",
@ -85,7 +85,7 @@ window.gActivityStreamStrings = {
"edit_topsites_add_button": "追加",
"topsites_form_add_header": "新着トップサイト",
"topsites_form_edit_header": "トップサイトを編集",
"topsites_form_title_label": "Title",
"topsites_form_title_label": "タイトル",
"topsites_form_title_placeholder": "タイトルを入力",
"topsites_form_url_label": "URL",
"topsites_form_url_placeholder": "URL を入力するか貼り付け",
@ -102,15 +102,14 @@ window.gActivityStreamStrings = {
"manual_migration_explanation2": "他のブラウザーからブックマークや履歴、パスワードを取り込んで Firefox を使ってみましょう。",
"manual_migration_cancel_button": "今はしない",
"manual_migration_import_button": "今すぐインポート",
"error_fallback_default_info": "Oops, something went wrong loading this content.",
"error_fallback_default_refresh_suggestion": "Refresh page to try again.",
"section_menu_action_remove_section": "Remove Section",
"section_menu_action_collapse_section": "Collapse Section",
"section_menu_action_expand_section": "Expand Section",
"section_menu_action_manage_section": "Manage Section",
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "Move Up",
"section_menu_action_move_down": "Move Down",
"section_menu_action_privacy_notice": "Privacy Notice",
"edit_topsites_add_button_tooltip": "トップサイトを追加"
"error_fallback_default_info": "このコンテンツの読み込み中に何か問題が発生しました。",
"error_fallback_default_refresh_suggestion": "ページを再読み込みして再確認してください。",
"section_menu_action_remove_section": "セクションを削除",
"section_menu_action_collapse_section": "セクションを折りたたむ",
"section_menu_action_expand_section": "セクションを広げる",
"section_menu_action_manage_section": "セクションを管理",
"section_menu_action_add_topsite": "トップサイトを追加",
"section_menu_action_move_up": "上へ移動",
"section_menu_action_move_down": "下へ移動",
"section_menu_action_privacy_notice": "プライバシー通知"
};

Some files were not shown because too many files have changed in this diff Show More