--- a/browser/extensions/activity-stream/.eslintrc.js
+++ b/browser/extensions/activity-stream/.eslintrc.js
@@ -28,18 +28,16 @@ module.exports = {
"env": {
"node": false
},
"rules": {
"no-implicit-globals": 0
}
}],
"rules": {
- "no-undef": 1, // Override eslint-plugin-mozilla until 0.13.1+ is available
-
"promise/catch-or-return": 2,
"promise/param-names": 2,
"react/jsx-boolean-value": [2, "always"],
"react/jsx-closing-bracket-location": [2, "after-props"],
"react/jsx-curly-spacing": [2, "never"],
"react/jsx-equals-spacing": [2, "never"],
"react/jsx-key": 2,
--- a/browser/extensions/activity-stream/content-src/asrouter/asrouter-content.jsx
+++ b/browser/extensions/activity-stream/content-src/asrouter/asrouter-content.jsx
@@ -71,42 +71,43 @@ const ALLOWED_TAGS = {
em: <em />,
br: <br />
};
/**
* Transform an object (tag name: {url}) into (tag name: anchor) where the url
* is used as href, in order to render links inside a Fluent.Localized component.
*/
-function convertLinks(links) {
+export function convertLinks(links, sendClick) {
if (links) {
return Object.keys(links).reduce((acc, linkTag) => {
- acc[linkTag] = <a href={safeURI(links[linkTag].url)} />;
+ acc[linkTag] = <a href={safeURI(links[linkTag].url)} data-metric={links[linkTag].metric} onClick={sendClick} />;
return acc;
}, {});
}
return null;
}
/**
* Message wrapper used to sanitize markup and render HTML.
*/
function RichText(props) {
return (
- <Localized id="RichTextSnippet" {...ALLOWED_TAGS} {...convertLinks(props.links)}>
+ <Localized id="RichTextSnippet" {...ALLOWED_TAGS} {...convertLinks(props.links, props.sendClick)}>
<span>{props.text}</span>
</Localized>
);
}
export class ASRouterUISurface extends React.PureComponent {
constructor(props) {
super(props);
this.onMessageFromParent = this.onMessageFromParent.bind(this);
+ this.sendClick = this.sendClick.bind(this);
this.sendImpression = this.sendImpression.bind(this);
this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);
this.state = {message: {}, bundle: {}};
}
sendUserActionTelemetry(extraProps = {}) {
const {message, bundle} = this.state;
if (!message && !extraProps.message_id) {
@@ -120,16 +121,29 @@ export class ASRouterUISurface extends R
...extraProps
});
}
sendImpression(extraProps) {
this.sendUserActionTelemetry({event: "IMPRESSION", ...extraProps});
}
+ // If link has a `metric` data attribute send it as part of the `value`
+ // telemetry field which can have arbitrary values.
+ // Used for router messages with links as part of the content.
+ sendClick(event) {
+ const metric = {
+ value: event.target.dataset.metric,
+ // Used for the `source` of the event. Needed to differentiate
+ // from other snippet or onboarding events that may occur.
+ id: "NEWTAB_FOOTER_BAR_CONTENT"
+ };
+ this.sendUserActionTelemetry({event: "CLICK_BUTTON", ...metric});
+ }
+
onBlockById(id) {
return () => ASRouterUtils.blockById(id);
}
clearBundle(bundle) {
return () => ASRouterUtils.blockBundle(bundle);
}
@@ -172,17 +186,19 @@ export class ASRouterUISurface extends R
message={this.state.message}
sendImpression={this.sendImpression}
shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}
// This helps with testing
document={this.props.document}>
<LocalizationProvider messages={generateMessages(this.state.message.content.text)}>
<SimpleSnippet
{...this.state.message}
- richText={<RichText text={this.state.message.content.text} links={this.state.message.content.links} />}
+ richText={<RichText text={this.state.message.content.text}
+ links={this.state.message.content.links}
+ sendClick={this.sendClick} />}
UISurface="NEWTAB_FOOTER_BAR"
getNextMessage={ASRouterUtils.getNextMessage}
onBlock={this.onBlockById(this.state.message.id)}
sendUserActionTelemetry={this.sendUserActionTelemetry} />
</LocalizationProvider>
</ImpressionsWrapper>);
}
--- a/browser/extensions/activity-stream/content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss
+++ b/browser/extensions/activity-stream/content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss
@@ -6,34 +6,34 @@
.modalOverlayOuter {
background: $white;
opacity: 0.93;
height: 100%;
position: fixed;
top: 0;
width: 100%;
display: none;
- z-index: 100000;
+ z-index: 1100;
&.active {
display: block;
}
}
.modalOverlayInner {
width: 960px;
height: 510px;
position: fixed;
top: calc(50% - 255px); // halfway down minus half the height of the modal
left: calc(50% - 480px); // halfway across minus half the width of the modal
background: $white;
box-shadow: 0 1px 15px 0 $black-30;
border-radius: 4px;
display: none;
- z-index: 100001;
+ z-index: 1101;
// modal takes over entire screen
@media(max-width: 960px) {
width: 100%;
height: 100%;
top: 0;
left: 0;
@@ -41,16 +41,21 @@
border-radius: 0;
}
// if modal is short enough, add a vertical scroll bar
@media(max-width: 850px) and (max-height: 730px) {
overflow-y: scroll;
}
+ // if modal is narrow enough, add a vertical scroll bar
+ @media(max-width: 650px) and (max-height: 600px) {
+ overflow-y: scroll;
+ }
+
&.active {
display: block;
}
h2 {
color: $grey-60;
text-align: center;
font-weight: 200;
@@ -77,16 +82,21 @@
text-align: center;
background-color: $white;
// if modal is short enough, footer becomes sticky
@media(max-width: 850px) and (max-height: 730px) {
position: sticky;
}
+ // if modal is narrow enough, footer becomes sticky
+ @media(max-width: 650px) and (max-height: 600px) {
+ position: sticky;
+ }
+
.modalButton {
margin-top: 20px;
width: 150px;
height: 30px;
padding: 4px 0 6px 0;
font-size: 15px;
}
}
--- a/browser/extensions/activity-stream/content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss
+++ b/browser/extensions/activity-stream/content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss
@@ -46,16 +46,20 @@
> span > p {
margin-top: 0;
line-height: 22px;
font-size: 15px;
}
}
}
+ @media(max-width: 650px) {
+ height: 250px;
+ }
+
.onboardingMessageImage {
height: 100px;
width: 120px;
background-size: 120px;
background-position: center center;
background-repeat: no-repeat;
display: inline-block;
vertical-align: middle;
@@ -95,16 +99,20 @@
> span > p {
color: $grey-60;
margin-top: 0;
height: 130px;
margin-bottom: 12px;
font-size: 15px;
line-height: 22px;
+
+ @media(max-width: 650px) {
+ margin-bottom: 0px;
+ }
}
}
.onboardingButton {
background-color: $grey-90-10;
border: none;
width: 150px;
height: 30px;
@@ -113,16 +121,21 @@
font-size: 15px;
// at 850px, the button shimmies down and to the right
@media(max-width: 850px) {
float: right;
margin-top: -60px;
margin-right: -10px;
}
+
+ @media(max-width: 650px) {
+ float: none;
+ margin-top: 30px;
+ }
}
&::before {
content: '';
height: 220px;
width: 1px;
position: absolute;
--- a/browser/extensions/activity-stream/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.schema.json
+++ b/browser/extensions/activity-stream/content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.schema.json
@@ -1,12 +1,12 @@
{
"title": "SimpleSnippet",
"description": "A simple template with an icon, text, and optional button.",
- "version": "0.2.0",
+ "version": "1.0.0",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Snippet title displayed before snippet text"
},
"text": {
"type": "string",
@@ -45,16 +45,20 @@
"type": "boolean",
"description": "To be used by fundraising only, increases height to roughly 120px. Defaults to false."
},
"links": {
"additionalProperties": {
"url": {
"type": "string",
"description": "The url where the link points to."
+ },
+ "metric": {
+ "type": "string",
+ "description": "Custom event name sent with telemetry event."
}
}
}
},
"additionalProperties": false,
"required": ["text"],
"dependencies": {
"button_url": ["button_label"],
--- a/browser/extensions/activity-stream/content-src/components/Base/Base.jsx
+++ b/browser/extensions/activity-stream/content-src/components/Base/Base.jsx
@@ -72,17 +72,18 @@ export class _Base extends React.PureCom
}
}
render() {
const {props} = this;
const {App, locale, strings} = props;
const {initialized} = App;
- if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === "#asrouter") {
+ const prefs = props.Prefs.values;
+ if ((prefs.asrouterExperimentEnabled || prefs.asrouterOnboardingCohort > 0) && window.location.hash === "#asrouter") {
return (<ASRouterAdmin />);
}
if (!props.isPrerendered && !initialized) {
return null;
}
return (<IntlProvider locale={locale} messages={strings}>
--- a/browser/extensions/activity-stream/content-src/components/Base/_Base.scss
+++ b/browser/extensions/activity-stream/content-src/components/Base/_Base.scss
@@ -77,17 +77,17 @@ main {
background-color: transparent;
border: 0;
cursor: pointer;
fill: var(--newtab-icon-primary-color);
offset-inline-end: 15px;
padding: 15px;
position: fixed;
top: 15px;
- z-index: 12001;
+ z-index: 1000;
&:hover,
&:focus {
background-color: var(--newtab-element-hover-color);
}
&:active {
background-color: var(--newtab-element-active-color);
--- a/browser/extensions/activity-stream/content-src/components/StartupOverlay/StartupOverlay.jsx
+++ b/browser/extensions/activity-stream/content-src/components/StartupOverlay/StartupOverlay.jsx
@@ -56,17 +56,17 @@ export class _StartupOverlay extends Rea
<div className="firstrun-scene">
<div className="fxaccounts-container">
<div className="firstrun-left-divider">
<h1 className="firstrun-title"><FormattedMessage id="firstrun_title" /></h1>
<p className="firstrun-content"><FormattedMessage id="firstrun_content" /></p>
<a className="firstrun-link" href="https://www.mozilla.org/firefox/features/sync/" target="_blank" rel="noopener noreferrer"><FormattedMessage id="firstrun_learn_more_link" /></a>
</div>
<div className="firstrun-sign-in">
- <p className="form-header"><FormattedMessage id="firstrun_form_header" /><span><FormattedMessage id="firstrun_form_sub_header" /></span></p>
+ <p className="form-header"><FormattedMessage id="firstrun_form_header" /><span className="sub-header"><FormattedMessage id="firstrun_form_sub_header" /></span></p>
<form method="get" action="https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun" target="_blank" rel="noopener noreferrer" onSubmit={this.onSubmit}>
<input name="service" type="hidden" value="sync" />
<input name="action" type="hidden" value="email" />
<input name="context" type="hidden" value="fx_desktop_v3" />
<input className="email-input" name="email" type="email" required="true" placeholder={this.props.intl.formatMessage({id: "firstrun_email_input_placeholder"})} onChange={this.onInputChange} />
<div className="extra-links">
<FormattedMessage
id="firstrun_extra_legal_links"
--- a/browser/extensions/activity-stream/content-src/components/StartupOverlay/_StartupOverlay.scss
+++ b/browser/extensions/activity-stream/content-src/components/StartupOverlay/_StartupOverlay.scss
@@ -6,34 +6,41 @@
&:not(.welcome) {
.overlay-wrapper {
display: none;
}
}
}
.overlay-wrapper {
- position: fixed;
+ position: absolute;
top: 0;
width: 100vw;
height: 100vh;
z-index: 21000;
- font-weight: 200;
transition: opacity 0.4s;
opacity: 0;
+ overflow-x: auto;
&.show {
transition: none;
opacity: 1;
.firstrun-sign-in {
transition: opacity 1.5s, transform 1.5s;
transition-delay: 0.2s;
transform: translateY(-50%) scale(1);
opacity: 1;
+
+ @media screen and (max-width: 790px) {
+ float: none;
+ margin: auto;
+ top: 190px;
+ margin-bottom: 100px;
+ }
}
.firstrun-firefox-logo {
transition: opacity 2.3s;
opacity: 1;
}
.firstrun-title,
@@ -66,16 +73,17 @@
.background {
width: 100%;
height: 100%;
display: block;
background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,
linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,
$blue-70;
background-size: cover;
+ position: fixed;
}
.firstrun-sign-in {
transform: translateY(-50%) scale(0.8);
position: relative;
top: 50%;
width: 358px;
opacity: 0;
@@ -110,64 +118,71 @@
margin: auto;
width: 244px;
display: block;
height: 40px;
padding-inline-start: 20px;
border: 1px solid $grey-50;
border-radius: 2px;
font-size: 16px;
+ transition: border-color 150ms, box-shadow 150ms;
&:hover {
border-color: $grey-90;
}
+
+ &:focus {
+ border-color: $blue-50;
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3);
+ }
}
.form-header {
- font-size: 18px;
+ font-size: 22px;
margin: 15px auto;
}
- .form-header span {
+ .form-header .sub-header {
font-size: 14px;
margin-top: 4px;
display: block;
}
button {
- border-radius: 2px;
display: block;
cursor: pointer;
margin: 10px auto 0;
}
.continue-button {
font-size: 18px;
height: 43px;
width: 250px;
padding: 8px 0;
- border: 1px solid $blue-60;
+ border: 0;
+ border-radius: 4px;
color: $white;
- background-color: $blue-50;
- transition-duration: 150ms;
- transition-property: background-color;
+ background-color: $blue-60;
+ transition: background-color 150ms;
- &:not([disabled]):active {
+ &:not([disabled]):active,
+ &:not([disabled]):hover {
background: $blue-70;
border-color: $blue-80;
}
}
.skip-button {
font-size: 13px;
- margin-top: 40px;
+ margin-top: 35px;
margin-bottom: 20px;
background-color: #FCFCFC;
color: $blue-50;
border: 1px solid $blue-50;
+ border-radius: 2px;
min-height: 24px;
padding: 5px 10px;
transition: background-color 150ms, color 150ms, border-color 150ms;
&[disabled] {
background-color: #EBEBEB;
border-color: #B1B1B1;
color: #6A6A6A;
@@ -183,16 +198,27 @@
}
}
.firstrun-left-divider {
position: relative;
float: inline-start;
clear: both;
width: 435px;
+
+ @media screen and (max-width: 825px) {
+ width: 400px;
+ }
+
+ @media screen and (max-width: 790px) {
+ margin: auto;
+ float: none;
+ width: 352px;
+ text-align: center;
+ }
}
.firstrun-content {
line-height: 1.5;
margin-bottom: 48px;
max-width: 352px;
background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;
padding-bottom: 210px;
@@ -210,17 +236,21 @@
}
}
.firstrun-title {
background: url('chrome://branding/content/about-logo.png') top left no-repeat;
background-size: 90px 90px;
margin: 40px 0 10px;
padding-top: 110px;
- font-weight: 200;
+
+ @media screen and (max-width: 790px) {
+ background: url('chrome://branding/content/about-logo.png') top center no-repeat;
+ background-size: 90px 90px;
+ }
}
[dir='rtl'] {
.firstrun-title {
background-position: top right;
}
}
@@ -232,16 +262,25 @@
left: 0;
color: $white;
height: 515px;
margin: auto;
width: 819px;
z-index: 10;
transition: opacity 0.3s;
opacity: 0;
+
+ @media screen and (max-width: 825px) {
+ width: 784px;
+ }
+
+ @media screen and (max-width: 790px) {
+ width: auto;
+ height: 100%;
+ }
}
.firstrun-title,
.firstrun-content,
.firstrun-link {
opacity: 0;
transform: translateY(-5px);
}
--- a/browser/extensions/activity-stream/content-src/lib/snippets.js
+++ b/browser/extensions/activity-stream/content-src/lib/snippets.js
@@ -378,22 +378,23 @@ export class SnippetsProvider {
export function addSnippetsSubscriber(store) {
const snippets = new SnippetsProvider(store.dispatch);
const asrouterContent = new ASRouterContent();
let initializing = false;
store.subscribe(async () => {
const state = store.getState();
+ const isASRouterEnabled = state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort > 0;
// state.Prefs.values["feeds.snippets"]: Should snippets be shown?
// state.Snippets.initialized Is the snippets data initialized?
// snippets.initialized: Is SnippetsProvider currently initialised?
if (state.Prefs.values["feeds.snippets"] &&
// If the message center experiment is enabled, don't show snippets
- !state.Prefs.values.asrouterExperimentEnabled &&
+ !isASRouterEnabled &&
!state.Prefs.values.disableSnippets &&
state.Snippets.initialized &&
!snippets.initialized &&
// Don't call init multiple times
!initializing &&
location.href !== "about:welcome"
) {
initializing = true;
@@ -405,22 +406,22 @@ export function addSnippetsSubscriber(st
snippets.initialized
) {
snippets.uninit();
}
// Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;
// otherwise, turn it off.
if (
- state.Prefs.values.asrouterExperimentEnabled &&
+ (state.Prefs.values.asrouterExperimentEnabled || state.Prefs.values.asrouterOnboardingCohort > 0) &&
state.Prefs.values["feeds.snippets"] &&
!asrouterContent.initialized) {
asrouterContent.init();
} else if (
- (!state.Prefs.values.asrouterExperimentEnabled || !state.Prefs.values["feeds.snippets"]) &&
+ ((!state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort === 0) || !state.Prefs.values["feeds.snippets"]) &&
asrouterContent.initialized
) {
asrouterContent.uninit();
}
});
// These values are returned for testing purposes
return {snippets, asrouterContent};
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -368,17 +368,17 @@ main {
background-color: transparent;
border: 0;
cursor: pointer;
fill: var(--newtab-icon-primary-color);
offset-inline-end: 15px;
padding: 15px;
position: fixed;
top: 15px;
- z-index: 12001; }
+ z-index: 1000; }
.prefs-button button:hover, .prefs-button button:focus {
background-color: var(--newtab-element-hover-color); }
.prefs-button button:active {
background-color: var(--newtab-element-active-color); }
.as-error-fallback {
align-items: center;
border-radius: 3px;
@@ -805,32 +805,38 @@ main {
.activity-stream.welcome {
overflow: hidden; }
.activity-stream:not(.welcome) .overlay-wrapper {
display: none; }
.overlay-wrapper {
- position: fixed;
+ position: absolute;
top: 0;
width: 100vw;
height: 100vh;
z-index: 21000;
- font-weight: 200;
transition: opacity 0.4s;
- opacity: 0; }
+ opacity: 0;
+ overflow-x: auto; }
.overlay-wrapper.show {
transition: none;
opacity: 1; }
.overlay-wrapper.show .firstrun-sign-in {
transition: opacity 1.5s, transform 1.5s;
transition-delay: 0.2s;
transform: translateY(-50%) scale(1);
opacity: 1; }
+ @media screen and (max-width: 790px) {
+ .overlay-wrapper.show .firstrun-sign-in {
+ float: none;
+ margin: auto;
+ top: 190px;
+ margin-bottom: 100px; } }
.overlay-wrapper.show .firstrun-firefox-logo {
transition: opacity 2.3s;
opacity: 1; }
.overlay-wrapper.show .firstrun-title,
.overlay-wrapper.show .firstrun-content,
.overlay-wrapper.show .firstrun-link {
transition: transform 0.5s, opacity 0.8s;
transform: translateY(0);
@@ -845,17 +851,18 @@ main {
transition: none;
opacity: 1; }
.background {
width: 100%;
height: 100%;
display: block;
background: url("../data/content/assets/fox-tail.png") top -200px center no-repeat, linear-gradient(to bottom, #003EAA 40%, #004EC2 60%, #0060DF 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat, #003EAA;
- background-size: cover; }
+ background-size: cover;
+ position: fixed; }
.firstrun-sign-in {
transform: translateY(-50%) scale(0.8);
position: relative;
top: 50%;
width: 358px;
opacity: 0;
background-color: #FFF;
@@ -881,51 +888,55 @@ main {
box-shadow: none;
margin: auto;
width: 244px;
display: block;
height: 40px;
padding-inline-start: 20px;
border: 1px solid #737373;
border-radius: 2px;
- font-size: 16px; }
+ font-size: 16px;
+ transition: border-color 150ms, box-shadow 150ms; }
.firstrun-sign-in .email-input:hover {
border-color: #0C0C0D; }
+ .firstrun-sign-in .email-input:focus {
+ border-color: #0A84FF;
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3); }
.firstrun-sign-in .form-header {
- font-size: 18px;
+ font-size: 22px;
margin: 15px auto; }
- .firstrun-sign-in .form-header span {
+ .firstrun-sign-in .form-header .sub-header {
font-size: 14px;
margin-top: 4px;
display: block; }
.firstrun-sign-in button {
- border-radius: 2px;
display: block;
cursor: pointer;
margin: 10px auto 0; }
.firstrun-sign-in .continue-button {
font-size: 18px;
height: 43px;
width: 250px;
padding: 8px 0;
- border: 1px solid #0060DF;
+ border: 0;
+ border-radius: 4px;
color: #FFF;
- background-color: #0A84FF;
- transition-duration: 150ms;
- transition-property: background-color; }
- .firstrun-sign-in .continue-button:not([disabled]):active {
+ background-color: #0060DF;
+ transition: background-color 150ms; }
+ .firstrun-sign-in .continue-button:not([disabled]):active, .firstrun-sign-in .continue-button:not([disabled]):hover {
background: #003EAA;
border-color: #002275; }
.firstrun-sign-in .skip-button {
font-size: 13px;
- margin-top: 40px;
+ margin-top: 35px;
margin-bottom: 20px;
background-color: #FCFCFC;
color: #0A84FF;
border: 1px solid #0A84FF;
+ border-radius: 2px;
min-height: 24px;
padding: 5px 10px;
transition: background-color 150ms, color 150ms, border-color 150ms; }
.firstrun-sign-in .skip-button[disabled] {
background-color: #EBEBEB;
border-color: #B1B1B1;
color: #6A6A6A;
cursor: default;
@@ -935,16 +946,25 @@ main {
border-color: #0060DF;
color: #FFF; }
.firstrun-left-divider {
position: relative;
float: inline-start;
clear: both;
width: 435px; }
+ @media screen and (max-width: 825px) {
+ .firstrun-left-divider {
+ width: 400px; } }
+ @media screen and (max-width: 790px) {
+ .firstrun-left-divider {
+ margin: auto;
+ float: none;
+ width: 352px;
+ text-align: center; } }
.firstrun-content {
line-height: 1.5;
margin-bottom: 48px;
max-width: 352px;
background: url("../data/content/assets/sync-devices.svg") bottom center no-repeat;
padding-bottom: 210px; }
@@ -954,18 +974,21 @@ main {
text-decoration: underline; }
.firstrun-link:hover, .firstrun-link:active, .firstrun-link:focus {
color: #FFF; }
.firstrun-title {
background: url("chrome://branding/content/about-logo.png") top left no-repeat;
background-size: 90px 90px;
margin: 40px 0 10px;
- padding-top: 110px;
- font-weight: 200; }
+ padding-top: 110px; }
+ @media screen and (max-width: 790px) {
+ .firstrun-title {
+ background: url("chrome://branding/content/about-logo.png") top center no-repeat;
+ background-size: 90px 90px; } }
[dir='rtl'] .firstrun-title {
background-position: top right; }
.fxaccounts-container {
position: absolute;
bottom: 0;
right: 0;
@@ -973,16 +996,23 @@ main {
left: 0;
color: #FFF;
height: 515px;
margin: auto;
width: 819px;
z-index: 10;
transition: opacity 0.3s;
opacity: 0; }
+ @media screen and (max-width: 825px) {
+ .fxaccounts-container {
+ width: 784px; } }
+ @media screen and (max-width: 790px) {
+ .fxaccounts-container {
+ width: auto;
+ height: 100%; } }
.firstrun-title,
.firstrun-content,
.firstrun-link {
opacity: 0;
transform: translateY(-5px); }
.topic {
@@ -1690,42 +1720,45 @@ main {
.modalOverlayOuter {
background: #FFF;
opacity: 0.93;
height: 100%;
position: fixed;
top: 0;
width: 100%;
display: none;
- z-index: 100000; }
+ z-index: 1100; }
.modalOverlayOuter.active {
display: block; }
.modalOverlayInner {
width: 960px;
height: 510px;
position: fixed;
top: calc(50% - 255px);
left: calc(50% - 480px);
background: #FFF;
box-shadow: 0 1px 15px 0 rgba(0, 0, 0, 0.3);
border-radius: 4px;
display: none;
- z-index: 100001; }
+ z-index: 1101; }
@media (max-width: 960px) {
.modalOverlayInner {
width: 100%;
height: 100%;
top: 0;
left: 0;
box-shadow: none;
border-radius: 0; } }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner {
overflow-y: scroll; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner {
+ overflow-y: scroll; } }
.modalOverlayInner.active {
display: block; }
.modalOverlayInner h2 {
color: #4A4A4F;
text-align: center;
font-weight: 200;
margin-top: 30px;
font-size: 28px;
@@ -1743,16 +1776,19 @@ main {
width: 100%;
position: absolute;
bottom: 0;
text-align: center;
background-color: #FFF; }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner .footer {
position: sticky; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner .footer {
+ position: sticky; } }
.modalOverlayInner .footer .modalButton {
margin-top: 20px;
width: 150px;
height: 30px;
padding: 4px 0 6px 0;
font-size: 15px; }
.SimpleSnippet.tall {
@@ -1824,16 +1860,19 @@ main {
.onboardingMessage .onboardingContent > span > h3 {
margin-top: 0;
margin-bottom: 4px;
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
margin-top: 0;
line-height: 22px;
font-size: 15px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage {
+ height: 250px; } }
.onboardingMessage .onboardingMessageImage {
height: 100px;
width: 120px;
background-size: 120px;
background-position: center center;
background-repeat: no-repeat;
display: inline-block;
vertical-align: middle; }
@@ -1858,29 +1897,36 @@ main {
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
color: #4A4A4F;
margin-top: 0;
height: 130px;
margin-bottom: 12px;
font-size: 15px;
line-height: 22px; }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingContent > span > p {
+ margin-bottom: 0px; } }
.onboardingMessage .onboardingButton {
background-color: rgba(12, 12, 13, 0.1);
border: none;
width: 150px;
height: 30px;
margin-bottom: 23px;
padding: 4px 0 6px 0;
font-size: 15px; }
@media (max-width: 850px) {
.onboardingMessage .onboardingButton {
float: right;
margin-top: -60px;
margin-right: -10px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingButton {
+ float: none;
+ margin-top: 30px; } }
.onboardingMessage::before {
content: '';
height: 220px;
width: 1px;
position: absolute;
background-color: #D8D8D8;
margin-top: 40px;
margin-left: 215px; }
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -29,30 +29,30 @@
],
"sourcesContent": [
"/* This is the linux variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n offset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 200ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n offset-inline-end: auto;\n offset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n offset-inline-end: 0;\n offset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-icon-color: $grey-90-40;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-icon-color: $grey-10-60;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://browser/skin/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
- ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 12001;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
+ ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
".as-error-fallback {\n align-items: center;\n border-radius: $border-radius;\n box-shadow: inset $inner-box-shadow;\n color: var(--newtab-text-conditional-color);\n display: flex;\n flex-direction: column;\n font-size: $error-fallback-font-size;\n justify-content: center;\n justify-items: center;\n line-height: $error-fallback-line-height;\n\n a {\n color: var(--newtab-text-conditional-color);\n text-decoration: underline;\n }\n}\n",
"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n // Take back the margin from the bottom row of vertical spacing as well as the\n // extra whitespace below the title text as it's vertically centered.\n margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n list-style: none;\n margin: 0 (-$half-base-gutter);\n padding: 0;\n\n // Two columns\n @media (max-width: $break-point-small) {\n :nth-child(2n+1) {\n @include context-menu-open-middle;\n }\n\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n // Three columns\n @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n :nth-child(3n+2),\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n // Four columns\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(4n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n :nth-child(4n+3) {\n @include context-menu-open-left;\n }\n }\n\n // Six columns\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(6n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n :nth-child(6n+5) {\n @include context-menu-open-left;\n }\n }\n\n // Eight columns\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(8n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n :nth-child(8n+7) {\n @include context-menu-open-left;\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n\n li {\n margin: 0 0 $top-sites-vertical-space;\n }\n\n &:not(.dnd-active) {\n .top-site-outer:-moz-any(.active, :focus, :hover) {\n .tile {\n @include fade-in;\n }\n\n @include context-menu-button-hover;\n }\n }\n}\n\n// container for drop zone\n.top-site-outer {\n padding: 0 $half-base-gutter;\n display: inline-block;\n\n // container for context menu\n .top-site-inner {\n position: relative;\n\n > a {\n color: inherit;\n display: block;\n outline: none;\n\n &:-moz-any(.active, :focus) {\n .tile {\n @include fade-in;\n }\n }\n }\n }\n\n @include context-menu-button;\n\n .tile { // sass-lint:disable-block property-sort-order\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n height: $top-sites-size;\n position: relative;\n width: $top-sites-size;\n\n // For letter fallback\n align-items: center;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 32px;\n font-weight: 200;\n justify-content: center;\n text-transform: uppercase;\n\n &::before {\n content: attr(data-fallback);\n }\n }\n\n .screenshot {\n background-color: $white;\n background-position: top left;\n background-size: $screenshot-size;\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 1s;\n width: 100%;\n\n &.active {\n opacity: 1;\n }\n }\n\n // Some common styles for all icons (rich and default) in top sites\n .top-site-icon {\n background-color: var(--newtab-topsites-background-color);\n background-position: center center;\n background-repeat: no-repeat;\n border-radius: $top-sites-border-radius;\n box-shadow: var(--newtab-topsites-icon-shadow);\n position: absolute;\n }\n\n .rich-icon {\n background-size: cover;\n height: 100%;\n offset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon { // sass-lint:disable block property-sort-order\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n offset-inline-end: -$default-icon-offset;\n width: $default-icon-wrapper-size;\n\n // for corner letter fallback\n align-items: center;\n display: flex;\n font-size: 20px;\n justify-content: center;\n\n &[data-fallback]::before {\n content: attr(data-fallback);\n }\n }\n\n .title {\n color: var(--newtab-topsites-label-color);\n font: message-box;\n height: $top-sites-title-height;\n line-height: $top-sites-title-height;\n text-align: center;\n width: $top-sites-size;\n position: relative;\n\n .icon {\n fill: var(--newtab-icon-tertiary-color);\n offset-inline-start: 0;\n position: absolute;\n top: 10px;\n }\n\n span {\n height: $top-sites-title-height;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.pinned {\n span {\n padding: 0 13px;\n }\n }\n }\n\n .edit-button {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.placeholder {\n .tile {\n box-shadow: inset $inner-box-shadow;\n }\n\n .screenshot {\n display: none;\n }\n }\n\n &.dragged {\n .tile {\n background: $grey-20;\n box-shadow: none;\n\n *,\n &::before {\n display: none;\n }\n }\n\n .title {\n visibility: hidden;\n }\n }\n}\n\n.edit-topsites-wrapper {\n .modal {\n box-shadow: $shadow-secondary;\n left: 0;\n margin: 0 auto;\n position: fixed;\n right: 0;\n top: 40px;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n }\n}\n\n.topsite-form {\n $form-width: 300px;\n $form-spacing: 32px;\n\n .form-input-container {\n max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n margin: 0 auto;\n padding: $form-spacing;\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\n pointer-events: none;\n }\n\n .section-title {\n text-transform: none;\n font-size: 16px;\n margin: 0 0 16px;\n }\n }\n\n .fields-and-preview {\n display: flex;\n }\n\n label {\n font-size: $section-title-font-size;\n }\n\n .form-wrapper {\n width: 100%;\n\n .field {\n position: relative;\n\n .icon-clear-input {\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n }\n\n .url {\n input:dir(ltr) {\n padding-right: 32px;\n }\n\n input:dir(rtl) {\n padding-left: 32px;\n\n &:not(:placeholder-shown) {\n direction: ltr;\n text-align: right;\n }\n }\n }\n\n .enable-custom-image-input {\n display: inline-block;\n font-size: 13px;\n margin-top: 4px;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .custom-image-input-container {\n margin-top: 4px;\n\n .loading-container {\n width: 16px;\n height: 16px;\n overflow: hidden;\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n\n // This animation is derived from Firefox's tab loading animation\n // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n .loading-animation {\n @keyframes tab-throbber-animation {\n 100% { transform: translateX(-960px); }\n }\n\n @keyframes tab-throbber-animation-rtl {\n 100% { transform: translateX(960px); }\n }\n\n width: 960px;\n height: 16px;\n -moz-context-properties: fill;\n fill: $blue-50;\n background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n &:dir(rtl) {\n animation-name: tab-throbber-animation-rtl;\n }\n }\n }\n\n input {\n &[type='text'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n margin: 8px 0;\n padding: 0 8px;\n height: 32px;\n width: 100%;\n font-size: 15px;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n &[disabled] {\n border: $input-border;\n box-shadow: none;\n opacity: 0.4;\n }\n }\n }\n\n .invalid {\n input {\n &[type='text'] {\n border: $input-error-border;\n box-shadow: $input-error-boxshadow;\n }\n }\n }\n\n .error-tooltip {\n animation: fade-up-tt 450ms;\n background: $red-60;\n border-radius: 2px;\n color: $white;\n offset-inline-start: 3px;\n padding: 5px 12px;\n position: absolute;\n top: 44px;\n z-index: 1;\n\n // tooltip caret\n &::before {\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n offset-inline-start: 12px;\n position: absolute;\n text-indent: -999px;\n top: -7px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n }\n }\n\n .actions {\n justify-content: flex-end;\n\n button {\n margin-inline-start: 10px;\n margin-inline-end: 0;\n }\n }\n\n @media (max-width: $break-point-small) {\n .fields-and-preview {\n flex-direction: column;\n\n .top-site-outer {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n 0% {\n opacity: 0;\n transform: translateY(15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n",
".sections-list {\n .section-list {\n display: grid;\n grid-gap: $base-gutter;\n grid-template-columns: repeat(auto-fit, $card-width);\n margin: 0;\n\n @media (max-width: $break-point-medium) {\n @include context-menu-open-left;\n }\n\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n }\n\n .section-empty-state {\n border: $border-secondary;\n border-radius: $border-radius;\n display: flex;\n height: $card-height;\n width: 100%;\n\n .empty-state {\n margin: auto;\n max-width: 350px;\n\n .empty-state-icon {\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50px 50px;\n -moz-context-properties: fill;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n height: 50px;\n margin: 0 auto;\n width: 50px;\n }\n\n .empty-state-message {\n color: var(--newtab-text-primary-color);\n font-size: 13px;\n margin-bottom: 0;\n text-align: center;\n }\n }\n\n @media (min-width: $break-point-widest) {\n height: $card-height-large;\n }\n }\n}\n\n@media (min-width: $break-point-widest) {\n .sections-list {\n // Compact cards stay the same size but normal cards get bigger.\n .normal-cards {\n .section-list {\n grid-template-columns: repeat(auto-fit, $card-width-large);\n }\n }\n }\n}\n",
- ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: fixed;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n font-weight: 200;\n transition: opacity 0.4s;\n opacity: 0;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n\n &:hover {\n border-color: $grey-90;\n }\n }\n\n .form-header {\n font-size: 18px;\n margin: 15px auto;\n }\n\n .form-header span {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n border-radius: 2px;\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 1px solid $blue-60;\n color: $white;\n background-color: $blue-50;\n transition-duration: 150ms;\n transition-property: background-color;\n\n &:not([disabled]):active {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 40px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n font-weight: 200;\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
+ ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: absolute;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n transition: opacity 0.4s;\n opacity: 0;\n overflow-x: auto;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n\n @media screen and (max-width: 790px) {\n float: none;\n margin: auto;\n top: 190px;\n margin-bottom: 100px;\n }\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n position: fixed;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n transition: border-color 150ms, box-shadow 150ms;\n\n &:hover {\n border-color: $grey-90;\n }\n\n &:focus {\n border-color: $blue-50;\n box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3);\n }\n }\n\n .form-header {\n font-size: 22px;\n margin: 15px auto;\n }\n\n .form-header .sub-header {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 0;\n border-radius: 4px;\n color: $white;\n background-color: $blue-60;\n transition: background-color 150ms;\n\n &:not([disabled]):active,\n &:not([disabled]):hover {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 35px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n border-radius: 2px;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n\n @media screen and (max-width: 825px) {\n width: 400px;\n }\n\n @media screen and (max-width: 790px) {\n margin: auto;\n float: none;\n width: 352px;\n text-align: center;\n }\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n\n @media screen and (max-width: 790px) {\n background: url('chrome://branding/content/about-logo.png') top center no-repeat;\n background-size: 90px 90px;\n }\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n\n @media screen and (max-width: 825px) {\n width: 784px;\n }\n\n @media screen and (max-width: 790px) {\n width: auto;\n height: 100%;\n }\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
".topic {\n color: var(--newtab-section-navigation-text-color);\n font-size: 12px;\n line-height: 1.6;\n margin-top: $topic-margin-top;\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n @media (min-width: $break-point-large) {\n display: inline;\n padding-inline-start: 12px;\n }\n }\n\n\n ul li {\n display: inline-block;\n\n &::after {\n content: '•';\n padding: 8px;\n }\n\n &:last-child::after {\n content: none;\n }\n }\n\n .topic-link {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n }\n\n .topic-read-more {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n }\n\n // This is a clearfix to for the topics-read-more link which is floating and causes\n // some jank when we set overflow:hidden for the animation.\n &::after {\n clear: both;\n content: '';\n display: table;\n }\n}\n",
".search-wrapper {\n $search-height: 35px;\n $search-icon-size: 18px;\n $search-icon-padding: 8px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n $search-input-left-label-width: 35px;\n $search-button-width: 36px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n cursor: default;\n display: flex;\n height: $search-height;\n margin-bottom: $section-spacing;\n position: relative;\n width: 100%;\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n border: solid 1px var(--newtab-search-border-color);\n box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n font-size: 15px;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n padding: 0;\n padding-inline-end: $search-button-width;\n padding-inline-start: $search-icon-width;\n width: 100%;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\n\n &:hover input {\n box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n }\n\n &:active input,\n input:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n .search-button {\n background: $glyph-forward no-repeat center center;\n background-size: 16px 16px;\n border: 0;\n border-radius: 0 $border-radius $border-radius 0;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n height: 100%;\n offset-inline-end: 0;\n position: absolute;\n width: $search-button-width;\n\n &:focus,\n &:hover {\n background-color: $grey-90-10;\n cursor: pointer;\n }\n\n &:active {\n background-color: $grey-90-20;\n }\n\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n }\n}\n\n@at-root {\n // Adjust the style of the contentSearchUI-generated table\n .contentSearchSuggestionTable {\n background-color: var(--newtab-search-dropdown-color);\n border: 0;\n box-shadow: $context-menu-shadow;\n transform: translateY($textbox-shadow-size);\n\n .contentSearchHeader {\n background-color: var(--newtab-search-dropdown-header-color);\n color: var(--newtab-text-secondary-color);\n }\n\n .contentSearchHeader,\n .contentSearchSettingsButton {\n border-color: var(--newtab-border-secondary-color);\n }\n\n .contentSearchSuggestionsList {\n border: 0;\n }\n\n .contentSearchOneOffsTable {\n background-color: var(--newtab-search-dropdown-header-color);\n border-top: solid 1px var(--newtab-border-secondary-color);\n }\n\n .contentSearchSearchWithHeaderSearchText {\n color: var(--newtab-text-primary-color);\n }\n\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-color);\n }\n\n .contentSearchSuggestionRow {\n &.selected {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n .historyIcon {\n fill: var(--newtab-icon-secondary-color);\n }\n }\n }\n\n .contentSearchOneOffsTable {\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-header-color);\n }\n }\n\n .contentSearchOneOffItem {\n // Make the border slightly shorter by offsetting from the top and bottom\n $border-offset: 18%;\n\n background-image: none;\n border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n border-inline-end: 1px solid;\n position: relative;\n\n &.selected {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n }\n\n .contentSearchSettingsButton {\n &:hover {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n }\n }\n }\n}\n",
".context-menu {\n background: var(--newtab-contextmenu-background-color);\n border-radius: $context-menu-border-radius;\n box-shadow: $context-menu-shadow;\n display: block;\n font-size: $context-menu-font-size;\n margin-inline-start: 5px;\n offset-inline-start: 100%;\n position: absolute;\n top: ($context-menu-button-size / 4);\n z-index: 10000;\n\n > ul {\n list-style: none;\n margin: 0;\n padding: $context-menu-outer-padding 0;\n\n > li {\n margin: 0;\n width: 100%;\n\n &.separator {\n border-bottom: $border-secondary;\n margin: $context-menu-outer-padding 0;\n }\n\n > a {\n align-items: center;\n color: inherit;\n cursor: pointer;\n display: flex;\n line-height: 16px;\n outline: none;\n padding: $context-menu-item-padding;\n white-space: nowrap;\n\n &:-moz-any(:focus, :hover) {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n &.disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n }\n }\n }\n}\n",
".confirmation-dialog {\n .modal {\n box-shadow: 0 2px 2px 0 $black-10;\n left: 50%;\n margin-left: -200px;\n position: fixed;\n top: 20%;\n width: 400px;\n }\n\n section {\n margin: 0;\n }\n\n .modal-message {\n display: flex;\n padding: 16px;\n padding-bottom: 0;\n\n p {\n margin: 0;\n margin-bottom: 16px;\n }\n }\n\n .actions {\n border: 0;\n display: flex;\n flex-wrap: nowrap;\n padding: 0 16px;\n\n button {\n margin-inline-end: 16px;\n padding-inline-end: 18px;\n padding-inline-start: 18px;\n white-space: normal;\n width: 50%;\n\n &.done {\n margin-inline-end: 0;\n margin-inline-start: 0;\n }\n }\n }\n\n .icon {\n margin-inline-end: 16px;\n }\n}\n\n.modal-overlay {\n background: var(--newtab-overlay-color);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 11001;\n}\n\n.modal {\n background: var(--newtab-modal-color);\n border: $border-secondary;\n border-radius: 5px;\n font-size: 15px;\n z-index: 11002;\n}\n",
".card-outer {\n @include context-menu-button;\n background: var(--newtab-card-background-color);\n border-radius: $border-radius;\n display: inline-block;\n height: $card-height;\n margin-inline-end: $base-gutter;\n position: relative;\n width: 100%;\n\n &.placeholder {\n background: transparent;\n\n .card {\n box-shadow: inset $inner-box-shadow;\n }\n\n .card-preview-image-outer,\n .card-context {\n display: none;\n }\n }\n\n .card {\n border-radius: $border-radius;\n box-shadow: var(--newtab-card-shadow);\n height: 100%;\n }\n\n > a {\n color: inherit;\n display: block;\n height: 100%;\n outline: none;\n position: absolute;\n width: 100%;\n\n &:-moz-any(.active, :focus) {\n .card {\n @include fade-in-card;\n }\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n }\n }\n\n &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n @include fade-in-card;\n @include context-menu-button-hover;\n outline: none;\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n\n .alternate ~ .card-host-name {\n display: none;\n }\n\n .card-host-name.alternate {\n display: block;\n }\n }\n\n .card-preview-image-outer {\n background-color: $grey-30;\n border-radius: $border-radius $border-radius 0 0;\n height: $card-preview-image-height;\n overflow: hidden;\n position: relative;\n\n &::after {\n border-bottom: 1px solid var(--newtab-card-hairline-color);\n bottom: 0;\n content: '';\n position: absolute;\n width: 100%;\n }\n\n .card-preview-image {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n height: 100%;\n opacity: 0;\n transition: opacity 1s $photon-easing;\n width: 100%;\n\n &.loaded {\n opacity: 1;\n }\n }\n }\n\n .card-details {\n padding: 15px 16px 12px;\n }\n\n .card-text {\n max-height: 4 * $card-text-line-height + $card-title-margin;\n overflow: hidden;\n\n &.no-host-name,\n &.no-context {\n max-height: 5 * $card-text-line-height + $card-title-margin;\n }\n\n &.no-host-name.no-context {\n max-height: 6 * $card-text-line-height + $card-title-margin;\n }\n\n &:not(.no-description) .card-title {\n max-height: 3 * $card-text-line-height;\n overflow: hidden;\n }\n }\n\n .card-host-name {\n color: var(--newtab-text-secondary-color);\n font-size: 10px;\n overflow: hidden;\n padding-bottom: 4px;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n .card-host-name.alternate { display: none; }\n\n .card-title {\n font-size: 14px;\n font-weight: 600;\n line-height: $card-text-line-height;\n margin: 0 0 $card-title-margin;\n word-wrap: break-word;\n }\n\n .card-description {\n font-size: 12px;\n line-height: $card-text-line-height;\n margin: 0;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .card-context {\n bottom: 0;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 11px;\n offset-inline-start: 0;\n padding: 9px 16px 9px 14px;\n position: absolute;\n }\n\n .card-context-icon {\n fill: var(--newtab-text-secondary-color);\n height: 22px;\n margin-inline-end: 6px;\n }\n\n .card-context-label {\n flex-grow: 1;\n line-height: 22px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.normal-cards {\n .card-outer {\n // Wide layout styles\n @media (min-width: $break-point-widest) {\n $line-height: 23px;\n height: $card-height-large;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-large;\n }\n\n .card-details {\n padding: 13px 16px 12px;\n }\n\n .card-text {\n max-height: 6 * $line-height + $card-title-margin;\n }\n\n .card-host-name {\n font-size: 12px;\n padding-bottom: 5px;\n }\n\n .card-title {\n font-size: 17px;\n line-height: $line-height;\n margin-bottom: 0;\n }\n\n .card-text:not(.no-description) {\n .card-title {\n max-height: 3 * $line-height;\n }\n }\n\n .card-description {\n font-size: 15px;\n line-height: $line-height;\n }\n\n .card-context {\n bottom: 4px;\n font-size: 14px;\n }\n }\n }\n}\n\n.compact-cards {\n $card-detail-vertical-spacing: 12px;\n $card-title-font-size: 12px;\n\n .card-outer {\n height: $card-height-compact;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-compact;\n }\n\n .card-details {\n padding: $card-detail-vertical-spacing 16px;\n }\n\n .card-host-name {\n line-height: 10px;\n }\n\n .card-text {\n .card-title,\n &:not(.no-description) .card-title {\n font-size: $card-title-font-size;\n line-height: $card-title-font-size + 1;\n max-height: $card-title-font-size + 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .card-description {\n display: none;\n }\n\n .card-context {\n $icon-size: 16px;\n $container-size: 32px;\n background-color: var(--newtab-card-background-color);\n border-radius: $container-size / 2;\n clip-path: inset(-1px -1px $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n height: $container-size;\n width: $container-size;\n padding: ($container-size - $icon-size) / 2;\n top: $card-preview-image-height-compact - $icon-size;\n offset-inline-end: 12px;\n offset-inline-start: auto;\n\n &::after {\n border: 1px solid var(--newtab-card-hairline-color);\n border-bottom: 0;\n border-radius: ($container-size / 2) + 1 ($container-size / 2) + 1 0 0;\n content: '';\n position: absolute;\n height: ($container-size + 2) / 2;\n width: $container-size + 2;\n top: -1px;\n left: -1px;\n }\n\n .card-context-icon {\n margin-inline-end: 0;\n height: $icon-size;\n width: $icon-size;\n\n &.icon-bookmark-added {\n fill: $bookmark-icon-fill;\n }\n\n &.icon-download {\n fill: $download-icon-fill;\n }\n\n &.icon-pocket {\n fill: $pocket-icon-fill;\n }\n }\n\n .card-context-label {\n display: none;\n }\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n}\n",
".manual-migration-container {\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n line-height: 15px;\n margin-bottom: $section-spacing;\n text-align: center;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n text-align: left;\n }\n\n p {\n margin: 0;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: flex;\n justify-content: space-between;\n }\n }\n\n .icon {\n display: none;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n margin-inline-end: 6px;\n }\n }\n}\n\n.manual-migration-actions {\n border: 0;\n display: block;\n flex-wrap: nowrap;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n padding: 0;\n }\n\n button {\n align-self: center;\n height: 26px;\n margin: 0;\n margin-inline-start: 20px;\n padding: 0 12px;\n }\n}\n",
".collapsible-section {\n padding: $section-vertical-padding $section-horizontal-padding;\n transition-delay: 100ms;\n transition-duration: 100ms;\n transition-property: background-color;\n\n .section-title {\n font-size: $section-title-font-size;\n font-weight: bold;\n margin: 0;\n text-transform: uppercase;\n\n span {\n color: var(--newtab-section-header-text-color);\n display: inline-block;\n fill: var(--newtab-section-header-text-color);\n vertical-align: middle;\n }\n\n .click-target {\n cursor: pointer;\n vertical-align: top;\n white-space: nowrap;\n }\n\n .collapsible-arrow {\n margin-inline-start: 8px;\n margin-top: -1px;\n }\n }\n\n .section-top-bar {\n height: 19px;\n margin-bottom: 13px;\n position: relative;\n\n .context-menu-button {\n background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-section-header-text-color);\n height: 100%;\n offset-inline-end: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition-duration: 200ms;\n transition-property: opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus, :hover) {\n fill: $grey-90;\n opacity: 1;\n }\n }\n\n .context-menu {\n top: 16px;\n }\n\n @media (max-width: $break-point-widest + $card-width * 1.5) {\n @include context-menu-open-left;\n }\n }\n\n &:hover,\n &.active {\n .section-top-bar {\n .context-menu-button {\n opacity: 1;\n }\n }\n }\n\n &.active {\n background: var(--newtab-element-hover-color);\n border-radius: 4px;\n\n .section-top-bar {\n .context-menu-button {\n fill: var(--newtab-section-active-contextmenu-color);\n }\n }\n }\n\n .section-disclaimer {\n $max-button-width: 130px;\n $min-button-height: 26px;\n\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n margin-bottom: 16px;\n position: relative;\n\n .section-disclaimer-text {\n display: inline-block;\n min-height: $min-button-height;\n width: calc(100% - #{$max-button-width});\n\n @media (max-width: $break-point-medium) {\n width: $card-width;\n }\n }\n\n a {\n color: var(--newtab-link-primary-color);\n font-weight: bold;\n padding-left: 3px;\n }\n\n button {\n background: var(--newtab-button-secondary-color);\n border: 1px solid $grey-40;\n border-radius: 4px;\n cursor: pointer;\n margin-top: 2px;\n max-width: $max-button-width;\n min-height: $min-button-height;\n offset-inline-end: 0;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n @media (min-width: $break-point-small) {\n position: absolute;\n }\n }\n }\n\n .section-body-fallback {\n height: $card-height;\n }\n\n .section-body {\n // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n $horizontal-padding: 7px;\n margin: 0 (-$horizontal-padding);\n padding: 0 $horizontal-padding;\n\n &.animating {\n overflow: hidden;\n pointer-events: none;\n }\n }\n\n &.animation-enabled {\n .section-title {\n .collapsible-arrow {\n transition: transform 0.5s $photon-easing;\n }\n }\n\n .section-body {\n transition: max-height 0.5s $photon-easing;\n }\n }\n\n &.collapsed {\n .section-body {\n max-height: 0;\n overflow: hidden;\n }\n }\n}\n",
"\n.asrouter-admin {\n $border-color: var(--newtab-border-secondary-color);\n $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n max-width: 996px;\n margin: 0 auto;\n font-size: 14px;\n // Reset .outer-wrapper styles\n display: inherit;\n padding: 0 0 92px;\n\n h1 {\n font-weight: 200;\n font-size: 32px;\n }\n\n table {\n border-collapse: collapse;\n width: 100%;\n }\n\n .message-item {\n &:first-child td {\n border-top: 1px solid $border-color;\n }\n\n td {\n vertical-align: top;\n border-bottom: 1px solid $border-color;\n padding: 8px;\n\n &:first-child {\n border-left: 1px solid $border-color;\n }\n\n &:last-child {\n border-right: 1px solid $border-color;\n }\n }\n\n &.current {\n .message-id span {\n background: $yellow-50;\n padding: 2px 5px;\n\n .dark-theme & {\n color: $black;\n }\n }\n }\n\n &.blocked {\n .message-id,\n .message-summary {\n opacity: 0.5;\n }\n\n .message-id {\n opacity: 0.5;\n }\n }\n\n .message-id {\n font-family: $monospace;\n font-size: 12px;\n }\n }\n\n pre {\n background: var(--newtab-textbox-background-color);\n margin: 0;\n padding: 8px;\n font-size: 12px;\n max-width: 750px;\n overflow: auto;\n font-family: $monospace;\n }\n}\n",
".ASRouterButton {\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n .tall & {\n margin-inline-start: 20px;\n }\n}\n",
".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n offset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n offset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n}\n",
- ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 100000;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 100001;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
+ ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterAnchor {\n color: inherit;\n text-decoration: underline;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n margin-top: 30px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": "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"
}
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css
@@ -371,17 +371,17 @@ main {
background-color: transparent;
border: 0;
cursor: pointer;
fill: var(--newtab-icon-primary-color);
offset-inline-end: 15px;
padding: 15px;
position: fixed;
top: 15px;
- z-index: 12001; }
+ z-index: 1000; }
.prefs-button button:hover, .prefs-button button:focus {
background-color: var(--newtab-element-hover-color); }
.prefs-button button:active {
background-color: var(--newtab-element-active-color); }
.as-error-fallback {
align-items: center;
border-radius: 3px;
@@ -808,32 +808,38 @@ main {
.activity-stream.welcome {
overflow: hidden; }
.activity-stream:not(.welcome) .overlay-wrapper {
display: none; }
.overlay-wrapper {
- position: fixed;
+ position: absolute;
top: 0;
width: 100vw;
height: 100vh;
z-index: 21000;
- font-weight: 200;
transition: opacity 0.4s;
- opacity: 0; }
+ opacity: 0;
+ overflow-x: auto; }
.overlay-wrapper.show {
transition: none;
opacity: 1; }
.overlay-wrapper.show .firstrun-sign-in {
transition: opacity 1.5s, transform 1.5s;
transition-delay: 0.2s;
transform: translateY(-50%) scale(1);
opacity: 1; }
+ @media screen and (max-width: 790px) {
+ .overlay-wrapper.show .firstrun-sign-in {
+ float: none;
+ margin: auto;
+ top: 190px;
+ margin-bottom: 100px; } }
.overlay-wrapper.show .firstrun-firefox-logo {
transition: opacity 2.3s;
opacity: 1; }
.overlay-wrapper.show .firstrun-title,
.overlay-wrapper.show .firstrun-content,
.overlay-wrapper.show .firstrun-link {
transition: transform 0.5s, opacity 0.8s;
transform: translateY(0);
@@ -848,17 +854,18 @@ main {
transition: none;
opacity: 1; }
.background {
width: 100%;
height: 100%;
display: block;
background: url("../data/content/assets/fox-tail.png") top -200px center no-repeat, linear-gradient(to bottom, #003EAA 40%, #004EC2 60%, #0060DF 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat, #003EAA;
- background-size: cover; }
+ background-size: cover;
+ position: fixed; }
.firstrun-sign-in {
transform: translateY(-50%) scale(0.8);
position: relative;
top: 50%;
width: 358px;
opacity: 0;
background-color: #FFF;
@@ -884,51 +891,55 @@ main {
box-shadow: none;
margin: auto;
width: 244px;
display: block;
height: 40px;
padding-inline-start: 20px;
border: 1px solid #737373;
border-radius: 2px;
- font-size: 16px; }
+ font-size: 16px;
+ transition: border-color 150ms, box-shadow 150ms; }
.firstrun-sign-in .email-input:hover {
border-color: #0C0C0D; }
+ .firstrun-sign-in .email-input:focus {
+ border-color: #0A84FF;
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3); }
.firstrun-sign-in .form-header {
- font-size: 18px;
+ font-size: 22px;
margin: 15px auto; }
- .firstrun-sign-in .form-header span {
+ .firstrun-sign-in .form-header .sub-header {
font-size: 14px;
margin-top: 4px;
display: block; }
.firstrun-sign-in button {
- border-radius: 2px;
display: block;
cursor: pointer;
margin: 10px auto 0; }
.firstrun-sign-in .continue-button {
font-size: 18px;
height: 43px;
width: 250px;
padding: 8px 0;
- border: 1px solid #0060DF;
+ border: 0;
+ border-radius: 4px;
color: #FFF;
- background-color: #0A84FF;
- transition-duration: 150ms;
- transition-property: background-color; }
- .firstrun-sign-in .continue-button:not([disabled]):active {
+ background-color: #0060DF;
+ transition: background-color 150ms; }
+ .firstrun-sign-in .continue-button:not([disabled]):active, .firstrun-sign-in .continue-button:not([disabled]):hover {
background: #003EAA;
border-color: #002275; }
.firstrun-sign-in .skip-button {
font-size: 13px;
- margin-top: 40px;
+ margin-top: 35px;
margin-bottom: 20px;
background-color: #FCFCFC;
color: #0A84FF;
border: 1px solid #0A84FF;
+ border-radius: 2px;
min-height: 24px;
padding: 5px 10px;
transition: background-color 150ms, color 150ms, border-color 150ms; }
.firstrun-sign-in .skip-button[disabled] {
background-color: #EBEBEB;
border-color: #B1B1B1;
color: #6A6A6A;
cursor: default;
@@ -938,16 +949,25 @@ main {
border-color: #0060DF;
color: #FFF; }
.firstrun-left-divider {
position: relative;
float: inline-start;
clear: both;
width: 435px; }
+ @media screen and (max-width: 825px) {
+ .firstrun-left-divider {
+ width: 400px; } }
+ @media screen and (max-width: 790px) {
+ .firstrun-left-divider {
+ margin: auto;
+ float: none;
+ width: 352px;
+ text-align: center; } }
.firstrun-content {
line-height: 1.5;
margin-bottom: 48px;
max-width: 352px;
background: url("../data/content/assets/sync-devices.svg") bottom center no-repeat;
padding-bottom: 210px; }
@@ -957,18 +977,21 @@ main {
text-decoration: underline; }
.firstrun-link:hover, .firstrun-link:active, .firstrun-link:focus {
color: #FFF; }
.firstrun-title {
background: url("chrome://branding/content/about-logo.png") top left no-repeat;
background-size: 90px 90px;
margin: 40px 0 10px;
- padding-top: 110px;
- font-weight: 200; }
+ padding-top: 110px; }
+ @media screen and (max-width: 790px) {
+ .firstrun-title {
+ background: url("chrome://branding/content/about-logo.png") top center no-repeat;
+ background-size: 90px 90px; } }
[dir='rtl'] .firstrun-title {
background-position: top right; }
.fxaccounts-container {
position: absolute;
bottom: 0;
right: 0;
@@ -976,16 +999,23 @@ main {
left: 0;
color: #FFF;
height: 515px;
margin: auto;
width: 819px;
z-index: 10;
transition: opacity 0.3s;
opacity: 0; }
+ @media screen and (max-width: 825px) {
+ .fxaccounts-container {
+ width: 784px; } }
+ @media screen and (max-width: 790px) {
+ .fxaccounts-container {
+ width: auto;
+ height: 100%; } }
.firstrun-title,
.firstrun-content,
.firstrun-link {
opacity: 0;
transform: translateY(-5px); }
.topic {
@@ -1693,42 +1723,45 @@ main {
.modalOverlayOuter {
background: #FFF;
opacity: 0.93;
height: 100%;
position: fixed;
top: 0;
width: 100%;
display: none;
- z-index: 100000; }
+ z-index: 1100; }
.modalOverlayOuter.active {
display: block; }
.modalOverlayInner {
width: 960px;
height: 510px;
position: fixed;
top: calc(50% - 255px);
left: calc(50% - 480px);
background: #FFF;
box-shadow: 0 1px 15px 0 rgba(0, 0, 0, 0.3);
border-radius: 4px;
display: none;
- z-index: 100001; }
+ z-index: 1101; }
@media (max-width: 960px) {
.modalOverlayInner {
width: 100%;
height: 100%;
top: 0;
left: 0;
box-shadow: none;
border-radius: 0; } }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner {
overflow-y: scroll; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner {
+ overflow-y: scroll; } }
.modalOverlayInner.active {
display: block; }
.modalOverlayInner h2 {
color: #4A4A4F;
text-align: center;
font-weight: 200;
margin-top: 30px;
font-size: 28px;
@@ -1746,16 +1779,19 @@ main {
width: 100%;
position: absolute;
bottom: 0;
text-align: center;
background-color: #FFF; }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner .footer {
position: sticky; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner .footer {
+ position: sticky; } }
.modalOverlayInner .footer .modalButton {
margin-top: 20px;
width: 150px;
height: 30px;
padding: 4px 0 6px 0;
font-size: 15px; }
.SimpleSnippet.tall {
@@ -1827,16 +1863,19 @@ main {
.onboardingMessage .onboardingContent > span > h3 {
margin-top: 0;
margin-bottom: 4px;
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
margin-top: 0;
line-height: 22px;
font-size: 15px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage {
+ height: 250px; } }
.onboardingMessage .onboardingMessageImage {
height: 100px;
width: 120px;
background-size: 120px;
background-position: center center;
background-repeat: no-repeat;
display: inline-block;
vertical-align: middle; }
@@ -1861,29 +1900,36 @@ main {
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
color: #4A4A4F;
margin-top: 0;
height: 130px;
margin-bottom: 12px;
font-size: 15px;
line-height: 22px; }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingContent > span > p {
+ margin-bottom: 0px; } }
.onboardingMessage .onboardingButton {
background-color: rgba(12, 12, 13, 0.1);
border: none;
width: 150px;
height: 30px;
margin-bottom: 23px;
padding: 4px 0 6px 0;
font-size: 15px; }
@media (max-width: 850px) {
.onboardingMessage .onboardingButton {
float: right;
margin-top: -60px;
margin-right: -10px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingButton {
+ float: none;
+ margin-top: 30px; } }
.onboardingMessage::before {
content: '';
height: 220px;
width: 1px;
position: absolute;
background-color: #D8D8D8;
margin-top: 40px;
margin-left: 215px; }
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -29,30 +29,30 @@
],
"sourcesContent": [
"/* This is the mac variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 7px;\n$os-infopanel-arrow-width: 18px;\n\n.dark-theme {\n -moz-osx-font-smoothing: grayscale;\n}\n\n@import './activity-stream';\n",
"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n offset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 200ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n offset-inline-end: auto;\n offset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n offset-inline-end: 0;\n offset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-icon-color: $grey-90-40;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-icon-color: $grey-10-60;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://browser/skin/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
- ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 12001;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
+ ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
".as-error-fallback {\n align-items: center;\n border-radius: $border-radius;\n box-shadow: inset $inner-box-shadow;\n color: var(--newtab-text-conditional-color);\n display: flex;\n flex-direction: column;\n font-size: $error-fallback-font-size;\n justify-content: center;\n justify-items: center;\n line-height: $error-fallback-line-height;\n\n a {\n color: var(--newtab-text-conditional-color);\n text-decoration: underline;\n }\n}\n",
"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n // Take back the margin from the bottom row of vertical spacing as well as the\n // extra whitespace below the title text as it's vertically centered.\n margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n list-style: none;\n margin: 0 (-$half-base-gutter);\n padding: 0;\n\n // Two columns\n @media (max-width: $break-point-small) {\n :nth-child(2n+1) {\n @include context-menu-open-middle;\n }\n\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n // Three columns\n @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n :nth-child(3n+2),\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n // Four columns\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(4n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n :nth-child(4n+3) {\n @include context-menu-open-left;\n }\n }\n\n // Six columns\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(6n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n :nth-child(6n+5) {\n @include context-menu-open-left;\n }\n }\n\n // Eight columns\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(8n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n :nth-child(8n+7) {\n @include context-menu-open-left;\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n\n li {\n margin: 0 0 $top-sites-vertical-space;\n }\n\n &:not(.dnd-active) {\n .top-site-outer:-moz-any(.active, :focus, :hover) {\n .tile {\n @include fade-in;\n }\n\n @include context-menu-button-hover;\n }\n }\n}\n\n// container for drop zone\n.top-site-outer {\n padding: 0 $half-base-gutter;\n display: inline-block;\n\n // container for context menu\n .top-site-inner {\n position: relative;\n\n > a {\n color: inherit;\n display: block;\n outline: none;\n\n &:-moz-any(.active, :focus) {\n .tile {\n @include fade-in;\n }\n }\n }\n }\n\n @include context-menu-button;\n\n .tile { // sass-lint:disable-block property-sort-order\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n height: $top-sites-size;\n position: relative;\n width: $top-sites-size;\n\n // For letter fallback\n align-items: center;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 32px;\n font-weight: 200;\n justify-content: center;\n text-transform: uppercase;\n\n &::before {\n content: attr(data-fallback);\n }\n }\n\n .screenshot {\n background-color: $white;\n background-position: top left;\n background-size: $screenshot-size;\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 1s;\n width: 100%;\n\n &.active {\n opacity: 1;\n }\n }\n\n // Some common styles for all icons (rich and default) in top sites\n .top-site-icon {\n background-color: var(--newtab-topsites-background-color);\n background-position: center center;\n background-repeat: no-repeat;\n border-radius: $top-sites-border-radius;\n box-shadow: var(--newtab-topsites-icon-shadow);\n position: absolute;\n }\n\n .rich-icon {\n background-size: cover;\n height: 100%;\n offset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon { // sass-lint:disable block property-sort-order\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n offset-inline-end: -$default-icon-offset;\n width: $default-icon-wrapper-size;\n\n // for corner letter fallback\n align-items: center;\n display: flex;\n font-size: 20px;\n justify-content: center;\n\n &[data-fallback]::before {\n content: attr(data-fallback);\n }\n }\n\n .title {\n color: var(--newtab-topsites-label-color);\n font: message-box;\n height: $top-sites-title-height;\n line-height: $top-sites-title-height;\n text-align: center;\n width: $top-sites-size;\n position: relative;\n\n .icon {\n fill: var(--newtab-icon-tertiary-color);\n offset-inline-start: 0;\n position: absolute;\n top: 10px;\n }\n\n span {\n height: $top-sites-title-height;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.pinned {\n span {\n padding: 0 13px;\n }\n }\n }\n\n .edit-button {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.placeholder {\n .tile {\n box-shadow: inset $inner-box-shadow;\n }\n\n .screenshot {\n display: none;\n }\n }\n\n &.dragged {\n .tile {\n background: $grey-20;\n box-shadow: none;\n\n *,\n &::before {\n display: none;\n }\n }\n\n .title {\n visibility: hidden;\n }\n }\n}\n\n.edit-topsites-wrapper {\n .modal {\n box-shadow: $shadow-secondary;\n left: 0;\n margin: 0 auto;\n position: fixed;\n right: 0;\n top: 40px;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n }\n}\n\n.topsite-form {\n $form-width: 300px;\n $form-spacing: 32px;\n\n .form-input-container {\n max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n margin: 0 auto;\n padding: $form-spacing;\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\n pointer-events: none;\n }\n\n .section-title {\n text-transform: none;\n font-size: 16px;\n margin: 0 0 16px;\n }\n }\n\n .fields-and-preview {\n display: flex;\n }\n\n label {\n font-size: $section-title-font-size;\n }\n\n .form-wrapper {\n width: 100%;\n\n .field {\n position: relative;\n\n .icon-clear-input {\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n }\n\n .url {\n input:dir(ltr) {\n padding-right: 32px;\n }\n\n input:dir(rtl) {\n padding-left: 32px;\n\n &:not(:placeholder-shown) {\n direction: ltr;\n text-align: right;\n }\n }\n }\n\n .enable-custom-image-input {\n display: inline-block;\n font-size: 13px;\n margin-top: 4px;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .custom-image-input-container {\n margin-top: 4px;\n\n .loading-container {\n width: 16px;\n height: 16px;\n overflow: hidden;\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n\n // This animation is derived from Firefox's tab loading animation\n // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n .loading-animation {\n @keyframes tab-throbber-animation {\n 100% { transform: translateX(-960px); }\n }\n\n @keyframes tab-throbber-animation-rtl {\n 100% { transform: translateX(960px); }\n }\n\n width: 960px;\n height: 16px;\n -moz-context-properties: fill;\n fill: $blue-50;\n background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n &:dir(rtl) {\n animation-name: tab-throbber-animation-rtl;\n }\n }\n }\n\n input {\n &[type='text'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n margin: 8px 0;\n padding: 0 8px;\n height: 32px;\n width: 100%;\n font-size: 15px;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n &[disabled] {\n border: $input-border;\n box-shadow: none;\n opacity: 0.4;\n }\n }\n }\n\n .invalid {\n input {\n &[type='text'] {\n border: $input-error-border;\n box-shadow: $input-error-boxshadow;\n }\n }\n }\n\n .error-tooltip {\n animation: fade-up-tt 450ms;\n background: $red-60;\n border-radius: 2px;\n color: $white;\n offset-inline-start: 3px;\n padding: 5px 12px;\n position: absolute;\n top: 44px;\n z-index: 1;\n\n // tooltip caret\n &::before {\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n offset-inline-start: 12px;\n position: absolute;\n text-indent: -999px;\n top: -7px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n }\n }\n\n .actions {\n justify-content: flex-end;\n\n button {\n margin-inline-start: 10px;\n margin-inline-end: 0;\n }\n }\n\n @media (max-width: $break-point-small) {\n .fields-and-preview {\n flex-direction: column;\n\n .top-site-outer {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n 0% {\n opacity: 0;\n transform: translateY(15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n",
".sections-list {\n .section-list {\n display: grid;\n grid-gap: $base-gutter;\n grid-template-columns: repeat(auto-fit, $card-width);\n margin: 0;\n\n @media (max-width: $break-point-medium) {\n @include context-menu-open-left;\n }\n\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n }\n\n .section-empty-state {\n border: $border-secondary;\n border-radius: $border-radius;\n display: flex;\n height: $card-height;\n width: 100%;\n\n .empty-state {\n margin: auto;\n max-width: 350px;\n\n .empty-state-icon {\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50px 50px;\n -moz-context-properties: fill;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n height: 50px;\n margin: 0 auto;\n width: 50px;\n }\n\n .empty-state-message {\n color: var(--newtab-text-primary-color);\n font-size: 13px;\n margin-bottom: 0;\n text-align: center;\n }\n }\n\n @media (min-width: $break-point-widest) {\n height: $card-height-large;\n }\n }\n}\n\n@media (min-width: $break-point-widest) {\n .sections-list {\n // Compact cards stay the same size but normal cards get bigger.\n .normal-cards {\n .section-list {\n grid-template-columns: repeat(auto-fit, $card-width-large);\n }\n }\n }\n}\n",
- ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: fixed;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n font-weight: 200;\n transition: opacity 0.4s;\n opacity: 0;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n\n &:hover {\n border-color: $grey-90;\n }\n }\n\n .form-header {\n font-size: 18px;\n margin: 15px auto;\n }\n\n .form-header span {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n border-radius: 2px;\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 1px solid $blue-60;\n color: $white;\n background-color: $blue-50;\n transition-duration: 150ms;\n transition-property: background-color;\n\n &:not([disabled]):active {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 40px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n font-weight: 200;\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
+ ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: absolute;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n transition: opacity 0.4s;\n opacity: 0;\n overflow-x: auto;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n\n @media screen and (max-width: 790px) {\n float: none;\n margin: auto;\n top: 190px;\n margin-bottom: 100px;\n }\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n position: fixed;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n transition: border-color 150ms, box-shadow 150ms;\n\n &:hover {\n border-color: $grey-90;\n }\n\n &:focus {\n border-color: $blue-50;\n box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3);\n }\n }\n\n .form-header {\n font-size: 22px;\n margin: 15px auto;\n }\n\n .form-header .sub-header {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 0;\n border-radius: 4px;\n color: $white;\n background-color: $blue-60;\n transition: background-color 150ms;\n\n &:not([disabled]):active,\n &:not([disabled]):hover {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 35px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n border-radius: 2px;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n\n @media screen and (max-width: 825px) {\n width: 400px;\n }\n\n @media screen and (max-width: 790px) {\n margin: auto;\n float: none;\n width: 352px;\n text-align: center;\n }\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n\n @media screen and (max-width: 790px) {\n background: url('chrome://branding/content/about-logo.png') top center no-repeat;\n background-size: 90px 90px;\n }\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n\n @media screen and (max-width: 825px) {\n width: 784px;\n }\n\n @media screen and (max-width: 790px) {\n width: auto;\n height: 100%;\n }\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
".topic {\n color: var(--newtab-section-navigation-text-color);\n font-size: 12px;\n line-height: 1.6;\n margin-top: $topic-margin-top;\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n @media (min-width: $break-point-large) {\n display: inline;\n padding-inline-start: 12px;\n }\n }\n\n\n ul li {\n display: inline-block;\n\n &::after {\n content: '•';\n padding: 8px;\n }\n\n &:last-child::after {\n content: none;\n }\n }\n\n .topic-link {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n }\n\n .topic-read-more {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n }\n\n // This is a clearfix to for the topics-read-more link which is floating and causes\n // some jank when we set overflow:hidden for the animation.\n &::after {\n clear: both;\n content: '';\n display: table;\n }\n}\n",
".search-wrapper {\n $search-height: 35px;\n $search-icon-size: 18px;\n $search-icon-padding: 8px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n $search-input-left-label-width: 35px;\n $search-button-width: 36px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n cursor: default;\n display: flex;\n height: $search-height;\n margin-bottom: $section-spacing;\n position: relative;\n width: 100%;\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n border: solid 1px var(--newtab-search-border-color);\n box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n font-size: 15px;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n padding: 0;\n padding-inline-end: $search-button-width;\n padding-inline-start: $search-icon-width;\n width: 100%;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\n\n &:hover input {\n box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n }\n\n &:active input,\n input:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n .search-button {\n background: $glyph-forward no-repeat center center;\n background-size: 16px 16px;\n border: 0;\n border-radius: 0 $border-radius $border-radius 0;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n height: 100%;\n offset-inline-end: 0;\n position: absolute;\n width: $search-button-width;\n\n &:focus,\n &:hover {\n background-color: $grey-90-10;\n cursor: pointer;\n }\n\n &:active {\n background-color: $grey-90-20;\n }\n\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n }\n}\n\n@at-root {\n // Adjust the style of the contentSearchUI-generated table\n .contentSearchSuggestionTable {\n background-color: var(--newtab-search-dropdown-color);\n border: 0;\n box-shadow: $context-menu-shadow;\n transform: translateY($textbox-shadow-size);\n\n .contentSearchHeader {\n background-color: var(--newtab-search-dropdown-header-color);\n color: var(--newtab-text-secondary-color);\n }\n\n .contentSearchHeader,\n .contentSearchSettingsButton {\n border-color: var(--newtab-border-secondary-color);\n }\n\n .contentSearchSuggestionsList {\n border: 0;\n }\n\n .contentSearchOneOffsTable {\n background-color: var(--newtab-search-dropdown-header-color);\n border-top: solid 1px var(--newtab-border-secondary-color);\n }\n\n .contentSearchSearchWithHeaderSearchText {\n color: var(--newtab-text-primary-color);\n }\n\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-color);\n }\n\n .contentSearchSuggestionRow {\n &.selected {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n .historyIcon {\n fill: var(--newtab-icon-secondary-color);\n }\n }\n }\n\n .contentSearchOneOffsTable {\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-header-color);\n }\n }\n\n .contentSearchOneOffItem {\n // Make the border slightly shorter by offsetting from the top and bottom\n $border-offset: 18%;\n\n background-image: none;\n border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n border-inline-end: 1px solid;\n position: relative;\n\n &.selected {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n }\n\n .contentSearchSettingsButton {\n &:hover {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n }\n }\n }\n}\n",
".context-menu {\n background: var(--newtab-contextmenu-background-color);\n border-radius: $context-menu-border-radius;\n box-shadow: $context-menu-shadow;\n display: block;\n font-size: $context-menu-font-size;\n margin-inline-start: 5px;\n offset-inline-start: 100%;\n position: absolute;\n top: ($context-menu-button-size / 4);\n z-index: 10000;\n\n > ul {\n list-style: none;\n margin: 0;\n padding: $context-menu-outer-padding 0;\n\n > li {\n margin: 0;\n width: 100%;\n\n &.separator {\n border-bottom: $border-secondary;\n margin: $context-menu-outer-padding 0;\n }\n\n > a {\n align-items: center;\n color: inherit;\n cursor: pointer;\n display: flex;\n line-height: 16px;\n outline: none;\n padding: $context-menu-item-padding;\n white-space: nowrap;\n\n &:-moz-any(:focus, :hover) {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n &.disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n }\n }\n }\n}\n",
".confirmation-dialog {\n .modal {\n box-shadow: 0 2px 2px 0 $black-10;\n left: 50%;\n margin-left: -200px;\n position: fixed;\n top: 20%;\n width: 400px;\n }\n\n section {\n margin: 0;\n }\n\n .modal-message {\n display: flex;\n padding: 16px;\n padding-bottom: 0;\n\n p {\n margin: 0;\n margin-bottom: 16px;\n }\n }\n\n .actions {\n border: 0;\n display: flex;\n flex-wrap: nowrap;\n padding: 0 16px;\n\n button {\n margin-inline-end: 16px;\n padding-inline-end: 18px;\n padding-inline-start: 18px;\n white-space: normal;\n width: 50%;\n\n &.done {\n margin-inline-end: 0;\n margin-inline-start: 0;\n }\n }\n }\n\n .icon {\n margin-inline-end: 16px;\n }\n}\n\n.modal-overlay {\n background: var(--newtab-overlay-color);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 11001;\n}\n\n.modal {\n background: var(--newtab-modal-color);\n border: $border-secondary;\n border-radius: 5px;\n font-size: 15px;\n z-index: 11002;\n}\n",
".card-outer {\n @include context-menu-button;\n background: var(--newtab-card-background-color);\n border-radius: $border-radius;\n display: inline-block;\n height: $card-height;\n margin-inline-end: $base-gutter;\n position: relative;\n width: 100%;\n\n &.placeholder {\n background: transparent;\n\n .card {\n box-shadow: inset $inner-box-shadow;\n }\n\n .card-preview-image-outer,\n .card-context {\n display: none;\n }\n }\n\n .card {\n border-radius: $border-radius;\n box-shadow: var(--newtab-card-shadow);\n height: 100%;\n }\n\n > a {\n color: inherit;\n display: block;\n height: 100%;\n outline: none;\n position: absolute;\n width: 100%;\n\n &:-moz-any(.active, :focus) {\n .card {\n @include fade-in-card;\n }\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n }\n }\n\n &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n @include fade-in-card;\n @include context-menu-button-hover;\n outline: none;\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n\n .alternate ~ .card-host-name {\n display: none;\n }\n\n .card-host-name.alternate {\n display: block;\n }\n }\n\n .card-preview-image-outer {\n background-color: $grey-30;\n border-radius: $border-radius $border-radius 0 0;\n height: $card-preview-image-height;\n overflow: hidden;\n position: relative;\n\n &::after {\n border-bottom: 1px solid var(--newtab-card-hairline-color);\n bottom: 0;\n content: '';\n position: absolute;\n width: 100%;\n }\n\n .card-preview-image {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n height: 100%;\n opacity: 0;\n transition: opacity 1s $photon-easing;\n width: 100%;\n\n &.loaded {\n opacity: 1;\n }\n }\n }\n\n .card-details {\n padding: 15px 16px 12px;\n }\n\n .card-text {\n max-height: 4 * $card-text-line-height + $card-title-margin;\n overflow: hidden;\n\n &.no-host-name,\n &.no-context {\n max-height: 5 * $card-text-line-height + $card-title-margin;\n }\n\n &.no-host-name.no-context {\n max-height: 6 * $card-text-line-height + $card-title-margin;\n }\n\n &:not(.no-description) .card-title {\n max-height: 3 * $card-text-line-height;\n overflow: hidden;\n }\n }\n\n .card-host-name {\n color: var(--newtab-text-secondary-color);\n font-size: 10px;\n overflow: hidden;\n padding-bottom: 4px;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n .card-host-name.alternate { display: none; }\n\n .card-title {\n font-size: 14px;\n font-weight: 600;\n line-height: $card-text-line-height;\n margin: 0 0 $card-title-margin;\n word-wrap: break-word;\n }\n\n .card-description {\n font-size: 12px;\n line-height: $card-text-line-height;\n margin: 0;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .card-context {\n bottom: 0;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 11px;\n offset-inline-start: 0;\n padding: 9px 16px 9px 14px;\n position: absolute;\n }\n\n .card-context-icon {\n fill: var(--newtab-text-secondary-color);\n height: 22px;\n margin-inline-end: 6px;\n }\n\n .card-context-label {\n flex-grow: 1;\n line-height: 22px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.normal-cards {\n .card-outer {\n // Wide layout styles\n @media (min-width: $break-point-widest) {\n $line-height: 23px;\n height: $card-height-large;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-large;\n }\n\n .card-details {\n padding: 13px 16px 12px;\n }\n\n .card-text {\n max-height: 6 * $line-height + $card-title-margin;\n }\n\n .card-host-name {\n font-size: 12px;\n padding-bottom: 5px;\n }\n\n .card-title {\n font-size: 17px;\n line-height: $line-height;\n margin-bottom: 0;\n }\n\n .card-text:not(.no-description) {\n .card-title {\n max-height: 3 * $line-height;\n }\n }\n\n .card-description {\n font-size: 15px;\n line-height: $line-height;\n }\n\n .card-context {\n bottom: 4px;\n font-size: 14px;\n }\n }\n }\n}\n\n.compact-cards {\n $card-detail-vertical-spacing: 12px;\n $card-title-font-size: 12px;\n\n .card-outer {\n height: $card-height-compact;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-compact;\n }\n\n .card-details {\n padding: $card-detail-vertical-spacing 16px;\n }\n\n .card-host-name {\n line-height: 10px;\n }\n\n .card-text {\n .card-title,\n &:not(.no-description) .card-title {\n font-size: $card-title-font-size;\n line-height: $card-title-font-size + 1;\n max-height: $card-title-font-size + 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .card-description {\n display: none;\n }\n\n .card-context {\n $icon-size: 16px;\n $container-size: 32px;\n background-color: var(--newtab-card-background-color);\n border-radius: $container-size / 2;\n clip-path: inset(-1px -1px $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n height: $container-size;\n width: $container-size;\n padding: ($container-size - $icon-size) / 2;\n top: $card-preview-image-height-compact - $icon-size;\n offset-inline-end: 12px;\n offset-inline-start: auto;\n\n &::after {\n border: 1px solid var(--newtab-card-hairline-color);\n border-bottom: 0;\n border-radius: ($container-size / 2) + 1 ($container-size / 2) + 1 0 0;\n content: '';\n position: absolute;\n height: ($container-size + 2) / 2;\n width: $container-size + 2;\n top: -1px;\n left: -1px;\n }\n\n .card-context-icon {\n margin-inline-end: 0;\n height: $icon-size;\n width: $icon-size;\n\n &.icon-bookmark-added {\n fill: $bookmark-icon-fill;\n }\n\n &.icon-download {\n fill: $download-icon-fill;\n }\n\n &.icon-pocket {\n fill: $pocket-icon-fill;\n }\n }\n\n .card-context-label {\n display: none;\n }\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n}\n",
".manual-migration-container {\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n line-height: 15px;\n margin-bottom: $section-spacing;\n text-align: center;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n text-align: left;\n }\n\n p {\n margin: 0;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: flex;\n justify-content: space-between;\n }\n }\n\n .icon {\n display: none;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n margin-inline-end: 6px;\n }\n }\n}\n\n.manual-migration-actions {\n border: 0;\n display: block;\n flex-wrap: nowrap;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n padding: 0;\n }\n\n button {\n align-self: center;\n height: 26px;\n margin: 0;\n margin-inline-start: 20px;\n padding: 0 12px;\n }\n}\n",
".collapsible-section {\n padding: $section-vertical-padding $section-horizontal-padding;\n transition-delay: 100ms;\n transition-duration: 100ms;\n transition-property: background-color;\n\n .section-title {\n font-size: $section-title-font-size;\n font-weight: bold;\n margin: 0;\n text-transform: uppercase;\n\n span {\n color: var(--newtab-section-header-text-color);\n display: inline-block;\n fill: var(--newtab-section-header-text-color);\n vertical-align: middle;\n }\n\n .click-target {\n cursor: pointer;\n vertical-align: top;\n white-space: nowrap;\n }\n\n .collapsible-arrow {\n margin-inline-start: 8px;\n margin-top: -1px;\n }\n }\n\n .section-top-bar {\n height: 19px;\n margin-bottom: 13px;\n position: relative;\n\n .context-menu-button {\n background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-section-header-text-color);\n height: 100%;\n offset-inline-end: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition-duration: 200ms;\n transition-property: opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus, :hover) {\n fill: $grey-90;\n opacity: 1;\n }\n }\n\n .context-menu {\n top: 16px;\n }\n\n @media (max-width: $break-point-widest + $card-width * 1.5) {\n @include context-menu-open-left;\n }\n }\n\n &:hover,\n &.active {\n .section-top-bar {\n .context-menu-button {\n opacity: 1;\n }\n }\n }\n\n &.active {\n background: var(--newtab-element-hover-color);\n border-radius: 4px;\n\n .section-top-bar {\n .context-menu-button {\n fill: var(--newtab-section-active-contextmenu-color);\n }\n }\n }\n\n .section-disclaimer {\n $max-button-width: 130px;\n $min-button-height: 26px;\n\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n margin-bottom: 16px;\n position: relative;\n\n .section-disclaimer-text {\n display: inline-block;\n min-height: $min-button-height;\n width: calc(100% - #{$max-button-width});\n\n @media (max-width: $break-point-medium) {\n width: $card-width;\n }\n }\n\n a {\n color: var(--newtab-link-primary-color);\n font-weight: bold;\n padding-left: 3px;\n }\n\n button {\n background: var(--newtab-button-secondary-color);\n border: 1px solid $grey-40;\n border-radius: 4px;\n cursor: pointer;\n margin-top: 2px;\n max-width: $max-button-width;\n min-height: $min-button-height;\n offset-inline-end: 0;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n @media (min-width: $break-point-small) {\n position: absolute;\n }\n }\n }\n\n .section-body-fallback {\n height: $card-height;\n }\n\n .section-body {\n // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n $horizontal-padding: 7px;\n margin: 0 (-$horizontal-padding);\n padding: 0 $horizontal-padding;\n\n &.animating {\n overflow: hidden;\n pointer-events: none;\n }\n }\n\n &.animation-enabled {\n .section-title {\n .collapsible-arrow {\n transition: transform 0.5s $photon-easing;\n }\n }\n\n .section-body {\n transition: max-height 0.5s $photon-easing;\n }\n }\n\n &.collapsed {\n .section-body {\n max-height: 0;\n overflow: hidden;\n }\n }\n}\n",
"\n.asrouter-admin {\n $border-color: var(--newtab-border-secondary-color);\n $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n max-width: 996px;\n margin: 0 auto;\n font-size: 14px;\n // Reset .outer-wrapper styles\n display: inherit;\n padding: 0 0 92px;\n\n h1 {\n font-weight: 200;\n font-size: 32px;\n }\n\n table {\n border-collapse: collapse;\n width: 100%;\n }\n\n .message-item {\n &:first-child td {\n border-top: 1px solid $border-color;\n }\n\n td {\n vertical-align: top;\n border-bottom: 1px solid $border-color;\n padding: 8px;\n\n &:first-child {\n border-left: 1px solid $border-color;\n }\n\n &:last-child {\n border-right: 1px solid $border-color;\n }\n }\n\n &.current {\n .message-id span {\n background: $yellow-50;\n padding: 2px 5px;\n\n .dark-theme & {\n color: $black;\n }\n }\n }\n\n &.blocked {\n .message-id,\n .message-summary {\n opacity: 0.5;\n }\n\n .message-id {\n opacity: 0.5;\n }\n }\n\n .message-id {\n font-family: $monospace;\n font-size: 12px;\n }\n }\n\n pre {\n background: var(--newtab-textbox-background-color);\n margin: 0;\n padding: 8px;\n font-size: 12px;\n max-width: 750px;\n overflow: auto;\n font-family: $monospace;\n }\n}\n",
".ASRouterButton {\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n .tall & {\n margin-inline-start: 20px;\n }\n}\n",
".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n offset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n offset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n}\n",
- ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 100000;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 100001;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
+ ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterAnchor {\n color: inherit;\n text-decoration: underline;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n margin-top: 30px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": "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"
}
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css
@@ -368,17 +368,17 @@ main {
background-color: transparent;
border: 0;
cursor: pointer;
fill: var(--newtab-icon-primary-color);
offset-inline-end: 15px;
padding: 15px;
position: fixed;
top: 15px;
- z-index: 12001; }
+ z-index: 1000; }
.prefs-button button:hover, .prefs-button button:focus {
background-color: var(--newtab-element-hover-color); }
.prefs-button button:active {
background-color: var(--newtab-element-active-color); }
.as-error-fallback {
align-items: center;
border-radius: 3px;
@@ -805,32 +805,38 @@ main {
.activity-stream.welcome {
overflow: hidden; }
.activity-stream:not(.welcome) .overlay-wrapper {
display: none; }
.overlay-wrapper {
- position: fixed;
+ position: absolute;
top: 0;
width: 100vw;
height: 100vh;
z-index: 21000;
- font-weight: 200;
transition: opacity 0.4s;
- opacity: 0; }
+ opacity: 0;
+ overflow-x: auto; }
.overlay-wrapper.show {
transition: none;
opacity: 1; }
.overlay-wrapper.show .firstrun-sign-in {
transition: opacity 1.5s, transform 1.5s;
transition-delay: 0.2s;
transform: translateY(-50%) scale(1);
opacity: 1; }
+ @media screen and (max-width: 790px) {
+ .overlay-wrapper.show .firstrun-sign-in {
+ float: none;
+ margin: auto;
+ top: 190px;
+ margin-bottom: 100px; } }
.overlay-wrapper.show .firstrun-firefox-logo {
transition: opacity 2.3s;
opacity: 1; }
.overlay-wrapper.show .firstrun-title,
.overlay-wrapper.show .firstrun-content,
.overlay-wrapper.show .firstrun-link {
transition: transform 0.5s, opacity 0.8s;
transform: translateY(0);
@@ -845,17 +851,18 @@ main {
transition: none;
opacity: 1; }
.background {
width: 100%;
height: 100%;
display: block;
background: url("../data/content/assets/fox-tail.png") top -200px center no-repeat, linear-gradient(to bottom, #003EAA 40%, #004EC2 60%, #0060DF 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat, #003EAA;
- background-size: cover; }
+ background-size: cover;
+ position: fixed; }
.firstrun-sign-in {
transform: translateY(-50%) scale(0.8);
position: relative;
top: 50%;
width: 358px;
opacity: 0;
background-color: #FFF;
@@ -881,51 +888,55 @@ main {
box-shadow: none;
margin: auto;
width: 244px;
display: block;
height: 40px;
padding-inline-start: 20px;
border: 1px solid #737373;
border-radius: 2px;
- font-size: 16px; }
+ font-size: 16px;
+ transition: border-color 150ms, box-shadow 150ms; }
.firstrun-sign-in .email-input:hover {
border-color: #0C0C0D; }
+ .firstrun-sign-in .email-input:focus {
+ border-color: #0A84FF;
+ box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3); }
.firstrun-sign-in .form-header {
- font-size: 18px;
+ font-size: 22px;
margin: 15px auto; }
- .firstrun-sign-in .form-header span {
+ .firstrun-sign-in .form-header .sub-header {
font-size: 14px;
margin-top: 4px;
display: block; }
.firstrun-sign-in button {
- border-radius: 2px;
display: block;
cursor: pointer;
margin: 10px auto 0; }
.firstrun-sign-in .continue-button {
font-size: 18px;
height: 43px;
width: 250px;
padding: 8px 0;
- border: 1px solid #0060DF;
+ border: 0;
+ border-radius: 4px;
color: #FFF;
- background-color: #0A84FF;
- transition-duration: 150ms;
- transition-property: background-color; }
- .firstrun-sign-in .continue-button:not([disabled]):active {
+ background-color: #0060DF;
+ transition: background-color 150ms; }
+ .firstrun-sign-in .continue-button:not([disabled]):active, .firstrun-sign-in .continue-button:not([disabled]):hover {
background: #003EAA;
border-color: #002275; }
.firstrun-sign-in .skip-button {
font-size: 13px;
- margin-top: 40px;
+ margin-top: 35px;
margin-bottom: 20px;
background-color: #FCFCFC;
color: #0A84FF;
border: 1px solid #0A84FF;
+ border-radius: 2px;
min-height: 24px;
padding: 5px 10px;
transition: background-color 150ms, color 150ms, border-color 150ms; }
.firstrun-sign-in .skip-button[disabled] {
background-color: #EBEBEB;
border-color: #B1B1B1;
color: #6A6A6A;
cursor: default;
@@ -935,16 +946,25 @@ main {
border-color: #0060DF;
color: #FFF; }
.firstrun-left-divider {
position: relative;
float: inline-start;
clear: both;
width: 435px; }
+ @media screen and (max-width: 825px) {
+ .firstrun-left-divider {
+ width: 400px; } }
+ @media screen and (max-width: 790px) {
+ .firstrun-left-divider {
+ margin: auto;
+ float: none;
+ width: 352px;
+ text-align: center; } }
.firstrun-content {
line-height: 1.5;
margin-bottom: 48px;
max-width: 352px;
background: url("../data/content/assets/sync-devices.svg") bottom center no-repeat;
padding-bottom: 210px; }
@@ -954,18 +974,21 @@ main {
text-decoration: underline; }
.firstrun-link:hover, .firstrun-link:active, .firstrun-link:focus {
color: #FFF; }
.firstrun-title {
background: url("chrome://branding/content/about-logo.png") top left no-repeat;
background-size: 90px 90px;
margin: 40px 0 10px;
- padding-top: 110px;
- font-weight: 200; }
+ padding-top: 110px; }
+ @media screen and (max-width: 790px) {
+ .firstrun-title {
+ background: url("chrome://branding/content/about-logo.png") top center no-repeat;
+ background-size: 90px 90px; } }
[dir='rtl'] .firstrun-title {
background-position: top right; }
.fxaccounts-container {
position: absolute;
bottom: 0;
right: 0;
@@ -973,16 +996,23 @@ main {
left: 0;
color: #FFF;
height: 515px;
margin: auto;
width: 819px;
z-index: 10;
transition: opacity 0.3s;
opacity: 0; }
+ @media screen and (max-width: 825px) {
+ .fxaccounts-container {
+ width: 784px; } }
+ @media screen and (max-width: 790px) {
+ .fxaccounts-container {
+ width: auto;
+ height: 100%; } }
.firstrun-title,
.firstrun-content,
.firstrun-link {
opacity: 0;
transform: translateY(-5px); }
.topic {
@@ -1690,42 +1720,45 @@ main {
.modalOverlayOuter {
background: #FFF;
opacity: 0.93;
height: 100%;
position: fixed;
top: 0;
width: 100%;
display: none;
- z-index: 100000; }
+ z-index: 1100; }
.modalOverlayOuter.active {
display: block; }
.modalOverlayInner {
width: 960px;
height: 510px;
position: fixed;
top: calc(50% - 255px);
left: calc(50% - 480px);
background: #FFF;
box-shadow: 0 1px 15px 0 rgba(0, 0, 0, 0.3);
border-radius: 4px;
display: none;
- z-index: 100001; }
+ z-index: 1101; }
@media (max-width: 960px) {
.modalOverlayInner {
width: 100%;
height: 100%;
top: 0;
left: 0;
box-shadow: none;
border-radius: 0; } }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner {
overflow-y: scroll; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner {
+ overflow-y: scroll; } }
.modalOverlayInner.active {
display: block; }
.modalOverlayInner h2 {
color: #4A4A4F;
text-align: center;
font-weight: 200;
margin-top: 30px;
font-size: 28px;
@@ -1743,16 +1776,19 @@ main {
width: 100%;
position: absolute;
bottom: 0;
text-align: center;
background-color: #FFF; }
@media (max-width: 850px) and (max-height: 730px) {
.modalOverlayInner .footer {
position: sticky; } }
+ @media (max-width: 650px) and (max-height: 600px) {
+ .modalOverlayInner .footer {
+ position: sticky; } }
.modalOverlayInner .footer .modalButton {
margin-top: 20px;
width: 150px;
height: 30px;
padding: 4px 0 6px 0;
font-size: 15px; }
.SimpleSnippet.tall {
@@ -1824,16 +1860,19 @@ main {
.onboardingMessage .onboardingContent > span > h3 {
margin-top: 0;
margin-bottom: 4px;
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
margin-top: 0;
line-height: 22px;
font-size: 15px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage {
+ height: 250px; } }
.onboardingMessage .onboardingMessageImage {
height: 100px;
width: 120px;
background-size: 120px;
background-position: center center;
background-repeat: no-repeat;
display: inline-block;
vertical-align: middle; }
@@ -1858,29 +1897,36 @@ main {
font-weight: 400; }
.onboardingMessage .onboardingContent > span > p {
color: #4A4A4F;
margin-top: 0;
height: 130px;
margin-bottom: 12px;
font-size: 15px;
line-height: 22px; }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingContent > span > p {
+ margin-bottom: 0px; } }
.onboardingMessage .onboardingButton {
background-color: rgba(12, 12, 13, 0.1);
border: none;
width: 150px;
height: 30px;
margin-bottom: 23px;
padding: 4px 0 6px 0;
font-size: 15px; }
@media (max-width: 850px) {
.onboardingMessage .onboardingButton {
float: right;
margin-top: -60px;
margin-right: -10px; } }
+ @media (max-width: 650px) {
+ .onboardingMessage .onboardingButton {
+ float: none;
+ margin-top: 30px; } }
.onboardingMessage::before {
content: '';
height: 220px;
width: 1px;
position: absolute;
background-color: #D8D8D8;
margin-top: 40px;
margin-left: 215px; }
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -29,30 +29,30 @@
],
"sourcesContent": [
"/* This is the windows variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n\n@import './activity-stream';\n",
"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n min-height: 100vh;\n}\n\nbody {\n background-color: var(--newtab-background-color);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n font-size: 16px;\n overflow-y: scroll;\n}\n\nh1,\nh2 {\n font-weight: normal;\n}\n\na {\n text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.inner-border {\n border: $border-secondary;\n border-radius: $border-radius;\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 100;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.show-on-init {\n opacity: 0;\n transition: opacity 0.2s ease-in;\n\n &.on {\n animation: fadeIn 0.2s;\n opacity: 1;\n }\n}\n\n.actions {\n border-top: $border-secondary;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n margin: 0;\n padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n background-color: var(--newtab-button-secondary-color);\n border: $border-primary;\n border-radius: 4px;\n color: inherit;\n cursor: pointer;\n margin-bottom: 15px;\n padding: 10px 30px;\n white-space: nowrap;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n &.dismiss {\n background-color: transparent;\n border: 0;\n padding: 0;\n text-decoration: underline;\n }\n\n // Blue button\n &.primary,\n &.done {\n background-color: var(--newtab-button-primary-color);\n border: solid 1px var(--newtab-button-primary-color);\n color: $white;\n margin-inline-start: auto;\n }\n}\n\ninput {\n &[type='text'],\n &[type='search'] {\n border-radius: $border-radius;\n }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/StartupOverlay/StartupOverlay';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/ASRouterAdmin/ASRouterAdmin';\n\n// AS Router\n@import '../asrouter/components/Button/Button';\n@import '../asrouter/components/SnippetBase/SnippetBase';\n@import '../asrouter/components/ModalOverlay/ModalOverlay';\n@import '../asrouter/templates/SimpleSnippet/SimpleSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\n",
"html {\n box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n border: 0;\n}\n\nbody {\n margin: 0;\n}\n\nbutton,\ninput {\n background-color: inherit;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n\n[hidden] {\n display: none !important; // sass-lint:disable-line no-important\n}\n",
"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-10: rgba($grey-10, 0.1);\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-20-80: rgba($grey-20, 0.8);\n$grey-30-60: rgba($grey-30, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Other colors\n$white: #FFF;\n$white-10: rgba($white, 0.1);\n$pocket-teal: #50BCB6;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// Compact cards for Highlights\n$card-height-compact: 160px;\n$card-preview-image-height-compact: 108px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n$textbox-shadow-size: 4px;\n\n@mixin fade-in {\n box-shadow: inset $inner-box-shadow, $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n .context-menu-button {\n background-clip: padding-box;\n background-color: var(--newtab-contextmenu-button-color);\n background-image: url('chrome://browser/skin/page-action.svg');\n background-position: 55%;\n border: $border-primary;\n border-radius: 100%;\n box-shadow: $context-menu-button-boxshadow;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n height: $context-menu-button-size;\n offset-inline-end: -($context-menu-button-size / 2);\n opacity: 0;\n position: absolute;\n top: -($context-menu-button-size / 2);\n transform: scale(0.25);\n transition-duration: 200ms;\n transition-property: transform, opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus) {\n opacity: 1;\n transform: scale(1);\n }\n }\n}\n\n@mixin context-menu-button-hover {\n .context-menu-button {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n offset-inline-end: auto;\n offset-inline-start: -$base-gutter;\n }\n}\n\n@mixin context-menu-open-left {\n .context-menu {\n margin-inline-end: 5px;\n margin-inline-start: auto;\n offset-inline-end: 0;\n offset-inline-start: auto;\n }\n}\n\n@mixin flip-icon {\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n}\n",
"@function textbox-shadow($color) {\n @return 0 0 0 1px $color, 0 0 0 $textbox-shadow-size rgba($color, 0.3);\n}\n\n@mixin textbox-focus($color) {\n --newtab-textbox-focus-color: $color;\n --newtab-textbox-focus-boxshadow: textbox-shadow($color);\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n$input-border: 1px solid var(--newtab-textbox-border);\n$input-border-active: 1px solid var(--newtab-textbox-focus-color);\n$input-error-border: 1px solid $red-60;\n$input-error-boxshadow: textbox-shadow($red-60);\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-20;\n\n// Default theme\nbody {\n // General styles\n --newtab-background-color: $grey-10;\n --newtab-border-primary-color: $grey-40;\n --newtab-border-secondary-color: $grey-30;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: inherit;\n --newtab-element-active-color: $grey-30-60;\n --newtab-element-hover-color: $grey-20;\n --newtab-icon-primary-color: $grey-90-80;\n --newtab-icon-secondary-color: $grey-90-60;\n --newtab-icon-tertiary-color: $grey-30;\n --newtab-inner-box-shadow-color: $black-10;\n --newtab-link-primary-color: $blue-60;\n --newtab-link-secondary-color: $teal-70;\n --newtab-text-conditional-color: $grey-60;\n --newtab-text-primary-color: $grey-90;\n --newtab-text-secondary-color: $grey-50;\n --newtab-textbox-background-color: $white;\n --newtab-textbox-border: $grey-90-20;\n @include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-10;\n --newtab-contextmenu-button-color: $white;\n\n // Modal + overlay\n --newtab-modal-color: $white;\n --newtab-overlay-color: $grey-20-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-50;\n --newtab-section-navigation-text-color: $grey-50;\n --newtab-section-active-contextmenu-color: $grey-90;\n\n // Search\n --newtab-search-border-color: transparent;\n --newtab-search-dropdown-color: $white;\n --newtab-search-dropdown-header-color: $grey-10;\n --newtab-search-icon-color: $grey-90-40;\n\n // Top Sites\n --newtab-topsites-background-color: $white;\n --newtab-topsites-icon-shadow: inset $inner-box-shadow;\n --newtab-topsites-label-color: inherit;\n\n // Cards\n --newtab-card-active-outline-color: $grey-30;\n --newtab-card-background-color: $white;\n --newtab-card-hairline-color: $black-10;\n --newtab-card-shadow: 0 1px 4px 0 $grey-90-10;\n\n // Snippets\n --newtab-snippets-background-color: $white;\n --newtab-snippets-hairline-color: transparent;\n}\n\n// Dark theme\n.dark-theme {\n // General styles\n --newtab-background-color: $grey-80;\n --newtab-border-primary-color: $grey-10-80;\n --newtab-border-secondary-color: $grey-10-10;\n --newtab-button-primary-color: $blue-60;\n --newtab-button-secondary-color: $grey-70;\n --newtab-element-active-color: $grey-10-20;\n --newtab-element-hover-color: $grey-10-10;\n --newtab-icon-primary-color: $grey-10-80;\n --newtab-icon-secondary-color: $grey-10-40;\n --newtab-icon-tertiary-color: $grey-10-40;\n --newtab-inner-box-shadow-color: $grey-10-20;\n --newtab-link-primary-color: $blue-40;\n --newtab-link-secondary-color: $pocket-teal;\n --newtab-text-conditional-color: $grey-10;\n --newtab-text-primary-color: $grey-10;\n --newtab-text-secondary-color: $grey-10-80;\n --newtab-textbox-background-color: $grey-70;\n --newtab-textbox-border: $grey-10-20;\n @include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations\n\n // Context menu\n --newtab-contextmenu-background-color: $grey-60;\n --newtab-contextmenu-button-color: $grey-80;\n\n // Modal + overlay\n --newtab-modal-color: $grey-80;\n --newtab-overlay-color: $grey-90-80;\n\n // Sections\n --newtab-section-header-text-color: $grey-10-80;\n --newtab-section-navigation-text-color: $grey-10-80;\n --newtab-section-active-contextmenu-color: $white;\n\n // Search\n --newtab-search-border-color: $grey-10-20;\n --newtab-search-dropdown-color: $grey-70;\n --newtab-search-dropdown-header-color: $grey-60;\n --newtab-search-icon-color: $grey-10-60;\n\n // Top Sites\n --newtab-topsites-background-color: $grey-70;\n --newtab-topsites-icon-shadow: none;\n --newtab-topsites-label-color: $grey-10-80;\n\n // Cards\n --newtab-card-active-outline-color: $grey-60;\n --newtab-card-background-color: $grey-70;\n --newtab-card-hairline-color: $grey-10-10;\n --newtab-card-shadow: 0 1px 8px 0 $grey-90-20;\n\n // Snippets\n --newtab-snippets-background-color: $grey-70;\n --newtab-snippets-hairline-color: $white-10;\n}\n",
".icon {\n background-position: center center;\n background-repeat: no-repeat;\n background-size: $icon-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-icon-primary-color);\n height: $icon-size;\n vertical-align: middle;\n width: $icon-size;\n\n &.icon-spacer {\n margin-inline-end: 8px;\n }\n\n &.icon-small-spacer {\n margin-inline-end: 6px;\n }\n\n &.icon-bookmark-added {\n background-image: url('chrome://browser/skin/bookmark.svg');\n }\n\n &.icon-bookmark-hollow {\n background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n }\n\n &.icon-clear-input {\n fill: var(--newtab-icon-secondary-color);\n background-image: url('#{$image-path}glyph-cancel-16.svg');\n }\n\n &.icon-delete {\n background-image: url('#{$image-path}glyph-delete-16.svg');\n }\n\n &.icon-search {\n background-image: url('chrome://browser/skin/search-glass.svg');\n }\n\n &.icon-modal-delete {\n flex-shrink: 0;\n background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n background-size: $larger-icon-size;\n height: $larger-icon-size;\n width: $larger-icon-size;\n }\n\n &.icon-dismiss {\n background-image: url('#{$image-path}glyph-dismiss-16.svg');\n }\n\n &.icon-info {\n background-image: url('#{$image-path}glyph-info-16.svg');\n }\n\n &.icon-import {\n background-image: url('#{$image-path}glyph-import-16.svg');\n }\n\n &.icon-new-window {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-newWindow-16.svg');\n }\n\n &.icon-new-window-private {\n background-image: url('chrome://browser/skin/privateBrowsing.svg');\n }\n\n &.icon-settings {\n background-image: url('chrome://browser/skin/settings.svg');\n }\n\n &.icon-pin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-16.svg');\n }\n\n &.icon-unpin {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-unpin-16.svg');\n }\n\n &.icon-edit {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.icon-pocket {\n background-image: url('#{$image-path}glyph-pocket-16.svg');\n }\n\n &.icon-history-item {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-trending {\n background-image: url('#{$image-path}glyph-trending-16.svg');\n transform: translateY(2px); // trending bolt is visually top heavy\n }\n\n &.icon-now {\n background-image: url('chrome://browser/skin/history.svg');\n }\n\n &.icon-topsites {\n background-image: url('#{$image-path}glyph-topsites-16.svg');\n }\n\n &.icon-pin-small {\n @include flip-icon;\n background-image: url('#{$image-path}glyph-pin-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-check {\n background-image: url('chrome://browser/skin/check.svg');\n }\n\n &.icon-download {\n background-image: url('chrome://browser/skin/downloads/download-icons.svg#arrow-with-bar');\n }\n\n &.icon-copy {\n background-image: url('chrome://browser/skin/edit-copy.svg');\n }\n\n &.icon-open-file {\n background-image: url('#{$image-path}glyph-open-file-16.svg');\n }\n\n &.icon-webextension {\n background-image: url('#{$image-path}glyph-webextension-16.svg');\n }\n\n &.icon-highlights {\n background-image: url('#{$image-path}glyph-highlights-16.svg');\n }\n\n &.icon-arrowhead-down {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n }\n\n &.icon-arrowhead-down-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n width: $smaller-icon-size;\n }\n\n &.icon-arrowhead-forward-small {\n background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n background-size: $smaller-icon-size;\n height: $smaller-icon-size;\n transform: rotate(-90deg);\n width: $smaller-icon-size;\n\n &:dir(rtl) {\n transform: rotate(90deg);\n }\n }\n\n &.icon-arrowhead-up {\n background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n transform: rotate(180deg);\n }\n\n &.icon-add {\n background-image: url('#{$image-path}glyph-add-16.svg');\n }\n\n &.icon-minimize {\n background-image: url('#{$image-path}glyph-minimize-16.svg');\n }\n\n &.icon-maximize {\n background-image: url('#{$image-path}glyph-maximize-16.svg');\n }\n}\n",
- ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 12001;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
+ ".outer-wrapper {\n color: var(--newtab-text-primary-color);\n display: flex;\n flex-grow: 1;\n min-height: 100vh;\n padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n &.fixed-to-top {\n display: block;\n }\n\n a {\n color: var(--newtab-link-primary-color);\n }\n}\n\nmain {\n margin: auto;\n // Offset the snippets container so things at the bottom of the page are still\n // visible when snippets / onboarding are visible. Adjust for other spacing.\n padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n\n @media (min-width: $break-point-widest) {\n width: $wrapper-max-width-widest;\n }\n\n section {\n margin-bottom: $section-spacing;\n position: relative;\n }\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topic\n ';\n\n #{$selectors-to-hide} {\n opacity: 0;\n }\n\n &.on {\n #{$selectors-to-hide} {\n opacity: 1;\n }\n }\n}\n\n.non-collapsible-section {\n padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n button {\n background-color: transparent;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-icon-primary-color);\n offset-inline-end: 15px;\n padding: 15px;\n position: fixed;\n top: 15px;\n z-index: 1000;\n\n &:hover,\n &:focus {\n background-color: var(--newtab-element-hover-color);\n }\n\n &:active {\n background-color: var(--newtab-element-active-color);\n }\n }\n}\n",
".as-error-fallback {\n align-items: center;\n border-radius: $border-radius;\n box-shadow: inset $inner-box-shadow;\n color: var(--newtab-text-conditional-color);\n display: flex;\n flex-direction: column;\n font-size: $error-fallback-font-size;\n justify-content: center;\n justify-items: center;\n line-height: $error-fallback-line-height;\n\n a {\n color: var(--newtab-text-conditional-color);\n text-decoration: underline;\n }\n}\n",
"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n // Take back the margin from the bottom row of vertical spacing as well as the\n // extra whitespace below the title text as it's vertically centered.\n margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n list-style: none;\n margin: 0 (-$half-base-gutter);\n padding: 0;\n\n // Two columns\n @media (max-width: $break-point-small) {\n :nth-child(2n+1) {\n @include context-menu-open-middle;\n }\n\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n // Three columns\n @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n :nth-child(3n+2),\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n // Four columns\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(4n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n :nth-child(4n+3) {\n @include context-menu-open-left;\n }\n }\n\n // Six columns\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(6n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n :nth-child(6n+5) {\n @include context-menu-open-left;\n }\n }\n\n // Eight columns\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(8n) {\n @include context-menu-open-left;\n }\n }\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n :nth-child(8n+7) {\n @include context-menu-open-left;\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n\n li {\n margin: 0 0 $top-sites-vertical-space;\n }\n\n &:not(.dnd-active) {\n .top-site-outer:-moz-any(.active, :focus, :hover) {\n .tile {\n @include fade-in;\n }\n\n @include context-menu-button-hover;\n }\n }\n}\n\n// container for drop zone\n.top-site-outer {\n padding: 0 $half-base-gutter;\n display: inline-block;\n\n // container for context menu\n .top-site-inner {\n position: relative;\n\n > a {\n color: inherit;\n display: block;\n outline: none;\n\n &:-moz-any(.active, :focus) {\n .tile {\n @include fade-in;\n }\n }\n }\n }\n\n @include context-menu-button;\n\n .tile { // sass-lint:disable-block property-sort-order\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow, var(--newtab-card-shadow);\n height: $top-sites-size;\n position: relative;\n width: $top-sites-size;\n\n // For letter fallback\n align-items: center;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 32px;\n font-weight: 200;\n justify-content: center;\n text-transform: uppercase;\n\n &::before {\n content: attr(data-fallback);\n }\n }\n\n .screenshot {\n background-color: $white;\n background-position: top left;\n background-size: $screenshot-size;\n border-radius: $top-sites-border-radius;\n box-shadow: inset $inner-box-shadow;\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition: opacity 1s;\n width: 100%;\n\n &.active {\n opacity: 1;\n }\n }\n\n // Some common styles for all icons (rich and default) in top sites\n .top-site-icon {\n background-color: var(--newtab-topsites-background-color);\n background-position: center center;\n background-repeat: no-repeat;\n border-radius: $top-sites-border-radius;\n box-shadow: var(--newtab-topsites-icon-shadow);\n position: absolute;\n }\n\n .rich-icon {\n background-size: cover;\n height: 100%;\n offset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon { // sass-lint:disable block property-sort-order\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n offset-inline-end: -$default-icon-offset;\n width: $default-icon-wrapper-size;\n\n // for corner letter fallback\n align-items: center;\n display: flex;\n font-size: 20px;\n justify-content: center;\n\n &[data-fallback]::before {\n content: attr(data-fallback);\n }\n }\n\n .title {\n color: var(--newtab-topsites-label-color);\n font: message-box;\n height: $top-sites-title-height;\n line-height: $top-sites-title-height;\n text-align: center;\n width: $top-sites-size;\n position: relative;\n\n .icon {\n fill: var(--newtab-icon-tertiary-color);\n offset-inline-start: 0;\n position: absolute;\n top: 10px;\n }\n\n span {\n height: $top-sites-title-height;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.pinned {\n span {\n padding: 0 13px;\n }\n }\n }\n\n .edit-button {\n background-image: url('#{$image-path}glyph-edit-16.svg');\n }\n\n &.placeholder {\n .tile {\n box-shadow: inset $inner-box-shadow;\n }\n\n .screenshot {\n display: none;\n }\n }\n\n &.dragged {\n .tile {\n background: $grey-20;\n box-shadow: none;\n\n *,\n &::before {\n display: none;\n }\n }\n\n .title {\n visibility: hidden;\n }\n }\n}\n\n.edit-topsites-wrapper {\n .modal {\n box-shadow: $shadow-secondary;\n left: 0;\n margin: 0 auto;\n position: fixed;\n right: 0;\n top: 40px;\n width: $wrapper-default-width;\n\n @media (min-width: $break-point-small) {\n width: $wrapper-max-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $wrapper-max-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $wrapper-max-width-large;\n }\n }\n}\n\n.topsite-form {\n $form-width: 300px;\n $form-spacing: 32px;\n\n .form-input-container {\n max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n margin: 0 auto;\n padding: $form-spacing;\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\n pointer-events: none;\n }\n\n .section-title {\n text-transform: none;\n font-size: 16px;\n margin: 0 0 16px;\n }\n }\n\n .fields-and-preview {\n display: flex;\n }\n\n label {\n font-size: $section-title-font-size;\n }\n\n .form-wrapper {\n width: 100%;\n\n .field {\n position: relative;\n\n .icon-clear-input {\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n }\n\n .url {\n input:dir(ltr) {\n padding-right: 32px;\n }\n\n input:dir(rtl) {\n padding-left: 32px;\n\n &:not(:placeholder-shown) {\n direction: ltr;\n text-align: right;\n }\n }\n }\n\n .enable-custom-image-input {\n display: inline-block;\n font-size: 13px;\n margin-top: 4px;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .custom-image-input-container {\n margin-top: 4px;\n\n .loading-container {\n width: 16px;\n height: 16px;\n overflow: hidden;\n position: absolute;\n transform: translateY(-50%);\n top: 50%;\n offset-inline-end: 8px;\n }\n\n // This animation is derived from Firefox's tab loading animation\n // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n .loading-animation {\n @keyframes tab-throbber-animation {\n 100% { transform: translateX(-960px); }\n }\n\n @keyframes tab-throbber-animation-rtl {\n 100% { transform: translateX(960px); }\n }\n\n width: 960px;\n height: 16px;\n -moz-context-properties: fill;\n fill: $blue-50;\n background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n &:dir(rtl) {\n animation-name: tab-throbber-animation-rtl;\n }\n }\n }\n\n input {\n &[type='text'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n margin: 8px 0;\n padding: 0 8px;\n height: 32px;\n width: 100%;\n font-size: 15px;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n &[disabled] {\n border: $input-border;\n box-shadow: none;\n opacity: 0.4;\n }\n }\n }\n\n .invalid {\n input {\n &[type='text'] {\n border: $input-error-border;\n box-shadow: $input-error-boxshadow;\n }\n }\n }\n\n .error-tooltip {\n animation: fade-up-tt 450ms;\n background: $red-60;\n border-radius: 2px;\n color: $white;\n offset-inline-start: 3px;\n padding: 5px 12px;\n position: absolute;\n top: 44px;\n z-index: 1;\n\n // tooltip caret\n &::before {\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n offset-inline-start: 12px;\n position: absolute;\n text-indent: -999px;\n top: -7px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n }\n }\n\n .actions {\n justify-content: flex-end;\n\n button {\n margin-inline-start: 10px;\n margin-inline-end: 0;\n }\n }\n\n @media (max-width: $break-point-small) {\n .fields-and-preview {\n flex-direction: column;\n\n .top-site-outer {\n margin-inline-start: 0;\n }\n }\n }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n 0% {\n opacity: 0;\n transform: translateY(15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n",
".sections-list {\n .section-list {\n display: grid;\n grid-gap: $base-gutter;\n grid-template-columns: repeat(auto-fit, $card-width);\n margin: 0;\n\n @media (max-width: $break-point-medium) {\n @include context-menu-open-left;\n }\n\n @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n :nth-child(2n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n\n @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n :nth-child(3n) {\n @include context-menu-open-left;\n }\n }\n }\n\n .section-empty-state {\n border: $border-secondary;\n border-radius: $border-radius;\n display: flex;\n height: $card-height;\n width: 100%;\n\n .empty-state {\n margin: auto;\n max-width: 350px;\n\n .empty-state-icon {\n background-position: center;\n background-repeat: no-repeat;\n background-size: 50px 50px;\n -moz-context-properties: fill;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n height: 50px;\n margin: 0 auto;\n width: 50px;\n }\n\n .empty-state-message {\n color: var(--newtab-text-primary-color);\n font-size: 13px;\n margin-bottom: 0;\n text-align: center;\n }\n }\n\n @media (min-width: $break-point-widest) {\n height: $card-height-large;\n }\n }\n}\n\n@media (min-width: $break-point-widest) {\n .sections-list {\n // Compact cards stay the same size but normal cards get bigger.\n .normal-cards {\n .section-list {\n grid-template-columns: repeat(auto-fit, $card-width-large);\n }\n }\n }\n}\n",
- ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: fixed;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n font-weight: 200;\n transition: opacity 0.4s;\n opacity: 0;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n\n &:hover {\n border-color: $grey-90;\n }\n }\n\n .form-header {\n font-size: 18px;\n margin: 15px auto;\n }\n\n .form-header span {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n border-radius: 2px;\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 1px solid $blue-60;\n color: $white;\n background-color: $blue-50;\n transition-duration: 150ms;\n transition-property: background-color;\n\n &:not([disabled]):active {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 40px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n font-weight: 200;\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
+ ".activity-stream {\n &.welcome {\n overflow: hidden;\n }\n\n &:not(.welcome) {\n .overlay-wrapper {\n display: none;\n }\n }\n}\n\n.overlay-wrapper {\n position: absolute;\n top: 0;\n width: 100vw;\n height: 100vh;\n z-index: 21000;\n transition: opacity 0.4s;\n opacity: 0;\n overflow-x: auto;\n\n &.show {\n transition: none;\n opacity: 1;\n\n .firstrun-sign-in {\n transition: opacity 1.5s, transform 1.5s;\n transition-delay: 0.2s;\n transform: translateY(-50%) scale(1);\n opacity: 1;\n\n @media screen and (max-width: 790px) {\n float: none;\n margin: auto;\n top: 190px;\n margin-bottom: 100px;\n }\n }\n\n .firstrun-firefox-logo {\n transition: opacity 2.3s;\n opacity: 1;\n }\n\n .firstrun-title,\n .firstrun-content,\n .firstrun-link {\n transition: transform 0.5s, opacity 0.8s;\n transform: translateY(0);\n opacity: 1;\n }\n\n .firstrun-title {\n transition-delay: 0.2s;\n }\n\n .firstrun-content {\n transition-delay: 0.4s;\n }\n\n .firstrun-link {\n transition-delay: 0.6s;\n }\n\n .fxaccounts-container {\n transition: none;\n opacity: 1;\n }\n }\n}\n\n.background {\n width: 100%;\n height: 100%;\n display: block;\n background: url('#{$image-path}fox-tail.png') top -200px center no-repeat,\n linear-gradient(to bottom, $blue-70 40%, #004EC2 60%, $blue-60 80%, #0080FF 90%, #00C7FF 100%) top center no-repeat,\n $blue-70;\n background-size: cover;\n position: fixed;\n}\n\n.firstrun-sign-in {\n transform: translateY(-50%) scale(0.8);\n position: relative;\n top: 50%;\n width: 358px;\n opacity: 0;\n background-color: $white;\n float: inline-end;\n color: $grey-90;\n text-align: center;\n padding: 10px;\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 14px 50px;\n color: #676F7E;\n cursor: default;\n\n a {\n color: $grey-50;\n cursor: pointer;\n text-decoration: underline;\n }\n\n a:hover,\n a:active,\n a:focus {\n color: $blue-50;\n }\n }\n\n .email-input {\n box-shadow: none;\n margin: auto;\n width: 244px;\n display: block;\n height: 40px;\n padding-inline-start: 20px;\n border: 1px solid $grey-50;\n border-radius: 2px;\n font-size: 16px;\n transition: border-color 150ms, box-shadow 150ms;\n\n &:hover {\n border-color: $grey-90;\n }\n\n &:focus {\n border-color: $blue-50;\n box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.3);\n }\n }\n\n .form-header {\n font-size: 22px;\n margin: 15px auto;\n }\n\n .form-header .sub-header {\n font-size: 14px;\n margin-top: 4px;\n display: block;\n }\n\n button {\n display: block;\n cursor: pointer;\n margin: 10px auto 0;\n }\n\n .continue-button {\n font-size: 18px;\n height: 43px;\n width: 250px;\n padding: 8px 0;\n border: 0;\n border-radius: 4px;\n color: $white;\n background-color: $blue-60;\n transition: background-color 150ms;\n\n &:not([disabled]):active,\n &:not([disabled]):hover {\n background: $blue-70;\n border-color: $blue-80;\n }\n }\n\n .skip-button {\n font-size: 13px;\n margin-top: 35px;\n margin-bottom: 20px;\n background-color: #FCFCFC;\n color: $blue-50;\n border: 1px solid $blue-50;\n border-radius: 2px;\n min-height: 24px;\n padding: 5px 10px;\n transition: background-color 150ms, color 150ms, border-color 150ms;\n\n &[disabled] {\n background-color: #EBEBEB;\n border-color: #B1B1B1;\n color: #6A6A6A;\n cursor: default;\n opacity: 0.5;\n }\n\n &:not([disabled]):hover {\n background-color: $blue-50;\n border-color: $blue-60;\n color: $white;\n }\n }\n}\n\n.firstrun-left-divider {\n position: relative;\n float: inline-start;\n clear: both;\n width: 435px;\n\n @media screen and (max-width: 825px) {\n width: 400px;\n }\n\n @media screen and (max-width: 790px) {\n margin: auto;\n float: none;\n width: 352px;\n text-align: center;\n }\n}\n\n.firstrun-content {\n line-height: 1.5;\n margin-bottom: 48px;\n max-width: 352px;\n background: url('#{$image-path}sync-devices.svg') bottom center no-repeat;\n padding-bottom: 210px;\n}\n\n.firstrun-link {\n color: $white;\n display: block;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n.firstrun-title {\n background: url('chrome://branding/content/about-logo.png') top left no-repeat;\n background-size: 90px 90px;\n margin: 40px 0 10px;\n padding-top: 110px;\n\n @media screen and (max-width: 790px) {\n background: url('chrome://branding/content/about-logo.png') top center no-repeat;\n background-size: 90px 90px;\n }\n}\n\n[dir='rtl'] {\n .firstrun-title {\n background-position: top right;\n }\n}\n\n.fxaccounts-container {\n position: absolute;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n color: $white;\n height: 515px;\n margin: auto;\n width: 819px;\n z-index: 10;\n transition: opacity 0.3s;\n opacity: 0;\n\n @media screen and (max-width: 825px) {\n width: 784px;\n }\n\n @media screen and (max-width: 790px) {\n width: auto;\n height: 100%;\n }\n}\n\n.firstrun-title,\n.firstrun-content,\n.firstrun-link {\n opacity: 0;\n transform: translateY(-5px);\n}\n",
".topic {\n color: var(--newtab-section-navigation-text-color);\n font-size: 12px;\n line-height: 1.6;\n margin-top: $topic-margin-top;\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n }\n\n ul {\n margin: 0;\n padding: 0;\n @media (min-width: $break-point-large) {\n display: inline;\n padding-inline-start: 12px;\n }\n }\n\n\n ul li {\n display: inline-block;\n\n &::after {\n content: '•';\n padding: 8px;\n }\n\n &:last-child::after {\n content: none;\n }\n }\n\n .topic-link {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n }\n\n .topic-read-more {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n @media (min-width: $break-point-large) {\n // This is floating to accomodate a very large number of topics and/or\n // very long topic names due to l10n.\n float: right;\n\n &:dir(rtl) {\n float: left;\n }\n }\n\n &::after {\n background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n content: '';\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-link-secondary-color);\n height: 16px;\n margin-inline-start: 5px;\n vertical-align: top;\n width: 12px;\n }\n\n &:dir(rtl)::after {\n transform: scaleX(-1);\n }\n }\n\n // This is a clearfix to for the topics-read-more link which is floating and causes\n // some jank when we set overflow:hidden for the animation.\n &::after {\n clear: both;\n content: '';\n display: table;\n }\n}\n",
".search-wrapper {\n $search-height: 35px;\n $search-icon-size: 18px;\n $search-icon-padding: 8px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size;\n $search-input-left-label-width: 35px;\n $search-button-width: 36px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n cursor: default;\n display: flex;\n height: $search-height;\n margin-bottom: $section-spacing;\n position: relative;\n width: 100%;\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center / $search-icon-size no-repeat;\n border: solid 1px var(--newtab-search-border-color);\n box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n font-size: 15px;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n padding: 0;\n padding-inline-end: $search-button-width;\n padding-inline-start: $search-icon-width;\n width: 100%;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\n\n &:hover input {\n box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n }\n\n &:active input,\n input:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n\n .search-button {\n background: $glyph-forward no-repeat center center;\n background-size: 16px 16px;\n border: 0;\n border-radius: 0 $border-radius $border-radius 0;\n -moz-context-properties: fill;\n fill: var(--newtab-search-icon-color);\n height: 100%;\n offset-inline-end: 0;\n position: absolute;\n width: $search-button-width;\n\n &:focus,\n &:hover {\n background-color: $grey-90-10;\n cursor: pointer;\n }\n\n &:active {\n background-color: $grey-90-20;\n }\n\n &:dir(rtl) {\n transform: scaleX(-1);\n }\n }\n}\n\n@at-root {\n // Adjust the style of the contentSearchUI-generated table\n .contentSearchSuggestionTable {\n background-color: var(--newtab-search-dropdown-color);\n border: 0;\n box-shadow: $context-menu-shadow;\n transform: translateY($textbox-shadow-size);\n\n .contentSearchHeader {\n background-color: var(--newtab-search-dropdown-header-color);\n color: var(--newtab-text-secondary-color);\n }\n\n .contentSearchHeader,\n .contentSearchSettingsButton {\n border-color: var(--newtab-border-secondary-color);\n }\n\n .contentSearchSuggestionsList {\n border: 0;\n }\n\n .contentSearchOneOffsTable {\n background-color: var(--newtab-search-dropdown-header-color);\n border-top: solid 1px var(--newtab-border-secondary-color);\n }\n\n .contentSearchSearchWithHeaderSearchText {\n color: var(--newtab-text-primary-color);\n }\n\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-color);\n }\n\n .contentSearchSuggestionRow {\n &.selected {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n .historyIcon {\n fill: var(--newtab-icon-secondary-color);\n }\n }\n }\n\n .contentSearchOneOffsTable {\n .contentSearchSuggestionsContainer {\n background-color: var(--newtab-search-dropdown-header-color);\n }\n }\n\n .contentSearchOneOffItem {\n // Make the border slightly shorter by offsetting from the top and bottom\n $border-offset: 18%;\n\n background-image: none;\n border-image: linear-gradient(transparent $border-offset, var(--newtab-border-secondary-color) $border-offset, var(--newtab-border-secondary-color) 100% - $border-offset, transparent 100% - $border-offset) 1;\n border-inline-end: 1px solid;\n position: relative;\n\n &.selected {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n }\n\n .contentSearchSettingsButton {\n &:hover {\n background: var(--newtab-element-hover-color);\n color: var(--newtab-text-primary-color);\n }\n }\n }\n}\n",
".context-menu {\n background: var(--newtab-contextmenu-background-color);\n border-radius: $context-menu-border-radius;\n box-shadow: $context-menu-shadow;\n display: block;\n font-size: $context-menu-font-size;\n margin-inline-start: 5px;\n offset-inline-start: 100%;\n position: absolute;\n top: ($context-menu-button-size / 4);\n z-index: 10000;\n\n > ul {\n list-style: none;\n margin: 0;\n padding: $context-menu-outer-padding 0;\n\n > li {\n margin: 0;\n width: 100%;\n\n &.separator {\n border-bottom: $border-secondary;\n margin: $context-menu-outer-padding 0;\n }\n\n > a {\n align-items: center;\n color: inherit;\n cursor: pointer;\n display: flex;\n line-height: 16px;\n outline: none;\n padding: $context-menu-item-padding;\n white-space: nowrap;\n\n &:-moz-any(:focus, :hover) {\n background: var(--newtab-element-hover-color);\n }\n\n &:active {\n background: var(--newtab-element-active-color);\n }\n\n &.disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n }\n }\n }\n}\n",
".confirmation-dialog {\n .modal {\n box-shadow: 0 2px 2px 0 $black-10;\n left: 50%;\n margin-left: -200px;\n position: fixed;\n top: 20%;\n width: 400px;\n }\n\n section {\n margin: 0;\n }\n\n .modal-message {\n display: flex;\n padding: 16px;\n padding-bottom: 0;\n\n p {\n margin: 0;\n margin-bottom: 16px;\n }\n }\n\n .actions {\n border: 0;\n display: flex;\n flex-wrap: nowrap;\n padding: 0 16px;\n\n button {\n margin-inline-end: 16px;\n padding-inline-end: 18px;\n padding-inline-start: 18px;\n white-space: normal;\n width: 50%;\n\n &.done {\n margin-inline-end: 0;\n margin-inline-start: 0;\n }\n }\n }\n\n .icon {\n margin-inline-end: 16px;\n }\n}\n\n.modal-overlay {\n background: var(--newtab-overlay-color);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 11001;\n}\n\n.modal {\n background: var(--newtab-modal-color);\n border: $border-secondary;\n border-radius: 5px;\n font-size: 15px;\n z-index: 11002;\n}\n",
".card-outer {\n @include context-menu-button;\n background: var(--newtab-card-background-color);\n border-radius: $border-radius;\n display: inline-block;\n height: $card-height;\n margin-inline-end: $base-gutter;\n position: relative;\n width: 100%;\n\n &.placeholder {\n background: transparent;\n\n .card {\n box-shadow: inset $inner-box-shadow;\n }\n\n .card-preview-image-outer,\n .card-context {\n display: none;\n }\n }\n\n .card {\n border-radius: $border-radius;\n box-shadow: var(--newtab-card-shadow);\n height: 100%;\n }\n\n > a {\n color: inherit;\n display: block;\n height: 100%;\n outline: none;\n position: absolute;\n width: 100%;\n\n &:-moz-any(.active, :focus) {\n .card {\n @include fade-in-card;\n }\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n }\n }\n\n &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n @include fade-in-card;\n @include context-menu-button-hover;\n outline: none;\n\n .card-title {\n color: var(--newtab-link-primary-color);\n }\n\n .alternate ~ .card-host-name {\n display: none;\n }\n\n .card-host-name.alternate {\n display: block;\n }\n }\n\n .card-preview-image-outer {\n background-color: $grey-30;\n border-radius: $border-radius $border-radius 0 0;\n height: $card-preview-image-height;\n overflow: hidden;\n position: relative;\n\n &::after {\n border-bottom: 1px solid var(--newtab-card-hairline-color);\n bottom: 0;\n content: '';\n position: absolute;\n width: 100%;\n }\n\n .card-preview-image {\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n height: 100%;\n opacity: 0;\n transition: opacity 1s $photon-easing;\n width: 100%;\n\n &.loaded {\n opacity: 1;\n }\n }\n }\n\n .card-details {\n padding: 15px 16px 12px;\n }\n\n .card-text {\n max-height: 4 * $card-text-line-height + $card-title-margin;\n overflow: hidden;\n\n &.no-host-name,\n &.no-context {\n max-height: 5 * $card-text-line-height + $card-title-margin;\n }\n\n &.no-host-name.no-context {\n max-height: 6 * $card-text-line-height + $card-title-margin;\n }\n\n &:not(.no-description) .card-title {\n max-height: 3 * $card-text-line-height;\n overflow: hidden;\n }\n }\n\n .card-host-name {\n color: var(--newtab-text-secondary-color);\n font-size: 10px;\n overflow: hidden;\n padding-bottom: 4px;\n text-overflow: ellipsis;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n .card-host-name.alternate { display: none; }\n\n .card-title {\n font-size: 14px;\n font-weight: 600;\n line-height: $card-text-line-height;\n margin: 0 0 $card-title-margin;\n word-wrap: break-word;\n }\n\n .card-description {\n font-size: 12px;\n line-height: $card-text-line-height;\n margin: 0;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .card-context {\n bottom: 0;\n color: var(--newtab-text-secondary-color);\n display: flex;\n font-size: 11px;\n offset-inline-start: 0;\n padding: 9px 16px 9px 14px;\n position: absolute;\n }\n\n .card-context-icon {\n fill: var(--newtab-text-secondary-color);\n height: 22px;\n margin-inline-end: 6px;\n }\n\n .card-context-label {\n flex-grow: 1;\n line-height: 22px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.normal-cards {\n .card-outer {\n // Wide layout styles\n @media (min-width: $break-point-widest) {\n $line-height: 23px;\n height: $card-height-large;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-large;\n }\n\n .card-details {\n padding: 13px 16px 12px;\n }\n\n .card-text {\n max-height: 6 * $line-height + $card-title-margin;\n }\n\n .card-host-name {\n font-size: 12px;\n padding-bottom: 5px;\n }\n\n .card-title {\n font-size: 17px;\n line-height: $line-height;\n margin-bottom: 0;\n }\n\n .card-text:not(.no-description) {\n .card-title {\n max-height: 3 * $line-height;\n }\n }\n\n .card-description {\n font-size: 15px;\n line-height: $line-height;\n }\n\n .card-context {\n bottom: 4px;\n font-size: 14px;\n }\n }\n }\n}\n\n.compact-cards {\n $card-detail-vertical-spacing: 12px;\n $card-title-font-size: 12px;\n\n .card-outer {\n height: $card-height-compact;\n\n .card-preview-image-outer {\n height: $card-preview-image-height-compact;\n }\n\n .card-details {\n padding: $card-detail-vertical-spacing 16px;\n }\n\n .card-host-name {\n line-height: 10px;\n }\n\n .card-text {\n .card-title,\n &:not(.no-description) .card-title {\n font-size: $card-title-font-size;\n line-height: $card-title-font-size + 1;\n max-height: $card-title-font-size + 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .card-description {\n display: none;\n }\n\n .card-context {\n $icon-size: 16px;\n $container-size: 32px;\n background-color: var(--newtab-card-background-color);\n border-radius: $container-size / 2;\n clip-path: inset(-1px -1px $container-size - ($card-height-compact - $card-preview-image-height-compact - 2 * $card-detail-vertical-spacing));\n height: $container-size;\n width: $container-size;\n padding: ($container-size - $icon-size) / 2;\n top: $card-preview-image-height-compact - $icon-size;\n offset-inline-end: 12px;\n offset-inline-start: auto;\n\n &::after {\n border: 1px solid var(--newtab-card-hairline-color);\n border-bottom: 0;\n border-radius: ($container-size / 2) + 1 ($container-size / 2) + 1 0 0;\n content: '';\n position: absolute;\n height: ($container-size + 2) / 2;\n width: $container-size + 2;\n top: -1px;\n left: -1px;\n }\n\n .card-context-icon {\n margin-inline-end: 0;\n height: $icon-size;\n width: $icon-size;\n\n &.icon-bookmark-added {\n fill: $bookmark-icon-fill;\n }\n\n &.icon-download {\n fill: $download-icon-fill;\n }\n\n &.icon-pocket {\n fill: $pocket-icon-fill;\n }\n }\n\n .card-context-label {\n display: none;\n }\n }\n }\n\n @media not all and (min-width: $break-point-widest) {\n .hide-for-narrow {\n display: none;\n }\n }\n}\n",
".manual-migration-container {\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n line-height: 15px;\n margin-bottom: $section-spacing;\n text-align: center;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n text-align: left;\n }\n\n p {\n margin: 0;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: flex;\n justify-content: space-between;\n }\n }\n\n .icon {\n display: none;\n @media (min-width: $break-point-medium) {\n align-self: center;\n display: block;\n fill: var(--newtab-icon-secondary-color);\n margin-inline-end: 6px;\n }\n }\n}\n\n.manual-migration-actions {\n border: 0;\n display: block;\n flex-wrap: nowrap;\n\n @media (min-width: $break-point-medium) {\n display: flex;\n justify-content: space-between;\n padding: 0;\n }\n\n button {\n align-self: center;\n height: 26px;\n margin: 0;\n margin-inline-start: 20px;\n padding: 0 12px;\n }\n}\n",
".collapsible-section {\n padding: $section-vertical-padding $section-horizontal-padding;\n transition-delay: 100ms;\n transition-duration: 100ms;\n transition-property: background-color;\n\n .section-title {\n font-size: $section-title-font-size;\n font-weight: bold;\n margin: 0;\n text-transform: uppercase;\n\n span {\n color: var(--newtab-section-header-text-color);\n display: inline-block;\n fill: var(--newtab-section-header-text-color);\n vertical-align: middle;\n }\n\n .click-target {\n cursor: pointer;\n vertical-align: top;\n white-space: nowrap;\n }\n\n .collapsible-arrow {\n margin-inline-start: 8px;\n margin-top: -1px;\n }\n }\n\n .section-top-bar {\n height: 19px;\n margin-bottom: 13px;\n position: relative;\n\n .context-menu-button {\n background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n border: 0;\n cursor: pointer;\n fill: var(--newtab-section-header-text-color);\n height: 100%;\n offset-inline-end: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n transition-duration: 200ms;\n transition-property: opacity;\n width: $context-menu-button-size;\n\n &:-moz-any(:active, :focus, :hover) {\n fill: $grey-90;\n opacity: 1;\n }\n }\n\n .context-menu {\n top: 16px;\n }\n\n @media (max-width: $break-point-widest + $card-width * 1.5) {\n @include context-menu-open-left;\n }\n }\n\n &:hover,\n &.active {\n .section-top-bar {\n .context-menu-button {\n opacity: 1;\n }\n }\n }\n\n &.active {\n background: var(--newtab-element-hover-color);\n border-radius: 4px;\n\n .section-top-bar {\n .context-menu-button {\n fill: var(--newtab-section-active-contextmenu-color);\n }\n }\n }\n\n .section-disclaimer {\n $max-button-width: 130px;\n $min-button-height: 26px;\n\n color: var(--newtab-text-conditional-color);\n font-size: 13px;\n margin-bottom: 16px;\n position: relative;\n\n .section-disclaimer-text {\n display: inline-block;\n min-height: $min-button-height;\n width: calc(100% - #{$max-button-width});\n\n @media (max-width: $break-point-medium) {\n width: $card-width;\n }\n }\n\n a {\n color: var(--newtab-link-primary-color);\n font-weight: bold;\n padding-left: 3px;\n }\n\n button {\n background: var(--newtab-button-secondary-color);\n border: 1px solid $grey-40;\n border-radius: 4px;\n cursor: pointer;\n margin-top: 2px;\n max-width: $max-button-width;\n min-height: $min-button-height;\n offset-inline-end: 0;\n\n &:hover:not(.dismiss) {\n box-shadow: $shadow-primary;\n transition: box-shadow 150ms;\n }\n\n @media (min-width: $break-point-small) {\n position: absolute;\n }\n }\n }\n\n .section-body-fallback {\n height: $card-height;\n }\n\n .section-body {\n // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n $horizontal-padding: 7px;\n margin: 0 (-$horizontal-padding);\n padding: 0 $horizontal-padding;\n\n &.animating {\n overflow: hidden;\n pointer-events: none;\n }\n }\n\n &.animation-enabled {\n .section-title {\n .collapsible-arrow {\n transition: transform 0.5s $photon-easing;\n }\n }\n\n .section-body {\n transition: max-height 0.5s $photon-easing;\n }\n }\n\n &.collapsed {\n .section-body {\n max-height: 0;\n overflow: hidden;\n }\n }\n}\n",
"\n.asrouter-admin {\n $border-color: var(--newtab-border-secondary-color);\n $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n max-width: 996px;\n margin: 0 auto;\n font-size: 14px;\n // Reset .outer-wrapper styles\n display: inherit;\n padding: 0 0 92px;\n\n h1 {\n font-weight: 200;\n font-size: 32px;\n }\n\n table {\n border-collapse: collapse;\n width: 100%;\n }\n\n .message-item {\n &:first-child td {\n border-top: 1px solid $border-color;\n }\n\n td {\n vertical-align: top;\n border-bottom: 1px solid $border-color;\n padding: 8px;\n\n &:first-child {\n border-left: 1px solid $border-color;\n }\n\n &:last-child {\n border-right: 1px solid $border-color;\n }\n }\n\n &.current {\n .message-id span {\n background: $yellow-50;\n padding: 2px 5px;\n\n .dark-theme & {\n color: $black;\n }\n }\n }\n\n &.blocked {\n .message-id,\n .message-summary {\n opacity: 0.5;\n }\n\n .message-id {\n opacity: 0.5;\n }\n }\n\n .message-id {\n font-family: $monospace;\n font-size: 12px;\n }\n }\n\n pre {\n background: var(--newtab-textbox-background-color);\n margin: 0;\n padding: 8px;\n font-size: 12px;\n max-width: 750px;\n overflow: auto;\n font-family: $monospace;\n }\n}\n",
".ASRouterButton {\n white-space: nowrap;\n border-radius: 4px;\n border: 1px solid var(--newtab-border-secondary-color);\n background-color: var(--newtab-button-secondary-color);\n font-family: inherit;\n padding: 8px 15px;\n margin-inline-start: 12px;\n color: inherit;\n .tall & {\n margin-inline-start: 20px;\n }\n}\n",
".SnippetBaseContainer {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: var(--newtab-snippets-background-color);\n color: var(--newtab-text-primary-color);\n font-size: 12px;\n line-height: 16px;\n border-top: 1px solid var(--newtab-snippets-hairline-color);\n box-shadow: $shadow-secondary;\n display: flex;\n align-items: center;\n\n .innerWrapper {\n margin: 0 auto;\n display: flex;\n align-items: center;\n padding: 12px $section-horizontal-padding;\n\n // This is to account for the block button on smaller screens\n padding-inline-end: 36px;\n @media (min-width: $break-point-large) {\n padding-inline-end: $section-horizontal-padding;\n }\n\n max-width: $wrapper-max-width-large;\n @media (min-width: $break-point-widest) {\n max-width: $wrapper-max-width-widest;\n }\n }\n\n .blockButton {\n display: none;\n background: none;\n border: 0;\n position: absolute;\n top: 50%;\n offset-inline-end: 12px;\n height: 16px;\n width: 16px;\n background-image: url('resource://activity-stream/data/content/assets/glyph-dismiss-16.svg');\n -moz-context-properties: fill;\n fill: var(--newtab-icon-primary-color);\n opacity: 0.5;\n margin-top: -8px;\n padding: 0;\n cursor: pointer;\n\n @media (min-width: 766px) {\n offset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n}\n",
- ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 100000;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 100001;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
+ ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\n}\n.modalOverlayOuter {\n background: $white;\n opacity: 0.93;\n height: 100%;\n position: fixed;\n top: 0;\n width: 100%;\n display: none;\n z-index: 1100;\n\n &.active {\n display: block;\n }\n}\n\n.modalOverlayInner {\n width: 960px;\n height: 510px;\n position: fixed;\n top: calc(50% - 255px); // halfway down minus half the height of the modal\n left: calc(50% - 480px); // halfway across minus half the width of the modal\n background: $white;\n box-shadow: 0 1px 15px 0 $black-30;\n border-radius: 4px;\n display: none;\n z-index: 1101;\n\n\n // modal takes over entire screen\n @media(max-width: 960px) {\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n box-shadow: none;\n border-radius: 0;\n }\n\n // if modal is short enough, add a vertical scroll bar\n @media(max-width: 850px) and (max-height: 730px) {\n overflow-y: scroll;\n }\n\n // if modal is narrow enough, add a vertical scroll bar\n @media(max-width: 650px) and (max-height: 600px) {\n overflow-y: scroll;\n }\n\n &.active {\n display: block;\n }\n\n h2 {\n color: $grey-60;\n text-align: center;\n font-weight: 200;\n margin-top: 30px;\n font-size: 28px;\n line-height: 37px;\n letter-spacing: -0.13px;\n\n @media(max-width: 960px) {\n margin-top: 100px;\n }\n\n @media(max-width: 850px) {\n margin-top: 30px;\n }\n }\n\n .footer {\n border-top: 1px solid $grey-30;\n height: 70px;\n width: 100%;\n position: absolute;\n bottom: 0;\n text-align: center;\n background-color: $white;\n\n // if modal is short enough, footer becomes sticky\n @media(max-width: 850px) and (max-height: 730px) {\n position: sticky;\n }\n\n // if modal is narrow enough, footer becomes sticky\n @media(max-width: 650px) and (max-height: 600px) {\n position: sticky;\n }\n\n .modalButton {\n margin-top: 20px;\n width: 150px;\n height: 30px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n }\n }\n}\n",
".SimpleSnippet {\n &.tall {\n padding: 27px 0;\n }\n\n .title {\n display: inline;\n font-size: inherit;\n margin: 0;\n }\n\n .titleIcon {\n background-repeat: no-repeat;\n background-size: 14px;\n height: 16px;\n width: 16px;\n margin-top: 2px;\n margin-inline-end: 2px;\n display: inline-block;\n vertical-align: top;\n }\n\n .body {\n display: inline;\n margin: 0;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterAnchor {\n color: inherit;\n text-decoration: underline;\n }\n}\n",
- ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
+ ".onboardingMessageContainer {\n display: grid;\n grid-column-gap: 21px;\n grid-template-columns: auto auto auto;\n padding-left: 30px;\n padding-right: 30px;\n\n // at 850px, the cards go from vertical layout to horizontal layout\n @media(max-width: 850px) {\n grid-template-columns: none;\n grid-template-rows: auto auto auto;\n padding-left: 110px;\n padding-right: 110px;\n }\n}\n\n.onboardingMessage {\n height: 340px;\n text-align: center;\n padding: 13px;\n font-weight: 200;\n\n // at 850px, img floats left, content floats right next to it\n @media(max-width: 850px) {\n height: 170px;\n text-align: left;\n padding: 10px;\n border-bottom: 1px solid #D8D8D8;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: none;\n }\n\n .onboardingContent {\n padding-left: 10px;\n height: 100%;\n\n > span > h3 {\n margin-top: 0;\n margin-bottom: 4px;\n font-weight: 400;\n }\n\n > span > p {\n margin-top: 0;\n line-height: 22px;\n font-size: 15px;\n }\n }\n }\n\n @media(max-width: 650px) {\n height: 250px;\n }\n\n .onboardingMessageImage {\n height: 100px;\n width: 120px;\n background-size: 120px;\n background-position: center center;\n background-repeat: no-repeat;\n display: inline-block;\n vertical-align: middle;\n\n\n @media(max-width: 850px) {\n height: 75px;\n min-width: 80px;\n background-size: 80px;\n }\n\n &.addons {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-addons@2x.png\");\n }\n\n &.privatebrowsing {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-privatebrowsing@2x.png\");\n }\n\n &.screenshots {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-screenshots@2x.png\");\n }\n\n &.gift {\n background-image: url(\"resource://activity-stream/data/content/assets/illustration-gift@2x.png\");\n }\n }\n\n .onboardingContent {\n height: 175px;\n\n > span > h3 {\n color: $grey-90;\n margin-bottom: 8px;\n font-weight: 400;\n }\n\n > span > p {\n color: $grey-60;\n margin-top: 0;\n height: 130px;\n margin-bottom: 12px;\n font-size: 15px;\n line-height: 22px;\n\n @media(max-width: 650px) {\n margin-bottom: 0px;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: none;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px 0;\n font-size: 15px;\n\n // at 850px, the button shimmies down and to the right\n @media(max-width: 850px) {\n float: right;\n margin-top: -60px;\n margin-right: -10px;\n }\n\n @media(max-width: 650px) {\n float: none;\n margin-top: 30px;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: #D8D8D8;\n margin-top: 40px;\n margin-left: 215px;\n\n // at 850px, the line goes from vertical to horizontal\n @media(max-width: 850px) {\n content: none;\n }\n }\n\n &:last-child::before {\n content: none;\n }\n}\n"
],
"names": [],
- "mappings": "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"
+ "mappings": ";AAAA,iCAAiC;AEAjC,AAAA,IAAI,CAAC;EACH,UAAU,EAAE,UAAU,GACvB;;AAED,AAAA,CAAC;AACD,AAAA,CAAC,AAAA,QAAQ;AACT,AAAA,CAAC,AAAA,OAAO,CAAC;EACP,UAAU,EAAE,OAAO,GACpB;;AAED,AAAA,CAAC,AAAA,kBAAkB,CAAC;EAClB,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,MAAM;AACN,AAAA,KAAK,CAAC;EACJ,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,OAAO,GACnB;;CAED,AAAA,AAAA,MAAC,AAAA,EAAQ;EACP,OAAO,EAAE,eAAe,GACzB;;AEPD,AAAA,IAAI,CAAC;EAEH,yBAAyB,EDjBjB,OAAO;ECkBf,6BAA6B,EDfrB,OAAO;ECgBf,+BAA+B,EDjBvB,OAAO;ECkBf,6BAA6B,EDvBrB,OAAO;ECwBf,+BAA+B,EAAE,OAAO;EACxC,6BAA6B,EDpBrB,wBAAO;ECqBf,4BAA4B,EDtBpB,OAAO;ECuBf,2BAA2B,EDhBnB,qBAAO;ECiBf,6BAA6B,EDjBrB,qBAAO;ECkBf,4BAA4B,EDxBpB,OAAO;ECyBf,+BAA+B,EDKzB,kBAAI;ECJV,2BAA2B,ED/BnB,OAAO;ECgCf,6BAA6B,EDpBrB,OAAO;ECqBf,+BAA+B,EDzBvB,OAAO;EC0Bf,2BAA2B,EDvBnB,OAAO;ECwBf,6BAA6B,ED5BrB,OAAO;EC6Bf,iCAAiC,EDQ3B,IAAI;ECPV,uBAAuB,ED1Bf,qBAAO;ECTf,4BAA4B,EDFpB,OAAO;ECGf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDET,OAAO,ECFW,CAAC,CAAC,CAAC,CAAC,CAAC,CDmHX,GAAG,CAjHf,qBAAO;ECyCf,qCAAqC,EDtC7B,OAAO;ECuCf,iCAAiC,EDE3B,IAAI;ECCV,oBAAoB,EDDd,IAAI;ECEV,sBAAsB,ED1Cd,wBAAO;EC6Cf,kCAAkC,ED1C1B,OAAO;EC2Cf,sCAAsC,ED3C9B,OAAO;EC4Cf,yCAAyC,EDxCjC,OAAO;EC2Cf,4BAA4B,EAAE,WAAW;EACzC,8BAA8B,EDXxB,IAAI;ECYV,qCAAqC,EDrD7B,OAAO;ECsDf,0BAA0B,ED9ClB,qBAAO;ECiDf,kCAAkC,EDhB5B,IAAI;ECiBV,6BAA6B,EAAE,KAAK,CApDnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EAqD/D,6BAA6B,EAAE,OAAO;EAGtC,kCAAkC,ED5D1B,OAAO;EC6Df,8BAA8B,EDtBxB,IAAI;ECuBV,4BAA4B,EDhCtB,kBAAI;ECiCV,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDzDzB,qBAAO;EC4Df,kCAAkC,ED3B5B,IAAI;EC4BV,gCAAgC,EAAE,WAAW,GAC9C;;AAGD,AAAA,WAAW,CAAC;EAEV,yBAAyB,EDpEjB,OAAO;ECqEf,6BAA6B,ED5ErB,wBAAO;EC6Ef,+BAA+B,ED7EvB,wBAAO;EC8Ef,6BAA6B,EDjFrB,OAAO;ECkFf,+BAA+B,EDzEvB,OAAO;EC0Ef,6BAA6B,EDhFrB,wBAAO;ECiFf,4BAA4B,EDjFpB,wBAAO;ECkFf,2BAA2B,EDlFnB,wBAAO;ECmFf,6BAA6B,EDnFrB,wBAAO;ECoFf,4BAA4B,EDpFpB,wBAAO;ECqFf,+BAA+B,EDrFvB,wBAAO;ECsFf,2BAA2B,ED3FnB,OAAO;EC4Ff,6BAA6B,ED5CjB,OAAO;EC6CnB,+BAA+B,EDxFvB,OAAO;ECyFf,2BAA2B,EDzFnB,OAAO;EC0Ff,6BAA6B,ED1FrB,wBAAO;EC2Ff,iCAAiC,EDrFzB,OAAO;ECsFf,uBAAuB,ED5Ff,wBAAO;ECDf,4BAA4B,EDJpB,OAAO;ECKf,gCAAgC,EALxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDAT,OAAO,ECAW,CAAC,CAAC,CAAC,CAAC,CAAC,CDmHX,GAAG,CAnHf,uBAAO;ECqGf,qCAAqC,ED3F7B,OAAO;EC4Ff,iCAAiC,ED1FzB,OAAO;EC6Ff,oBAAoB,ED7FZ,OAAO;EC8Ff,sBAAsB,ED7Fd,qBAAO;ECgGf,kCAAkC,EDxG1B,wBAAO;ECyGf,sCAAsC,EDzG9B,wBAAO;EC0Gf,yCAAyC,EDjEnC,IAAI;ECoEV,4BAA4B,ED7GpB,wBAAO;EC8Gf,8BAA8B,EDxGtB,OAAO;ECyGf,qCAAqC,ED1G7B,OAAO;EC2Gf,0BAA0B,EDhHlB,wBAAO;ECmHf,kCAAkC,ED7G1B,OAAO;EC8Gf,6BAA6B,EAAE,IAAI;EACnC,6BAA6B,EDrHrB,wBAAO;ECwHf,kCAAkC,EDnH1B,OAAO;ECoHf,8BAA8B,EDnHtB,OAAO;ECoHf,4BAA4B,ED1HpB,wBAAO;EC2Hf,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDnHzB,qBAAO;ECsHf,kCAAkC,EDxH1B,OAAO;ECyHf,gCAAgC,EDtF1B,wBAAI,GCuFX;;ACtID,AAAA,KAAK,CAAC;EACJ,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EF+DL,IAAI;EE9Dd,uBAAuB,EAAE,IAAI;EAC7B,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,gCAAgC;EACtC,MAAM,EF2DI,IAAI;EE1Dd,cAAc,EAAE,MAAM;EACtB,KAAK,EFyDK,IAAI,GEiHf;EAnLD,AAWE,KAXG,AAWH,YAAa,CAAC;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAbH,AAeE,KAfG,AAeH,kBAAmB,CAAC;IAClB,iBAAiB,EAAE,GAAG,GACvB;EAjBH,AAmBE,KAnBG,AAmBH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yCAAyC,GAC5D;EArBH,AAuBE,KAvBG,AAuBH,qBAAsB,CAAC;IACrB,gBAAgB,EAAE,gDAAgD,GACnE;EAzBH,AA2BE,KA3BG,AA2BH,iBAAkB,CAAC;IACjB,IAAI,EAAE,kCAAkC;IACxC,gBAAgB,EAAE,iDAAwC,GAC3D;EA9BH,AAgCE,KAhCG,AAgCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAlCH,AAoCE,KApCG,AAoCH,YAAa,CAAC;IACZ,gBAAgB,EAAE,6CAA6C,GAChE;EAtCH,AAwCE,KAxCG,AAwCH,kBAAmB,CAAC;IAClB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,uDAA8C;IAChE,eAAe,EFyBA,IAAI;IExBnB,MAAM,EFwBS,IAAI;IEvBnB,KAAK,EFuBU,IAAI,GEtBpB;EA9CH,AAgDE,KAhDG,AAgDH,aAAc,CAAC;IACb,gBAAgB,EAAE,kDAAyC,GAC5D;EAlDH,AAoDE,KApDG,AAoDH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EAtDH,AAwDE,KAxDG,AAwDH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EA1DH,AA4DE,KA5DG,AA4DH,gBAAiB,CAAC;IAEhB,gBAAgB,EAAE,oDAA2C,GAC9D;IA/DH,AFsLE,KEtLG,AA4DH,gBAAiB,AF0HpB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EExLH,AAiEE,KAjEG,AAiEH,wBAAyB,CAAC;IACxB,gBAAgB,EAAE,gDAAgD,GACnE;EAnEH,AAqEE,KArEG,AAqEH,cAAe,CAAC;IACd,gBAAgB,EAAE,yCAAyC,GAC5D;EAvEH,AAyEE,KAzEG,AAyEH,SAAU,CAAC;IAET,gBAAgB,EAAE,8CAAqC,GACxD;IA5EH,AFsLE,KEtLG,AAyEH,SAAU,AF6Gb,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EExLH,AA8EE,KA9EG,AA8EH,WAAY,CAAC;IAEX,gBAAgB,EAAE,gDAAuC,GAC1D;IAjFH,AFsLE,KEtLG,AA8EH,WAAY,AFwGf,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EExLH,AAmFE,KAnFG,AAmFH,UAAW,CAAC;IACV,gBAAgB,EAAE,+CAAsC,GACzD;EArFH,AAuFE,KAvFG,AAuFH,YAAa,CAAC;IACZ,gBAAgB,EAAE,iDAAwC,GAC3D;EAzFH,AA2FE,KA3FG,AA2FH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,wCAAwC,GAC3D;EA7FH,AA+FE,KA/FG,AA+FH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C;IAC5D,SAAS,EAAE,eAAe,GAC3B;EAlGH,AAoGE,KApGG,AAoGH,SAAU,CAAC;IACT,gBAAgB,EAAE,wCAAwC,GAC3D;EAtGH,AAwGE,KAxGG,AAwGH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA1GH,AA4GE,KA5GG,AA4GH,eAAgB,CAAC;IAEf,gBAAgB,EAAE,8CAAqC;IACvD,eAAe,EF5CC,IAAI;IE6CpB,MAAM,EF7CU,IAAI;IE8CpB,KAAK,EF9CW,IAAI,GE+CrB;IAlHH,AFsLE,KEtLG,AA4GH,eAAgB,AF0EnB,IAAS,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;EExLH,AAoHE,KApHG,AAoHH,WAAY,CAAC;IACX,gBAAgB,EAAE,sCAAsC,GACzD;EAtHH,AAwHE,KAxHG,AAwHH,cAAe,CAAC;IACd,gBAAgB,EAAE,wEAAwE,GAC3F;EA1HH,AA4HE,KA5HG,AA4HH,UAAW,CAAC;IACV,gBAAgB,EAAE,0CAA0C,GAC7D;EA9HH,AAgIE,KAhIG,AAgIH,eAAgB,CAAC;IACf,gBAAgB,EAAE,oDAA2C,GAC9D;EAlIH,AAoIE,KApIG,AAoIH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,uDAA8C,GACjE;EAtIH,AAwIE,KAxIG,AAwIH,gBAAiB,CAAC;IAChB,gBAAgB,EAAE,qDAA4C,GAC/D;EA1IH,AA4IE,KA5IG,AA4IH,oBAAqB,CAAC;IACpB,gBAAgB,EAAE,yDAAgD,GACnE;EA9IH,AAgJE,KAhJG,AAgJH,0BAA2B,CAAC;IAC1B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EF/EC,IAAI;IEgFpB,MAAM,EFhFU,IAAI;IEiFpB,KAAK,EFjFW,IAAI,GEkFrB;EArJH,AAuJE,KAvJG,AAuJH,6BAA8B,CAAC;IAC7B,gBAAgB,EAAE,yDAAgD;IAClE,eAAe,EFtFC,IAAI;IEuFpB,MAAM,EFvFU,IAAI;IEwFpB,SAAS,EAAE,cAAc;IACzB,KAAK,EFzFW,IAAI,GE8FrB;IAjKH,AA8JI,KA9JC,AAuJH,6BAA8B,AAO5B,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,aAAa,GACzB;EAhKL,AAmKE,KAnKG,AAmKH,kBAAmB,CAAC;IAClB,gBAAgB,EAAE,yDAAgD;IAClE,SAAS,EAAE,cAAc,GAC1B;EAtKH,AAwKE,KAxKG,AAwKH,SAAU,CAAC;IACT,gBAAgB,EAAE,8CAAqC,GACxD;EA1KH,AA4KE,KA5KG,AA4KH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;EA9KH,AAgLE,KAhLG,AAgLH,cAAe,CAAC;IACd,gBAAgB,EAAE,mDAA0C,GAC7D;;AJ7KH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI,GACb;;AAED,AAAA,IAAI;AACJ,AAAA,KAAK,CAAC;EACJ,UAAU,EAAE,KAAK,GAClB;;AAED,AAAA,IAAI,CAAC;EACH,gBAAgB,EAAE,8BAA8B;EAChD,WAAW,EAAE,qFAAqF;EAClG,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM,GACnB;;AAED,AAAA,EAAE;AACF,AAAA,EAAE,CAAC;EACD,WAAW,EAAE,MAAM,GACpB;;AAED,AAAA,CAAC,CAAC;EACA,eAAe,EAAE,IAAI,GACtB;;AAGD,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,gBAAgB;EACtB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAG,GACX;;AAED,AAAA,aAAa,CAAC;EACZ,MAAM,EGhCW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiC/D,aAAa,EEaC,GAAG;EFZjB,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,cAAc,EAAE,IAAI;EACpB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG,GACb;;AAED,UAAU,CAAV,MAAU;EACR,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;EAGZ,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;;AAId,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB,GAMjC;EARD,AAIE,aAJW,AAIX,GAAI,CAAC;IACH,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,CAAC,GACX;;AAGH,AAAA,QAAQ,CAAC;EACP,UAAU,EGhEO,GAAG,CAAC,KAAK,CAAC,oCAAoC;EHiE/D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,WAAW,GACrB;;AAGD,AAAA,OAAO;AACP,AAAS,QAAD,CAAC,MAAM,CAAC;EACd,gBAAgB,EAAE,oCAAoC;EACtD,MAAM,EG9ES,GAAG,CAAC,KAAK,CAAC,kCAAkC;EH+E3D,aAAa,EAAE,GAAG;EAClB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,SAAS;EAClB,WAAW,EAAE,MAAM,GAsBpB;EA/BD,AAWE,OAXK,AAWN,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ;EAVtB,AAAS,QAAD,CAAC,MAAM,AAUd,MAAQ,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;IACpB,UAAU,EGhFG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IHiF9D,UAAU,EAAE,gBAAgB,GAC7B;EAdH,AAgBE,OAhBK,AAgBN,QAAU;EAfX,AAAS,QAAD,CAAC,MAAM,AAed,QAAU,CAAC;IACR,gBAAgB,EAAE,WAAW;IAC7B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,SAAS,GAC3B;EArBH,AAwBE,OAxBK,AAwBN,QAAU,EAxBX,AAyBE,OAzBK,AAyBN,KAAO;EAxBR,AAAS,QAAD,CAAC,MAAM,AAuBd,QAAU;EAvBX,AAAS,QAAD,CAAC,MAAM,AAwBd,KAAO,CAAC;IACL,gBAAgB,EAAE,kCAAkC;IACpD,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,kCAAkC;IACpD,KAAK,EElED,IAAI;IFmER,mBAAmB,EAAE,IAAI,GAC1B;;AAGH,AACE,KADG,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,GADJ,AAEE,KAFG,CAEH,AAAA,IAAE,CAAK,QAAQ,AAAb,EAAe;EACf,aAAa,EEhED,GAAG,GFiEhB;;AAIH,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,CAAC,GACX;;AKhID,AAAA,cAAc,CAAC;EACb,KAAK,EAAE,gCAAgC;EACvC,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,IAA8C,CHuD3C,IAAI,CAAJ,IAAI,GG9CjB;EAdD,AAOE,cAPY,AAOZ,aAAc,CAAC;IACb,OAAO,EAAE,KAAK,GACf;EATH,AAWE,cAXY,CAWZ,CAAC,CAAC;IACA,KAAK,EAAE,gCAAgC,GACxC;;AAGH,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,IAAI;EAGZ,cAAc,EAAE,IAA4D;EAC5E,KAAK,EHiDiB,KAAmE,GG3B1F;EApBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,IAAI,CAAC;MAQD,KAAK,EH+CiB,KAAmE,GG5B5F;EAhBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAX1B,AAAA,IAAI,CAAC;MAYD,KAAK,EH4CkB,KAAmE,GG7B7F;EAZC,MAAM,EAAE,SAAS,EAAE,KAAK;IAf1B,AAAA,IAAI,CAAC;MAgBD,KAAK,EHyCiB,KAAmE,GG9B5F;EARC,MAAM,EAAE,SAAS,EAAE,MAAM;IAnB3B,AAAA,IAAI,CAAC;MAoBD,KAAK,EHsCkB,MAAmE,GG/B7F;EA3BD,AAuBE,IAvBE,CAuBF,OAAO,CAAC;IACN,aAAa,EHuBC,IAAoC;IGtBlD,QAAQ,EAAE,QAAQ,GACnB;;AAGH,AAAA,sBAAsB,CAAC;EAErB,MAAM,EAAE,KAAK,GACd;;;AAED,AAUI,aAVS,CAUT,cAAc;AAVlB,AAWmB,aAXN,CAWT,cAAc,CAAC,QAAQ,AAAA,aAAa;AAXxC,AAYI,aAZS,CAYT,MAAM,CAHc;EACpB,OAAO,EAAE,CAAC,GACX;;;AAXH,AAeI,aAfS,AAaX,GAAI,CAEF,cAAc;AAflB,AAgBmB,aAhBN,AAaX,GAAI,CAGF,cAAc,CAAC,QAAQ,AAAA,aAAa;AAhBxC,AAiBI,aAjBS,AAaX,GAAI,CAIF,MAAM,CAHgB;EACpB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,wBAAwB,CAAC;EACvB,OAAO,EAAE,CAAC,CHViB,IAAI,GGWhC;;AAED,AACE,aADW,CACX,MAAM,CAAC;EACL,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,OAAO;EACf,IAAI,EAAE,gCAAgC;EACtC,iBAAiB,EAAE,IAAI;EACvB,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,IAAI,GAUd;EApBH,AACE,aADW,CACX,MAAM,AAWJ,MAAO,EAZX,AACE,aADW,CACX,MAAM,AAYJ,MAAO,CAAC;IACN,gBAAgB,EAAE,iCAAiC,GACpD;EAfL,AACE,aADW,CACX,MAAM,AAgBJ,OAAQ,CAAC;IACP,gBAAgB,EAAE,kCAAkC,GACrD;;AC7FL,AAAA,kBAAkB,CAAC;EACjB,WAAW,EAAE,MAAM;EACnB,aAAa,EJuDC,GAAG;EItDjB,UAAU,EAAE,KAAK,CHSA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;EGR/D,KAAK,EAAE,oCAAoC;EAC3C,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EJsGgB,IAAI;EIrG7B,eAAe,EAAE,MAAM;EACvB,aAAa,EAAE,MAAM;EACrB,WAAW,EJoGgB,GAAG,GI9F/B;EAhBD,AAYE,kBAZgB,CAYhB,CAAC,CAAC;IACA,KAAK,EAAE,oCAAoC;IAC3C,eAAe,EAAE,SAAS,GAC3B;;ACJH,AAAA,UAAU,CAAC;EAGT,aAAa,EAAE,GAA4E,GAC5F;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC,CAVQ,KAAgB;EAWjC,OAAO,EAAE,CAAC,GA4EX;EAzEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,ALmJE,eKnJa,CAOX,UAAW,CAAA,IAAI,EL4IjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,IAAI;MACvB,mBAAmB,EA5GT,KAAI,GA6Gf;IKxJH,AL4JE,eK5Ja,CAWX,UAAW,CAAA,EAAE,ELiJf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKhJD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAjBjD,AL4JE,eK5Ja,CAkBX,UAAW,CAAA,IAAI,EL0IjB,aAAa;IK5Jf,AL4JE,eK5Ja,CAmBX,UAAW,CAAA,EAAE,ELyIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKxID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAzBjD,AL4JE,eK5Ja,CA0BX,UAAW,CAAA,EAAE,ELkIf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKnID,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IA9BjD,AL4JE,eK5Ja,CA+BX,UAAW,CAAA,IAAI,EL6HjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK5HD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IArClD,AL4JE,eK5Ja,CAsCX,UAAW,CAAA,EAAE,ELsHf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKvHD,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IA1ClD,AL4JE,eK5Ja,CA2CX,UAAW,CAAA,IAAI,ELiHjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKhHD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAjDnD,AL4JE,eK5Ja,CAkDX,UAAW,CAAA,EAAE,EL0Gf,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EK3GD,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAtDnD,AL4JE,eK5Ja,CAuDX,UAAW,CAAA,IAAI,ELqGjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EKrGD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;IA5DvC,AA6DI,eA7DW,CA6DX,gBAAgB,CAAC;MACf,OAAO,EAAE,IAAI,GACd;EA/DL,AAkEE,eAlEa,CAkEb,EAAE,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,CAAC,CAjFY,GAAG,GAkF3B;EApEH,AAwEM,eAxES,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAC9C,KAAK,CAAC;IL8BV,UAAU,EAAE,KAAK,CC3GA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;IDuGhE,UAAU,EAAE,gBAAgB,GK7BvB;EA1EP,AL4IE,eK5Ia,AAsEb,IAAM,CAAA,AAAA,WAAW,EACf,eAAe,AAAA,SAAU,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,ELqElD,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,QAAQ,GACpB;;AK7DH,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,CAAC,CA3FO,IAAgB;EA4FjC,OAAO,EAAE,YAAY,GA6JtB;EA/JD,AAKE,eALa,CAKb,eAAe,CAAC;IACd,QAAQ,EAAE,QAAQ,GAanB;IAnBH,AAQM,eARS,CAKb,eAAe,GAGX,CAAC,CAAC;MACF,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,IAAI,GAOd;MAlBL,AAcQ,eAdO,CAKb,eAAe,GAGX,CAAC,AAKD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;QLMZ,UAAU,EAAE,KAAK,CC3GA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EAKhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QDuGhE,UAAU,EAAE,gBAAgB,GKLrB;EAhBT,AL8BE,eK9Ba,CL8Bb,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC5HO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID6HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CAxF3B,qBAAO;IA2Hb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA9CkB,IAAI,GAoD5B;IKtDH,AL8BE,eK9Ba,CL8Bb,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EKrDL,AAuBE,eAvBa,CAuBb,KAAK,CAAC;IACJ,aAAa,EA1HS,GAAG;IA2HzB,UAAU,EAAE,KAAK,CJhHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,EIgHxB,yBAAyB;IAC9D,MAAM,EL7DE,IAAI;IK8DZ,QAAQ,EAAE,QAAQ;IAClB,KAAK,EL/DG,IAAI;IKkEZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,SAAS,GAK1B;IA1CH,AAuBE,eAvBa,CAuBb,KAAK,AAgBH,QAAS,CAAC;MACR,OAAO,EAAE,mBAAmB,GAC7B;EAzCL,AA4CE,eA5Ca,CA4Cb,WAAW,CAAC;IACV,gBAAgB,ELjGZ,IAAI;IKkGR,mBAAmB,EAAE,QAAQ;IAC7B,eAAe,EA9ID,KAAK;IA+InB,aAAa,EAlJS,GAAG;IAmJzB,UAAU,EAAE,KAAK,CJxIF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC;IIyI7D,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE,IAAI,GAKZ;IA7DH,AA4CE,eA5Ca,CA4Cb,WAAW,AAcT,OAAQ,CAAC;MACP,OAAO,EAAE,CAAC,GACX;EA5DL,AAgEE,eAhEa,CAgEb,cAAc,CAAC;IACb,gBAAgB,EAAE,uCAAuC;IACzD,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAtKS,GAAG;IAuKzB,UAAU,EAAE,kCAAkC;IAC9C,QAAQ,EAAE,QAAQ,GACnB;EAvEH,AAyEE,eAzEa,CAyEb,UAAU,CAAC;IACT,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI,GACZ;EA/EH,AAiFE,eAjFa,CAiFb,aAAa,CAAC;IACZ,eAAe,EA9KC,IAAI;IA+KpB,MAAM,EA9KY,IAAG;IA+KrB,MAAM,EAjLkB,IAAI;IAkL5B,iBAAiB,EAhLC,IAAG;IAiLrB,KAAK,EAnLmB,IAAI;IAsL5B,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,MAAM,GAKxB;IAjGH,AAiFE,eAjFa,CAiFb,aAAa,CAaX,AAAA,aAAE,AAAA,CAAc,QAAQ,CAAC;MACvB,OAAO,EAAE,mBAAmB,GAC7B;EAhGL,AAmGE,eAnGa,CAmGb,MAAM,CAAC;IACL,KAAK,EAAE,kCAAkC;IACzC,IAAI,EAAE,WAAW;IACjB,MAAM,EAvMe,IAAI;IAwMzB,WAAW,EAxMU,IAAI;IAyMzB,UAAU,EAAE,MAAM;IAClB,KAAK,EL5IG,IAAI;IK6IZ,QAAQ,EAAE,QAAQ,GAsBnB;IAhIH,AA4GI,eA5GW,CAmGb,MAAM,CASJ,KAAK,CAAC;MACJ,IAAI,EAAE,iCAAiC;MACvC,mBAAmB,EAAE,CAAC;MACtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI,GACV;IAjHL,AAmHI,eAnHW,CAmGb,MAAM,CAgBJ,IAAI,CAAC;MACH,MAAM,EArNa,IAAI;MAsNvB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,MAAM;MAChB,aAAa,EAAE,QAAQ;MACvB,WAAW,EAAE,MAAM,GACpB;IAzHL,AA4HM,eA5HS,CAmGb,MAAM,AAwBJ,OAAQ,CACN,IAAI,CAAC;MACH,OAAO,EAAE,MAAM,GAChB;EA9HP,AAkIE,eAlIa,CAkIb,YAAY,CAAC;IACX,gBAAgB,EAAE,+CAAsC,GACzD;EApIH,AAuII,eAvIW,AAsIb,YAAa,CACX,KAAK,CAAC;IACJ,UAAU,EAAE,KAAK,CJ/NJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GIgO5D;EAzIL,AA2II,eA3IW,AAsIb,YAAa,CAKX,WAAW,CAAC;IACV,OAAO,EAAE,IAAI,GACd;EA7IL,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,CAAC;IACJ,UAAU,EL9ON,OAAO;IK+OX,UAAU,EAAE,IAAI,GAMjB;IAzJL,AAqJM,eArJS,AAgJb,QAAS,CACP,KAAK,CAIH,CAAC,EArJP,AAiJI,eAjJW,AAgJb,QAAS,CACP,KAAK,AAKH,QAAS,CAAC;MACR,OAAO,EAAE,IAAI,GACd;EAxJP,AA2JI,eA3JW,AAgJb,QAAS,CAWP,MAAM,CAAC;IACL,UAAU,EAAE,MAAM,GACnB;;AAIL,AACE,sBADoB,CACpB,MAAM,CAAC;EACL,UAAU,EJpPK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EKyPb,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,MAAM;EACd,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,IAAI;EACT,KAAK,ELtMe,KAAmE,GKmNxF;EAXC,MAAM,EAAE,SAAS,EAAE,KAAK;IAV5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAUH,KAAK,ELxMe,KAAmE,GKkN1F;EAPC,MAAM,EAAE,SAAS,EAAE,KAAK;IAd5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAcH,KAAK,EL3MgB,KAAmE,GKiN3F;EAHC,MAAM,EAAE,SAAS,EAAE,KAAK;IAlB5B,AACE,sBADoB,CACpB,MAAM,CAAC;MAkBH,KAAK,EL9Me,KAAmE,GKgN1F;;AAGH,AAIE,aAJW,CAIX,qBAAqB,CAAC;EACpB,SAAS,EAAE,KAAiD;EAC5D,MAAM,EAAE,MAAM;EACd,OAAO,EALM,IAAI,GAmBlB;EArBH,AASI,aATS,CAIX,qBAAqB,CAKnB,eAAe,CAAC;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,QAAQ;IAChB,mBAAmB,EAVR,IAAI;IAWf,cAAc,EAAE,IAAI,GACrB;EAdL,AAgBI,aAhBS,CAIX,qBAAqB,CAYnB,cAAc,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,QAAQ,GACjB;;AApBL,AAuBE,aAvBW,CAuBX,mBAAmB,CAAC;EAClB,OAAO,EAAE,IAAI,GACd;;AAzBH,AA2BE,aA3BW,CA2BX,KAAK,CAAC;EACJ,SAAS,ELpOa,IAAI,GKqO3B;;AA7BH,AA+BE,aA/BW,CA+BX,aAAa,CAAC;EACZ,KAAK,EAAE,IAAI,GAuIZ;EAvKH,AAkCI,aAlCS,CA+BX,aAAa,CAGX,MAAM,CAAC;IACL,QAAQ,EAAE,QAAQ,GAQnB;IA3CL,AAqCM,aArCO,CA+BX,aAAa,CAGX,MAAM,CAGJ,iBAAiB,CAAC;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GACvB;EA1CP,AA8CM,aA9CO,CA+BX,aAAa,CAcX,IAAI,CACF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,aAAa,EAAE,IAAI,GACpB;EAhDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,EAAE;IACb,YAAY,EAAE,IAAI,GAMnB;IAzDP,AAkDM,aAlDO,CA+BX,aAAa,CAcX,IAAI,CAKF,KAAK,AAAA,IAAK,CAAA,AAAA,GAAG,CAGX,IAAM,CAAA,AAAA,kBAAkB,EAAE;MACxB,SAAS,EAAE,GAAG;MACd,UAAU,EAAE,KAAK,GAClB;EAxDT,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,CAAC;IACzB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO,GAKhB;IArEL,AA4DI,aA5DS,CA+BX,aAAa,CA6BX,0BAA0B,AAMxB,MAAO,CAAC;MACN,eAAe,EAAE,SAAS,GAC3B;EApEP,AAuEI,aAvES,CA+BX,aAAa,CAwCX,6BAA6B,CAAC;IAC5B,UAAU,EAAE,GAAG,GAkChB;IA1GL,AA0EM,aA1EO,CA+BX,aAAa,CAwCX,6BAA6B,CAG3B,kBAAkB,CAAC;MACjB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,MAAM;MAChB,QAAQ,EAAE,QAAQ;MAClB,SAAS,EAAE,gBAAgB;MAC3B,GAAG,EAAE,GAAG;MACR,iBAAiB,EAAE,GAAG,GACvB;IAlFP,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,CAAC;MASjB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,uBAAuB,EAAE,IAAI;MAC7B,IAAI,EL5XF,OAAO;MK6XT,gBAAgB,EAAE,mDAAmD;MACrE,SAAS,EAAE,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,GAK3D;;AAlBC,UAAU,CAAV,sBAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,kBAAkB;;AAGtC,UAAU,CAAV,0BAAU;EACR,AAAA,IAAI;IAAG,SAAS,EAAE,iBAAiB;MA5F7C,AAsFM,aAtFO,CA+BX,aAAa,CAwCX,6BAA6B,CAe3B,kBAAkB,AAgBhB,IAAM,CAAA,AAAA,GAAG,EAAE;QACT,cAAc,EAAE,0BAA0B,GAC3C;EAxGT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,gBAAgB,EAAE,sCAAsC;IACxD,MAAM,EJ9XC,GAAG,CAAC,KAAK,CAAC,4BAA4B;II+X7C,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI,GAYhB;IAhIP,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,CASA,MAAO,CAAC;MACN,MAAM,EJrYM,GAAG,CAAC,KAAK,CAAC,iCAAiC;MIsYvD,UAAU,EAAE,qCAAqC,GAClD;IAzHT,AA4GI,aA5GS,CA+BX,aAAa,CA6EX,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAcA,AAAA,QAAE,AAAA,EAAU;MACV,MAAM,EJ3YD,GAAG,CAAC,KAAK,CAAC,4BAA4B;MI4Y3C,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,GAAG,GACb;EA/HT,AAoIM,aApIO,CA+BX,aAAa,CAoGX,QAAQ,CACN,KAAK,CACH,AAAA,IAAE,CAAK,MAAM,AAAX,EAAa;IACb,MAAM,EJnZK,GAAG,CAAC,KAAK,CDCrB,OAAO;IKmZN,UAAU,EJlaV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CDeV,OAAO,ECfY,CAAC,CAAC,CAAC,CAAC,CAAC,CDmHX,GAAG,CApGhB,qBAAO,GKoZP;EAxIT,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,CAAC;IACb,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EL1ZP,OAAO;IK2ZV,aAAa,EAAE,GAAG;IAClB,KAAK,EL7XH,IAAI;IK8XN,mBAAmB,EAAE,GAAG;IACxB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,CAAC,GAiBX;IAtKL,AA4II,aA5IS,CA+BX,aAAa,CA6GX,cAAc,AAYZ,QAAS,CAAC;MACR,UAAU,ELraT,OAAO;MKsaR,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,IAAI;MACzB,QAAQ,EAAE,QAAQ;MAClB,WAAW,EAAE,MAAM;MACnB,GAAG,EAAE,IAAI;MACT,SAAS,EAAE,aAAa;MACxB,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,EAAE,GACZ;;AArKP,AAyKE,aAzKW,CAyKX,QAAQ,CAAC;EACP,eAAe,EAAE,QAAQ,GAM1B;EAhLH,AA4KI,aA5KS,CAyKX,QAAQ,CAGN,MAAM,CAAC;IACL,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,CAAC,GACrB;;AAGH,MAAM,EAAE,SAAS,EAAE,KAAK;EAlL1B,AAmLI,aAnLS,CAmLT,mBAAmB,CAAC;IAClB,cAAc,EAAE,MAAM,GAKvB;IAzLL,AAsLM,aAtLO,CAmLT,mBAAmB,CAGjB,eAAe,CAAC;MACd,mBAAmB,EAAE,CAAC,GACvB;;AAMP,UAAU,CAAV,UAAU;EACR,AAAA,EAAE;IACA,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,gBAAgB;EAG7B,AAAA,IAAI;IACF,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,aAAa;;ACle5B,AACE,cADY,CACZ,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,QAAQ,ENyDE,IAAI;EMxDd,qBAAqB,EAAE,uBAA6B;EACpD,MAAM,EAAE,CAAC,GAuBV;EArBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP5B,AN6KE,cM7KY,CACZ,aAAa,CN4Kb,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EMvKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,KAAK;IAXnD,AN6KE,cM7KY,CACZ,aAAa,CAWT,UAAW,CAAA,EAAE,ENiKjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EMjKC,MAAM,EAAE,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,MAAM;IAjBpD,AN6KE,cM7KY,CACZ,aAAa,CAiBT,UAAW,CAAA,EAAE,EN2JjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;EM3JC,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,MAAM;IAvBrD,AN6KE,cM7KY,CACZ,aAAa,CAuBT,UAAW,CAAA,EAAE,ENqJjB,aAAa,CAAC;MACZ,iBAAiB,EAAE,GAAG;MACtB,mBAAmB,EAAE,IAAI;MACzB,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,IAAI,GAC1B;;AMlLH,AA8BE,cA9BY,CA8BZ,oBAAoB,CAAC;EACnB,MAAM,ELpBS,GAAG,CAAC,KAAK,CAAC,oCAAoC;EKqB7D,aAAa,ENyBD,GAAG;EMxBf,OAAO,EAAE,IAAI;EACb,MAAM,ENqDI,KAAK;EMpDf,KAAK,EAAE,IAAI,GA6BZ;EAhEH,AAqCI,cArCU,CA8BZ,oBAAoB,CAOlB,YAAY,CAAC;IACX,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,KAAK,GAoBjB;IA3DL,AAyCM,cAzCQ,CA8BZ,oBAAoB,CAOlB,YAAY,CAIV,iBAAiB,CAAC;MAChB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,SAAS;MAC1B,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,KAAK;MACd,IAAI,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,MAAM;MACd,KAAK,EAAE,IAAI,GACZ;IAnDP,AAqDM,cArDQ,CA8BZ,oBAAoB,CAOlB,YAAY,CAgBV,oBAAoB,CAAC;MACnB,KAAK,EAAE,gCAAgC;MACvC,SAAS,EAAE,IAAI;MACf,aAAa,EAAE,CAAC;MAChB,UAAU,EAAE,MAAM,GACnB;EAGH,MAAM,EAAE,SAAS,EAAE,MAAM;IA7D7B,AA8BE,cA9BY,CA8BZ,oBAAoB,CAAC;MAgCjB,MAAM,EN+BQ,KAAK,GM7BtB;;AAGH,MAAM,EAAE,SAAS,EAAE,MAAM;EACvB,AAGI,cAHU,CAEZ,aAAa,CACX,aAAa,CAAC;IACZ,qBAAqB,EAAE,uBAAmC,GAC3D;;ACzEP,AACE,gBADc,AACd,QAAS,CAAC;EACR,QAAQ,EAAE,MAAM,GACjB;;AAHH,AAMI,gBANY,AAKd,IAAM,CAAA,AAAA,QAAQ,EACZ,gBAAgB,CAAC;EACf,OAAO,EAAE,IAAI,GACd;;AAIL,AAAA,gBAAgB,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI,GAkDjB;EA1DD,AAUE,gBAVc,AAUd,KAAM,CAAC;IACL,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC,GA6CX;IAzDH,AAcI,gBAdY,AAUd,KAAM,CAIJ,iBAAiB,CAAC;MAChB,UAAU,EAAE,4BAA4B;MACxC,gBAAgB,EAAE,IAAI;MACtB,SAAS,EAAE,gBAAgB,CAAC,QAAQ;MACpC,OAAO,EAAE,CAAC,GAQX;MANC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;QApBzC,AAcI,gBAdY,AAUd,KAAM,CAIJ,iBAAiB,CAAC;UAOd,KAAK,EAAE,IAAI;UACX,MAAM,EAAE,IAAI;UACZ,GAAG,EAAE,KAAK;UACV,aAAa,EAAE,KAAK,GAEvB;IA1BL,AA4BI,gBA5BY,AAUd,KAAM,CAkBJ,sBAAsB,CAAC;MACrB,UAAU,EAAE,YAAY;MACxB,OAAO,EAAE,CAAC,GACX;IA/BL,AAiCI,gBAjCY,AAUd,KAAM,CAuBJ,eAAe;IAjCnB,AAkCI,gBAlCY,AAUd,KAAM,CAwBJ,iBAAiB;IAlCrB,AAmCI,gBAnCY,AAUd,KAAM,CAyBJ,cAAc,CAAC;MACb,UAAU,EAAE,4BAA4B;MACxC,SAAS,EAAE,aAAa;MACxB,OAAO,EAAE,CAAC,GACX;IAvCL,AAyCI,gBAzCY,AAUd,KAAM,CA+BJ,eAAe,CAAC;MACd,gBAAgB,EAAE,IAAI,GACvB;IA3CL,AA6CI,gBA7CY,AAUd,KAAM,CAmCJ,iBAAiB,CAAC;MAChB,gBAAgB,EAAE,IAAI,GACvB;IA/CL,AAiDI,gBAjDY,AAUd,KAAM,CAuCJ,cAAc,CAAC;MACb,gBAAgB,EAAE,IAAI,GACvB;IAnDL,AAqDI,gBArDY,AAUd,KAAM,CA2CJ,qBAAqB,CAAC;MACpB,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,CAAC,GACX;;AAIL,AAAA,WAAW,CAAC;EACV,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,0CAAiC,CAAC,GAAG,CAAE,MAAK,CAAC,MAAM,CAAC,SAAS,EACzE,4FAA8F,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EPzE3G,OAAO;EO2Ef,eAAe,EAAE,KAAK;EACtB,QAAQ,EAAE,KAAK,GAChB;;AAED,AAAA,iBAAiB,CAAC;EAChB,SAAS,EAAE,gBAAgB,CAAC,UAAU;EACtC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,CAAC;EACV,gBAAgB,EP1CV,IAAI;EO2CV,KAAK,EAAE,UAAU;EACjB,KAAK,EP7EG,OAAO;EO8Ef,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI,GAyGd;EAnHD,AAYE,iBAZe,CAYf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO,GAahB;IA9BH,AAmBI,iBAnBa,CAYf,YAAY,CAOV,CAAC,CAAC;MACA,KAAK,EP7FD,OAAO;MO8FX,MAAM,EAAE,OAAO;MACf,eAAe,EAAE,SAAS,GAC3B;IAvBL,AAyBI,iBAzBa,CAYf,YAAY,CAaV,CAAC,AAAA,MAAM;IAzBX,AA0BI,iBA1Ba,CAYf,YAAY,CAcV,CAAC,AAAA,OAAO;IA1BZ,AA2BI,iBA3Ba,CAYf,YAAY,CAeV,CAAC,AAAA,MAAM,CAAC;MACN,KAAK,EP7GD,OAAO,GO8GZ;EA7BL,AAgCE,iBAhCe,CAgCf,YAAY,CAAC;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,oBAAoB,EAAE,IAAI;IAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CPhHX,OAAO;IOiHb,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,oCAAoC,GAUjD;IApDH,AAgCE,iBAhCe,CAgCf,YAAY,AAYV,MAAO,CAAC;MACN,YAAY,EPlHR,OAAO,GOmHZ;IA9CL,AAgCE,iBAhCe,CAgCf,YAAY,AAgBV,MAAO,CAAC;MACN,YAAY,EPlIR,OAAO;MOmIX,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,GAC9C;EAnDL,AAsDE,iBAtDe,CAsDf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,SAAS,GAClB;EAzDH,AA2De,iBA3DE,CA2Df,YAAY,CAAC,WAAW,CAAC;IACvB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,KAAK,GACf;EA/DH,AAiEE,iBAjEe,CAiEf,MAAM,CAAC;IACL,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,WAAW,GACpB;EArEH,AAuEE,iBAvEe,CAuEf,gBAAgB,CAAC;IACf,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,GAAG;IAClB,KAAK,EPlHD,IAAI;IOmHR,gBAAgB,EP/JV,OAAO;IOgKb,UAAU,EAAE,sBAAsB,GAOnC;IAvFH,AAuEE,iBAvEe,CAuEf,gBAAgB,AAWd,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,OAAO,EAlF5B,AAuEE,iBAvEe,CAuEf,gBAAgB,AAYd,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,MAAM,CAAC;MACtB,UAAU,EPnKN,OAAO;MOoKX,YAAY,EPnKR,OAAO,GOoKZ;EAtFL,AAyFE,iBAzFe,CAyFf,YAAY,CAAC;IACX,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,gBAAgB,EAAE,OAAO;IACzB,KAAK,EP/KC,OAAO;IOgLb,MAAM,EAAE,GAAG,CAAC,KAAK,CPhLX,OAAO;IOiLb,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,uDAAuD,GAepE;IAlHH,AAyFE,iBAzFe,CAyFf,YAAY,CAYV,AAAA,QAAE,AAAA,EAAU;MACV,gBAAgB,EAAE,OAAO;MACzB,YAAY,EAAE,OAAO;MACrB,KAAK,EAAE,OAAO;MACd,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,GAAG,GACb;IA3GL,AAyFE,iBAzFe,CAyFf,YAAY,AAoBV,IAAM,EAAA,AAAA,AAAA,QAAC,AAAA,EAAU,MAAM,CAAC;MACtB,gBAAgB,EP/LZ,OAAO;MOgMX,YAAY,EP/LR,OAAO;MOgMX,KAAK,EPpJH,IAAI,GOqJP;;AAIL,AAAA,sBAAsB,CAAC;EACrB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,YAAY;EACnB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,KAAK,GAYb;EAVC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IANrC,AAAA,sBAAsB,CAAC;MAOnB,KAAK,EAAE,KAAK,GASf;EANC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAVrC,AAAA,sBAAsB,CAAC;MAWnB,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,MAAM,GAErB;;AAED,AAAA,iBAAiB,CAAC;EAChB,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,8CAAqC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;EACzE,cAAc,EAAE,KAAK,GACtB;;AAED,AAAA,cAAc,CAAC;EACb,KAAK,EPpLC,IAAI;EOqLV,OAAO,EAAE,KAAK;EACd,eAAe,EAAE,SAAS,GAO3B;EAVD,AAKE,cALY,AAKZ,MAAO,EALT,AAME,cANY,AAMZ,OAAQ,EANV,AAOE,cAPY,AAOZ,MAAO,CAAC;IACN,KAAK,EP3LD,IAAI,GO4LT;;AAGH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,+CAA+C,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;EAC9E,eAAe,EAAE,SAAS;EAC1B,MAAM,EAAE,WAAW;EACnB,WAAW,EAAE,KAAK,GAMnB;EAJC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IANrC,AAAA,eAAe,CAAC;MAOZ,UAAU,EAAE,+CAA+C,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS;MAChF,eAAe,EAAE,SAAS,GAE7B;;CAED,AAAA,AACE,GADD,CAAI,KAAK,AAAT,EACC,eAAe,CAAC;EACd,mBAAmB,EAAE,SAAS,GAC/B;;AAGH,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EPvNC,IAAI;EOwNV,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,EAAE;EACX,UAAU,EAAE,YAAY;EACxB,OAAO,EAAE,CAAC,GAUX;EARC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAdrC,AAAA,qBAAqB,CAAC;MAelB,KAAK,EAAE,KAAK,GAOf;EAJC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;IAlBrC,AAAA,qBAAqB,CAAC;MAmBlB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI,GAEf;;AAED,AAAA,eAAe;AACf,AAAA,iBAAiB;AACjB,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,CAAC;EACV,SAAS,EAAE,gBAAgB,GAC5B;;AC7RD,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,2CAA2C;EAClD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,UAAU,ER+FO,IAAI,GQvBtB;EAtEC,MAAM,EAAE,SAAS,EAAE,KAAK;IAN1B,AAAA,MAAM,CAAC;MAOH,WAAW,EAAE,IAAI,GAqEpB;EA5ED,AAUE,MAVI,CAUJ,EAAE,CAAC;IACD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC,GAKX;IAJC,MAAM,EAAE,SAAS,EAAE,KAAK;MAb5B,AAUE,MAVI,CAUJ,EAAE,CAAC;QAIC,OAAO,EAAE,MAAM;QACf,oBAAoB,EAAE,IAAI,GAE7B;EAjBH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,CAAC;IACJ,OAAO,EAAE,YAAY,GAUtB;IA/BH,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAGH,OAAQ,CAAC;MACP,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,GAAG,GACb;IA1BL,AAoBK,MApBC,CAoBJ,EAAE,CAAC,EAAE,AAQH,WAAY,AAAA,OAAO,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;EA9BL,AAiCE,MAjCI,CAiCJ,WAAW,CAAC;IACV,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GAClB;EApCH,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;IACf,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,IAAI,GA2BlB;IAzBC,MAAM,EAAE,SAAS,EAAE,KAAK;MA1C5B,AAsCE,MAtCI,CAsCJ,gBAAgB,CAAC;QAOb,KAAK,EAAE,KAAK,GAsBf;QAnEH,AAsCE,MAtCI,CAsCJ,gBAAgB,AASZ,IAAM,CAAA,AAAA,GAAG,EAAE;UACT,KAAK,EAAE,IAAI,GACZ;IAjDP,AAsCE,MAtCI,CAsCJ,gBAAgB,AAcd,OAAQ,CAAC;MACP,UAAU,EAAE,oDAA2C,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;MAC/E,OAAO,EAAE,EAAE;MACX,uBAAuB,EAAE,IAAI;MAC7B,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,kCAAkC;MACxC,MAAM,EAAE,IAAI;MACZ,mBAAmB,EAAE,GAAG;MACxB,cAAc,EAAE,GAAG;MACnB,KAAK,EAAE,IAAI,GACZ;IA9DL,AAsCE,MAtCI,CAsCJ,gBAAgB,AA0Bd,IAAM,CAAA,AAAA,GAAG,CAAC,OAAO,CAAE;MACjB,SAAS,EAAE,UAAU,GACtB;EAlEL,AAuEE,MAvEI,AAuEJ,OAAQ,CAAC;IACP,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK,GACf;;AC3EH,AAAA,eAAe,CAAC;EASd,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,IAAI;EACb,MAAM,EAVU,IAAI;EAWpB,aAAa,ETmDG,IAAoC;ESlDpD,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAuDZ;EArED,AAgBE,eAhBa,CAgBb,KAAK,CAAC;IACJ,UAAU,EAAE,sCAAsC,CAAC,yBAAyB,CAdxD,GAAG,CAc2E,WAA0B,CAAC,SAAS;IACtI,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,iCAAiC;IACnD,UAAU,ERDK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ESKkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTmBpC,mBAAI;ISlBR,SAAS,EAAE,IAAI;IACf,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,CAAC;IACV,kBAAkB,EAlBE,IAAI;IAmBxB,oBAAoB,EArBF,IAA4C;IAsB9D,KAAK,EAAE,IAAI,GAKZ;IA/BH,AAgBE,eAhBa,CAgBb,KAAK,AAYH,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,qBAAqB,EAAE,KAAK,CA1BV,GAAG,GA2BtB;EA9BL,AAiCU,eAjCK,AAiCb,MAAO,CAAC,KAAK,CAAC;IACZ,UAAU,ERhBK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO,ESoBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CTIpC,mBAAI,GSHT;EAnCH,AAqCW,eArCI,AAqCb,OAAQ,CAAC,KAAK;EArChB,AAsCE,eAtCa,CAsCb,KAAK,AAAA,MAAM,CAAC;IACV,MAAM,ERzBY,GAAG,CAAC,KAAK,CAAC,iCAAiC;IQ0B7D,UAAU,EAAE,qCAAqC,GAClD;EAzCH,AA2CE,eA3Ca,CA2Cb,cAAc,CAAC;IACb,UAAU,EArCI,wCAAwC,CAqC3B,SAAS,CAAC,MAAM,CAAC,MAAM;IAClD,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC,CTUJ,GAAG,CAAH,GAAG,CSVgC,CAAC;IAChD,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EA/Ce,IAAI,GA8DzB;IApEH,AA2CE,eA3Ca,CA2Cb,cAAc,AAYZ,MAAO,EAvDX,AA2CE,eA3Ca,CA2Cb,cAAc,AAaZ,MAAO,CAAC;MACN,gBAAgB,ET3CZ,qBAAO;MS4CX,MAAM,EAAE,OAAO,GAChB;IA3DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAkBZ,OAAQ,CAAC;MACP,gBAAgB,EThDZ,qBAAO,GSiDZ;IA/DL,AA2CE,eA3Ca,CA2Cb,cAAc,AAsBZ,IAAM,CAAA,AAAA,GAAG,EAAE;MACT,SAAS,EAAE,UAAU,GACtB;;AAMH,AAAA,6BAA6B,CAAC;EAC5B,gBAAgB,EAAE,mCAAmC;EACrD,MAAM,EAAE,CAAC;EACT,UAAU,ET2BQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAjExB,kBAAI,EAiEgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAjE7C,kBAAI;ESuCR,SAAS,EAAE,eAAgC,GA0E5C;EA9ED,AAME,6BAN2B,CAM3B,oBAAoB,CAAC;IACnB,gBAAgB,EAAE,0CAA0C;IAC5D,KAAK,EAAE,kCAAkC,GAC1C;EATH,AAWE,6BAX2B,CAW3B,oBAAoB,EAXtB,AAYE,6BAZ2B,CAY3B,4BAA4B,CAAC;IAC3B,YAAY,EAAE,oCAAoC,GACnD;EAdH,AAgBE,6BAhB2B,CAgB3B,6BAA6B,CAAC;IAC5B,MAAM,EAAE,CAAC,GACV;EAlBH,AAoBE,6BApB2B,CAoB3B,0BAA0B,CAAC;IACzB,gBAAgB,EAAE,0CAA0C;IAC5D,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,oCAAoC,GAC3D;EAvBH,AAyBE,6BAzB2B,CAyB3B,wCAAwC,CAAC;IACvC,KAAK,EAAE,gCAAgC,GACxC;EA3BH,AA6BE,6BA7B2B,CA6B3B,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,mCAAmC,GACtD;EA/BH,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,CAAC;IACT,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GASxC;IA7CL,AAiCE,6BAjC2B,CAiC3B,2BAA2B,AACzB,SAAU,AAIR,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;IAxCP,AA0CM,6BA1CuB,CAiC3B,2BAA2B,AACzB,SAAU,CAQR,YAAY,CAAC;MACX,IAAI,EAAE,kCAAkC,GACzC;EA5CP,AAiDI,6BAjDyB,CAgD3B,0BAA0B,CACxB,kCAAkC,CAAC;IACjC,gBAAgB,EAAE,0CAA0C,GAC7D;EAnDL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,CAAC;IAIvB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,qIAA+L,CAAC,CAAC;IAC/M,iBAAiB,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ,GASnB;IAtEH,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAStB,SAAU,CAAC;MACT,UAAU,EAAE,iCAAiC,GAC9C;IAjEL,AAsDE,6BAtD2B,CAsD3B,wBAAwB,AAatB,OAAQ,CAAC;MACP,UAAU,EAAE,kCAAkC,GAC/C;EArEL,AAwEE,6BAxE2B,CAwE3B,4BAA4B,AAC1B,MAAO,CAAC;IACN,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,gCAAgC,GACxC;;ACrJP,AAAA,aAAa,CAAC;EACZ,UAAU,EAAE,0CAA0C;EACtD,aAAa,EVuGc,GAAG;EUtG9B,UAAU,EVoGU,CAAC,CAAC,GAAG,CAAC,IAAI,CAjExB,kBAAI,EAiEgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAjE7C,kBAAI;EUlCV,OAAO,EAAE,KAAK;EACd,SAAS,EVmGc,IAAI;EUlG3B,mBAAmB,EAAE,GAAG;EACxB,mBAAmB,EAAE,IAAI;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,MAA+B;EACpC,OAAO,EAAE,KAAK,GAyCf;EAnDD,AAYI,aAZS,GAYT,EAAE,CAAC;IACH,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,EV2FkB,GAAG,CU3FS,CAAC,GAmCvC;IAlDH,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,CAAC;MACH,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,IAAI,GA8BZ;MAjDL,AAiBM,aAjBO,GAYT,EAAE,GAKA,EAAE,AAIF,UAAW,CAAC;QACV,aAAa,ETXF,GAAG,CAAC,KAAK,CAAC,oCAAoC;QSYzD,MAAM,EVmFe,GAAG,CUnFY,CAAC,GACtC;MAxBP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,CAAC;QACF,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EV0Ea,GAAG,CAAC,IAAI;QUzE5B,WAAW,EAAE,MAAM,GAcpB;QAhDP,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAUD,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;UACzB,UAAU,EAAE,iCAAiC,GAC9C;QAtCT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAcD,OAAQ,CAAC;UACP,UAAU,EAAE,kCAAkC,GAC/C;QA1CT,AA0BQ,aA1BK,GAYT,EAAE,GAKA,EAAE,GASA,CAAC,AAkBD,SAAU,CAAC;UACT,OAAO,EAAE,GAAG;UACZ,cAAc,EAAE,IAAI,GACrB;;AC/CT,AACE,oBADkB,CAClB,MAAM,CAAC;EACL,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CXoCnB,kBAAI;EWnCR,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,MAAM;EACnB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,KAAK,GACb;;AARH,AAUE,oBAVkB,CAUlB,OAAO,CAAC;EACN,MAAM,EAAE,CAAC,GACV;;AAZH,AAcE,oBAdkB,CAclB,cAAc,CAAC;EACb,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,CAAC,GAMlB;EAvBH,AAmBI,oBAnBgB,CAclB,cAAc,CAKZ,CAAC,CAAC;IACA,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,IAAI,GACpB;;AAtBL,AAyBE,oBAzBkB,CAyBlB,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,MAAM;EACjB,OAAO,EAAE,MAAM,GAchB;EA3CH,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,CAAC;IACL,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,GAAG,GAMX;IA1CL,AA+BI,oBA/BgB,CAyBlB,QAAQ,CAMN,MAAM,AAOJ,KAAM,CAAC;MACL,iBAAiB,EAAE,CAAC;MACpB,mBAAmB,EAAE,CAAC,GACvB;;AAzCP,AA6CE,oBA7CkB,CA6ClB,KAAK,CAAC;EACJ,iBAAiB,EAAE,IAAI,GACxB;;AAGH,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,2BAA2B;EACvC,MAAM,EAAE,IAAI;EACZ,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK,GACf;;AAED,AAAA,MAAM,CAAC;EACL,UAAU,EAAE,yBAAyB;EACrC,MAAM,EVnDW,GAAG,CAAC,KAAK,CAAC,oCAAoC;EUoD/D,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,KAAK,GACf;;AClED,AAAA,WAAW,CAAC;EAEV,UAAU,EAAE,mCAAmC;EAC/C,aAAa,EZsDC,GAAG;EYrDjB,OAAO,EAAE,YAAY;EACrB,MAAM,EZkFM,KAAK;EYjFjB,iBAAiB,EZsDL,IAAI;EYrDhB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI,GAkKZ;EA1KD,AZiIE,WYjIS,CZiIT,oBAAoB,CAAC;IACnB,eAAe,EAAE,WAAW;IAC5B,gBAAgB,EAAE,sCAAsC;IACxD,gBAAgB,EAAE,4CAA4C;IAC9D,mBAAmB,EAAE,GAAG;IACxB,MAAM,EC5HO,GAAG,CAAC,KAAK,CAAC,kCAAkC;ID6HzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAlCkB,CAAC,CAAC,GAAG,CAxF3B,qBAAO;IA2Hb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAtCiB,IAAI;IAuC3B,iBAAiB,EAAI,OAA6B;IAClD,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAI,OAA6B;IACpC,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,kBAAkB;IACvC,KAAK,EA9CkB,IAAI,GAoD5B;IYzJH,AZiIE,WYjIS,CZiIT,oBAAoB,AAoBnB,SAAY,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE;MAC1B,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;EYxJL,AAUE,WAVS,AAUT,YAAa,CAAC;IACZ,UAAU,EAAE,WAAW,GAUxB;IArBH,AAaI,WAbO,AAUT,YAAa,CAGX,KAAK,CAAC;MACJ,UAAU,EAAE,KAAK,CXFJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,oCAAoC,GWG5D;IAfL,AAiBI,WAjBO,AAUT,YAAa,CAOX,yBAAyB;IAjB7B,AAkBI,WAlBO,AAUT,YAAa,CAQX,aAAa,CAAC;MACZ,OAAO,EAAE,IAAI,GACd;EApBL,AAuBE,WAvBS,CAuBT,KAAK,CAAC;IACJ,aAAa,EZiCD,GAAG;IYhCf,UAAU,EAAE,yBAAyB;IACrC,MAAM,EAAE,IAAI,GACb;EA3BH,AA6BI,WA7BO,GA6BP,CAAC,CAAC;IACF,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,IAAI,GAWZ;IA9CH,AAsCM,WAtCK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EACxB,KAAK,CAAC;MZsFV,UAAU,EC3GK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;MD4GhE,UAAU,EAAE,gBAAgB,GYrFvB;IAxCP,AA0CM,WA1CK,GA6BP,CAAC,AAQD,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAKxB,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;EA5CP,AAgDE,WAhDS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAAE;IZ4EtD,UAAU,EC3GK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;ID4GhE,UAAU,EAAE,gBAAgB;IY1E1B,OAAO,EAAE,IAAI,GAad;IAhEH,AZ6JE,WY7JS,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EZ6GpD,oBAAoB,CAAC;MACnB,OAAO,EAAE,CAAC;MACV,SAAS,EAAE,QAAQ,GACpB;IYhKH,AAqDI,WArDO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAKlD,WAAW,CAAC;MACV,KAAK,EAAE,gCAAgC,GACxC;IAvDL,AAyDiB,WAzDN,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EASlD,UAAU,GAAG,eAAe,CAAC;MAC3B,OAAO,EAAE,IAAI,GACd;IA3DL,AA6DI,WA7DO,AAgDT,SAAW,CAAA,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE,AAAA,OAAO,CAAC,IAAK,CAAA,AAAA,YAAY,EAalD,eAAe,AAAA,UAAU,CAAC;MACxB,OAAO,EAAE,KAAK,GACf;EA/DL,AAkEE,WAlES,CAkET,yBAAyB,CAAC;IACxB,gBAAgB,EZ3DV,OAAO;IY4Db,aAAa,EZXD,GAAG,CAAH,GAAG,CYW8B,CAAC,CAAC,CAAC;IAChD,MAAM,EZmBkB,KAAK;IYlB7B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,QAAQ,GAuBnB;IA9FH,AAkEE,WAlES,CAkET,yBAAyB,AAOvB,OAAQ,CAAC;MACP,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MAC1D,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI,GACZ;IA/EL,AAiFI,WAjFO,CAkET,yBAAyB,CAevB,mBAAmB,CAAC;MAClB,mBAAmB,EAAE,MAAM;MAC3B,iBAAiB,EAAE,SAAS;MAC5B,eAAe,EAAE,KAAK;MACtB,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,CAAC;MACV,UAAU,EAAE,OAAO,CAAC,EAAE,CZhCZ,8BAA8B;MYiCxC,KAAK,EAAE,IAAI,GAKZ;MA7FL,AAiFI,WAjFO,CAkET,yBAAyB,CAevB,mBAAmB,AASjB,OAAQ,CAAC;QACP,OAAO,EAAE,CAAC,GACX;EA5FP,AAgGE,WAhGS,CAgGT,aAAa,CAAC;IACZ,OAAO,EAAE,cAAc,GACxB;EAlGH,AAoGE,WApGS,CAoGT,UAAU,CAAC;IACT,UAAU,EAAE,IAA+C;IAC3D,QAAQ,EAAE,MAAM,GAejB;IArHH,AAoGE,WApGS,CAoGT,UAAU,AAIR,aAAc,EAxGlB,AAoGE,WApGS,CAoGT,UAAU,AAKR,WAAY,CAAC;MACX,UAAU,EAAE,IAA+C,GAC5D;IA3GL,AAoGE,WApGS,CAoGT,UAAU,AASR,aAAc,AAAA,WAAW,CAAC;MACxB,UAAU,EAAE,KAA+C,GAC5D;IA/GL,AAiH2B,WAjHhB,CAoGT,UAAU,AAaR,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;MACjC,UAAU,EAAE,IAA0B;MACtC,QAAQ,EAAE,MAAM,GACjB;EApHL,AAuHE,WAvHS,CAuHT,eAAe,CAAC;IACd,KAAK,EAAE,kCAAkC;IACzC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS;IACzB,WAAW,EAAE,MAAM,GACpB;EA/HH,AAiIE,WAjIS,CAiIT,eAAe,AAAA,UAAU,CAAC;IAAE,OAAO,EAAE,IAAI,GAAK;EAjIhD,AAmIE,WAnIS,CAmIT,WAAW,CAAC;IACV,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EZ5CS,IAAI;IY6CxB,MAAM,EAAE,CAAC,CAAC,CAAC,CZ9CK,GAAG;IY+CnB,SAAS,EAAE,UAAU,GACtB;EAzIH,AA2IE,WA3IS,CA2IT,iBAAiB,CAAC;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EZnDS,IAAI;IYoDxB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,UAAU,GACtB;EAjJH,AAmJE,WAnJS,CAmJT,aAAa,CAAC;IACZ,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,kCAAkC;IACzC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,CAAC;IACtB,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,QAAQ,GACnB;EA3JH,AA6JE,WA7JS,CA6JT,kBAAkB,CAAC;IACjB,IAAI,EAAE,kCAAkC;IACxC,MAAM,EAAE,IAAI;IACZ,iBAAiB,EAAE,GAAG,GACvB;EAjKH,AAmKE,WAnKS,CAmKT,mBAAmB,CAAC;IAClB,SAAS,EAAE,CAAC;IACZ,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;;AAMC,MAAM,EAAE,SAAS,EAAE,MAAM;EAH7B,AACE,aADW,CACX,WAAW,CAAC;IAIR,MAAM,EZpFQ,KAAK,GY6HtB;IA9CH,AAOM,aAPO,CACX,WAAW,CAMP,yBAAyB,CAAC;MACxB,MAAM,EZtFoB,KAAK,GYuFhC;IATP,AAWM,aAXO,CACX,WAAW,CAUP,aAAa,CAAC;MACZ,OAAO,EAAE,cAAc,GACxB;IAbP,AAeM,aAfO,CACX,WAAW,CAcP,UAAU,CAAC;MACT,UAAU,EAAE,KAAqC,GAClD;IAjBP,AAmBM,aAnBO,CACX,WAAW,CAkBP,eAAe,CAAC;MACd,SAAS,EAAE,IAAI;MACf,cAAc,EAAE,GAAG,GACpB;IAtBP,AAwBM,aAxBO,CACX,WAAW,CAuBP,WAAW,CAAC;MACV,SAAS,EAAE,IAAI;MACf,WAAW,EAtBC,IAAI;MAuBhB,aAAa,EAAE,CAAC,GACjB;IA5BP,AA+BQ,aA/BK,CACX,WAAW,CA6BP,UAAU,AAAA,IAAK,CAAA,AAAA,eAAe,EAC5B,WAAW,CAAC;MACV,UAAU,EAAE,IAAgB,GAC7B;IAjCT,AAoCM,aApCO,CACX,WAAW,CAmCP,iBAAiB,CAAC;MAChB,SAAS,EAAE,IAAI;MACf,WAAW,EAlCC,IAAI,GAmCjB;IAvCP,AAyCM,aAzCO,CACX,WAAW,CAwCP,aAAa,CAAC;MACZ,MAAM,EAAE,GAAG;MACX,SAAS,EAAE,IAAI,GAChB;;AAKP,AAIE,cAJY,CAIZ,WAAW,CAAC;EACV,MAAM,EZlIY,KAAK,GY+MxB;EAlFH,AAOI,cAPU,CAIZ,WAAW,CAGT,yBAAyB,CAAC;IACxB,MAAM,EZpIwB,KAAK,GYqIpC;EATL,AAWI,cAXU,CAIZ,WAAW,CAOT,aAAa,CAAC;IACZ,OAAO,EAXoB,IAAI,CAWQ,IAAI,GAC5C;EAbL,AAeI,cAfU,CAIZ,WAAW,CAWT,eAAe,CAAC;IACd,WAAW,EAAE,IAAI,GAClB;EAjBL,AAoBM,cApBQ,CAIZ,WAAW,CAeT,UAAU,CACR,WAAW;EApBjB,AAqB6B,cArBf,CAIZ,WAAW,CAeT,UAAU,AAER,IAAM,CAAA,AAAA,eAAe,EAAE,WAAW,CAAC;IACjC,SAAS,EApBQ,IAAI;IAqBrB,WAAW,EAAE,IAAyB;IACtC,UAAU,EAAE,IAAyB;IACrC,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,WAAW,EAAE,MAAM,GACpB;EA5BP,AA+BI,cA/BU,CAIZ,WAAW,CA2BT,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI,GACd;EAjCL,AAmCI,cAnCU,CAIZ,WAAW,CA+BT,aAAa,CAAC;IAGZ,gBAAgB,EAAE,mCAAmC;IACrD,aAAa,EAAE,IAAmB;IAClC,SAAS,EAAE,oBAAkI;IAC7I,MAAM,EAJW,IAAI;IAKrB,KAAK,EALY,IAAI;IAMrB,OAAO,EAAE,GAAkC;IAC3C,GAAG,EAAE,IAA+C;IACpD,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,IAAI,GAmC1B;IAjFL,AAmCI,cAnCU,CAIZ,WAAW,CA+BT,aAAa,AAaX,OAAQ,CAAC;MACP,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,iCAAiC;MACnD,aAAa,EAAE,CAAC;MAChB,aAAa,EAAE,IAAyB,CAAC,IAAyB,CAAC,CAAC,CAAC,CAAC;MACtE,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,MAAM,EAAE,IAAyB;MACjC,KAAK,EAAE,IAAmB;MAC1B,GAAG,EAAE,IAAI;MACT,IAAI,EAAE,IAAI,GACX;IA1DP,AA4DM,cA5DQ,CAIZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,CAAC;MACjB,iBAAiB,EAAE,CAAC;MACpB,MAAM,EA1BI,IAAI;MA2Bd,KAAK,EA3BK,IAAI,GAwCf;MA5EP,AA4DM,cA5DQ,CAIZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAKhB,oBAAqB,CAAC;QACpB,IAAI,EZ7OO,OAAO,GY8OnB;MAnET,AA4DM,cA5DQ,CAIZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAShB,cAAe,CAAC;QACd,IAAI,EZhPO,OAAO,GYiPnB;MAvET,AA4DM,cA5DQ,CAIZ,WAAW,CA+BT,aAAa,CAyBX,kBAAkB,AAahB,YAAa,CAAC;QACZ,IAAI,EZnPK,OAAO,GYoPjB;IA3ET,AA8EM,cA9EQ,CAIZ,WAAW,CA+BT,aAAa,CA2CX,mBAAmB,CAAC;MAClB,OAAO,EAAE,IAAI,GACd;;AAIL,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,MAAM;EApFvC,AAqFI,cArFU,CAqFV,gBAAgB,CAAC;IACf,OAAO,EAAE,IAAI,GACd;;ACpTL,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EAAE,oCAAoC;EAC3C,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,aAAa,Eb2DG,IAAoC;Ea1DpD,UAAU,EAAE,MAAM,GA0BnB;EAxBC,MAAM,EAAE,SAAS,EAAE,KAAK;IAP1B,AAAA,2BAA2B,CAAC;MAQxB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,UAAU,EAAE,IAAI,GAqBnB;EA/BD,AAaE,2BAbyB,CAazB,CAAC,CAAC;IACA,MAAM,EAAE,CAAC,GAMV;IALC,MAAM,EAAE,SAAS,EAAE,KAAK;MAf5B,AAaE,2BAbyB,CAazB,CAAC,CAAC;QAGE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,aAAa,GAEjC;EApBH,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;IACJ,OAAO,EAAE,IAAI,GAOd;IANC,MAAM,EAAE,SAAS,EAAE,KAAK;MAxB5B,AAsBE,2BAtByB,CAsBzB,KAAK,CAAC;QAGF,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,kCAAkC;QACxC,iBAAiB,EAAE,GAAG,GAEzB;;AAGH,AAAA,yBAAyB,CAAC;EACxB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,MAAM,GAelB;EAbC,MAAM,EAAE,SAAS,EAAE,KAAK;IAL1B,AAAA,yBAAyB,CAAC;MAMtB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,aAAa;MAC9B,OAAO,EAAE,CAAC,GAUb;EAlBD,AAWE,yBAXuB,CAWvB,MAAM,CAAC;IACL,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IACT,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE,MAAM,GAChB;;AClDH,AAAA,oBAAoB,CAAC;EACnB,OAAO,Ed6DkB,IAAI,CADF,IAAI;Ec3D/B,gBAAgB,EAAE,KAAK;EACvB,mBAAmB,EAAE,KAAK;EAC1B,mBAAmB,EAAE,gBAAgB,GAiKtC;EArKD,AAME,oBANkB,CAMlB,cAAc,CAAC;IACb,SAAS,Ed6Ea,IAAI;Ic5E1B,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,SAAS,GAmB1B;IA7BH,AAYI,oBAZgB,CAMlB,cAAc,CAMZ,IAAI,CAAC;MACH,KAAK,EAAE,uCAAuC;MAC9C,OAAO,EAAE,YAAY;MACrB,IAAI,EAAE,uCAAuC;MAC7C,cAAc,EAAE,MAAM,GACvB;IAjBL,AAmBI,oBAnBgB,CAMlB,cAAc,CAaZ,aAAa,CAAC;MACZ,MAAM,EAAE,OAAO;MACf,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,MAAM,GACpB;IAvBL,AAyBI,oBAzBgB,CAMlB,cAAc,CAmBZ,kBAAkB,CAAC;MACjB,mBAAmB,EAAE,GAAG;MACxB,UAAU,EAAE,IAAI,GACjB;EA5BL,AA+BE,oBA/BkB,CA+BlB,gBAAgB,CAAC;IACf,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GA6BnB;IA/DH,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,CAAC;MACnB,UAAU,EAAE,4CAA4C,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;MAC/E,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,OAAO;MACf,IAAI,EAAE,uCAAuC;MAC7C,MAAM,EAAE,IAAI;MACZ,iBAAiB,EAAE,CAAC;MACpB,OAAO,EAAE,CAAC;MACV,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,mBAAmB,EAAE,KAAK;MAC1B,mBAAmB,EAAE,OAAO;MAC5B,KAAK,EdqDgB,IAAI,Gc/C1B;MAtDL,AAoCI,oBApCgB,CA+BlB,gBAAgB,CAKd,oBAAoB,AAclB,SAAW,CAAA,AAAA,OAAO,EAAE,AAAA,MAAM,EAAE,AAAA,MAAM,EAAE;QAClC,IAAI,EdrCF,OAAO;QcsCT,OAAO,EAAE,CAAC,GACX;IArDP,AAwDI,oBAxDgB,CA+BlB,gBAAgB,CAyBd,aAAa,CAAC;MACZ,GAAG,EAAE,IAAI,GACV;IAED,MAAM,EAAE,SAAS,EAAE,MAAM;MA5D7B,Ad6KE,oBc7KkB,CA+BlB,gBAAgB,Cd8IhB,aAAa,CAAC;QACZ,iBAAiB,EAAE,GAAG;QACtB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI,GAC1B;EclLH,AAoEM,oBApEc,AAiElB,MAAO,CAEL,gBAAgB,CACd,oBAAoB,EApE1B,AAoEM,oBApEc,AAkElB,OAAQ,CACN,gBAAgB,CACd,oBAAoB,CAAC;IACnB,OAAO,EAAE,CAAC,GACX;EAtEP,AA0EE,oBA1EkB,AA0ElB,OAAQ,CAAC;IACP,UAAU,EAAE,iCAAiC;IAC7C,aAAa,EAAE,GAAG,GAOnB;IAnFH,AA+EM,oBA/Ec,AA0ElB,OAAQ,CAIN,gBAAgB,CACd,oBAAoB,CAAC;MACnB,IAAI,EAAE,8CAA8C,GACrD;EAjFP,AAqFE,oBArFkB,CAqFlB,mBAAmB,CAAC;IAIlB,KAAK,EAAE,oCAAoC;IAC3C,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,QAAQ,GAqCnB;IAjIH,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;MACvB,OAAO,EAAE,YAAY;MACrB,UAAU,EATQ,IAAI;MAUtB,KAAK,EAAE,kBAAiC,GAKzC;MAHC,MAAM,EAAE,SAAS,EAAE,KAAK;QAnG9B,AA8FI,oBA9FgB,CAqFlB,mBAAmB,CASjB,wBAAwB,CAAC;UAMrB,KAAK,EddA,KAA6B,GcgBrC;IAtGL,AAwGI,oBAxGgB,CAqFlB,mBAAmB,CAmBjB,CAAC,CAAC;MACA,KAAK,EAAE,gCAAgC;MACvC,WAAW,EAAE,IAAI;MACjB,YAAY,EAAE,GAAG,GAClB;IA5GL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;MACL,UAAU,EAAE,oCAAoC;MAChD,MAAM,EAAE,GAAG,CAAC,KAAK,CdvGb,OAAO;McwGX,aAAa,EAAE,GAAG;MAClB,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,GAAG;MACf,SAAS,EA9BQ,KAAK;MA+BtB,UAAU,EA9BQ,IAAI;MA+BtB,iBAAiB,EAAE,CAAC,GAUrB;MAhIL,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,AAUJ,MAAO,AAAA,IAAK,CAAA,AAAA,QAAQ,EAAE;QACpB,UAAU,EbxGD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uCAAuC;QayG1D,UAAU,EAAE,gBAAgB,GAC7B;MAED,MAAM,EAAE,SAAS,EAAE,KAAK;QA7H9B,AA8GI,oBA9GgB,CAqFlB,mBAAmB,CAyBjB,MAAM,CAAC;UAgBH,QAAQ,EAAE,QAAQ,GAErB;EAhIL,AAmIE,oBAnIkB,CAmIlB,sBAAsB,CAAC;IACrB,MAAM,Ed7CI,KAAK,Gc8ChB;EArIH,AAuIE,oBAvIkB,CAuIlB,aAAa,CAAC;IAGZ,MAAM,EAAE,CAAC,CADY,IAAG;IAExB,OAAO,EAAE,CAAC,CAFW,GAAG,GAQzB;IAjJH,AAuIE,oBAvIkB,CAuIlB,aAAa,AAMX,UAAW,CAAC;MACV,QAAQ,EAAE,MAAM;MAChB,cAAc,EAAE,IAAI,GACrB;EAhJL,AAqJM,oBArJc,AAmJlB,kBAAmB,CACjB,cAAc,CACZ,kBAAkB,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC,IAAI,Cd/FlB,8BAA8B,GcgGvC;EAvJP,AA0JI,oBA1JgB,AAmJlB,kBAAmB,CAOjB,aAAa,CAAC;IACZ,UAAU,EAAE,UAAU,CAAC,IAAI,CdpGjB,8BAA8B,GcqGzC;EA5JL,AAgKI,oBAhKgB,AA+JlB,UAAW,CACT,aAAa,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,MAAM,GACjB;;AClKL,AAAA,eAAe,CAAC;EAGd,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,MAAM;EACd,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE,QAAQ,GAoElB;EA5ED,AAUE,eAVa,CAUb,EAAE,CAAC;IACD,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI,GAChB;EAbH,AAeE,eAfa,CAeb,KAAK,CAAC;IACJ,eAAe,EAAE,QAAQ;IACzB,KAAK,EAAE,IAAI,GACZ;EAlBH,AAqBkB,eArBH,CAoBb,aAAa,AACX,YAAa,CAAC,EAAE,CAAC;IACf,UAAU,EAAE,GAAG,CAAC,KAAK,CArBV,oCAAoC,GAsBhD;EAvBL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,CAAC;IACD,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG,CAAC,KAAK,CA1Bb,oCAAoC;IA2B/C,OAAO,EAAE,GAAG,GASb;IArCL,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AAKA,YAAa,CAAC;MACZ,WAAW,EAAE,GAAG,CAAC,KAAK,CA9Bb,oCAAoC,GA+B9C;IAhCP,AAyBI,eAzBW,CAoBb,aAAa,CAKX,EAAE,AASA,WAAY,CAAC;MACX,YAAY,EAAE,GAAG,CAAC,KAAK,CAlCd,oCAAoC,GAmC9C;EApCP,AAwCkB,eAxCH,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAAC;IACf,UAAU,EfzBN,OAAO;Ie0BX,OAAO,EAAE,OAAO,GAKjB;IAHC,AAJU,WAIC,CA5CnB,eAAe,CAoBb,aAAa,AAmBX,QAAS,CACP,WAAW,CAAC,IAAI,CAIA;MACZ,KAAK,EfRP,IAAI,GeSH;EA9CT,AAmDM,eAnDS,CAoBb,aAAa,AA8BX,QAAS,CACP,WAAW;EAnDjB,AAoDM,eApDS,CAoBb,aAAa,AA8BX,QAAS,CAEP,gBAAgB,CAAC;IACf,OAAO,EAAE,GAAG,GACb;EAtDP,AAwDM,eAxDS,CAoBb,aAAa,AA8BX,QAAS,CAMP,WAAW,CAAC;IACV,OAAO,EAAE,GAAG,GACb;EA1DP,AA6DI,eA7DW,CAoBb,aAAa,CAyCX,WAAW,CAAC;IACV,WAAW,EA5DH,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS;IA6DxG,SAAS,EAAE,IAAI,GAChB;EAhEL,AAmEE,eAnEa,CAmEb,GAAG,CAAC;IACF,UAAU,EAAE,sCAAsC;IAClD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,IAAI;IACd,WAAW,EAxED,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,GAyE3G;;AC5EH,AAAA,eAAe,CAAC;EACd,WAAW,EAAE,MAAM;EACnB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,oCAAoC;EACtD,gBAAgB,EAAE,oCAAoC;EACtD,WAAW,EAAE,OAAO;EACpB,OAAO,EAAE,QAAQ;EACjB,mBAAmB,EAAE,IAAI;EACzB,KAAK,EAAE,OAAO,GAIf;EAHC,AAAM,KAAD,CATP,eAAe,CASL;IACN,mBAAmB,EAAE,IAAI,GAC1B;;ACXH,AAAA,qBAAqB,CAAC;EACpB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,gBAAgB,EAAE,uCAAuC;EACzD,KAAK,EAAE,gCAAgC;EACvC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,qCAAqC;EAC3D,UAAU,EhBQO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CDJpB,qBAAO;EiBHf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM,GA6CpB;EAzDD,AAcE,qBAdmB,CAcnB,aAAa,CAAC;IACZ,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,IAAI,CjB2CY,IAAI;IiBxC7B,kBAAkB,EAAE,IAAI;IAKxB,SAAS,EjB+Ca,KAAmE,GiB3C1F;IARC,MAAM,EAAE,SAAS,EAAE,KAAK;MAtB5B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QASV,kBAAkB,EjBsCK,IAAI,GiB/B9B;IAHC,MAAM,EAAE,SAAS,EAAE,MAAM;MA3B7B,AAcE,qBAdmB,CAcnB,aAAa,CAAC;QAcV,SAAS,EjB8CY,MAAmE,GiB5C3F;EA9BH,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;IACX,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,gBAAgB,EAAE,0EAA0E;IAC5F,uBAAuB,EAAE,IAAI;IAC7B,IAAI,EAAE,gCAAgC;IACtC,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,OAAO,GAKhB;IAHC,MAAM,EAAE,SAAS,EAAE,KAAK;MAjD5B,AAgCE,qBAhCmB,CAgCnB,YAAY,CAAC;QAkBT,iBAAiB,EAAE,IAAI,GAE1B;EApDH,AAsDU,qBAtDW,AAsDnB,MAAO,CAAC,YAAY,CAAC;IACnB,OAAO,EAAE,KAAK,GACf;;ACxDH,AACE,gBADc,AACd,WAAY,CAAC;EACX,QAAQ,EAAE,MAAM,GACjB;;AAEH,AAAA,kBAAkB,CAAC;EACjB,UAAU,ElByCJ,IAAI;EkBxCV,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI,GAKd;EAbD,AAUE,kBAVgB,AAUhB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;;AAGH,AAAA,kBAAkB,CAAC;EACjB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,iBAAiB;EACtB,IAAI,EAAE,iBAAiB;EACvB,UAAU,ElBqBJ,IAAI;EkBpBV,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,ClBWlB,kBAAI;EkBVV,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,IAAI,GAwEd;EApEC,MAAM,EAAC,SAAS,EAAE,KAAK;IAdzB,AAAA,kBAAkB,CAAC;MAef,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,GAAG,EAAE,CAAC;MACN,IAAI,EAAE,CAAC;MACP,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,CAAC,GA8DnB;EA1DC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;IAxBjD,AAAA,kBAAkB,CAAC;MAyBf,UAAU,EAAE,MAAM,GAyDrB;EArDC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;IA7BjD,AAAA,kBAAkB,CAAC;MA8Bf,UAAU,EAAE,MAAM,GAoDrB;EAlFD,AAiCE,kBAjCgB,AAiChB,OAAQ,CAAC;IACP,OAAO,EAAE,KAAK,GACf;EAnCH,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;IACD,KAAK,ElB/CC,OAAO;IkBgDb,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,OAAO,GASxB;IAPC,MAAM,EAAC,SAAS,EAAE,KAAK;MA9C3B,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;QAUC,UAAU,EAAE,KAAK,GAMpB;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MAlD3B,AAqCE,kBArCgB,CAqChB,EAAE,CAAC;QAcC,UAAU,EAAE,IAAI,GAEnB;EArDH,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;IACN,UAAU,EAAE,GAAG,CAAC,KAAK,ClBpEf,OAAO;IkBqEb,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,MAAM;IAClB,gBAAgB,ElBnCZ,IAAI,GkBsDT;IAhBC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MAjEnD,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;QAWJ,QAAQ,EAAE,MAAM,GAenB;IAXC,MAAM,EAAC,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MAtEnD,AAuDE,kBAvDgB,CAuDhB,OAAO,CAAC;QAgBJ,QAAQ,EAAE,MAAM,GAUnB;IAjFH,AA0EI,kBA1Ec,CAuDhB,OAAO,CAmBL,YAAY,CAAC;MACX,UAAU,EAAE,IAAI;MAChB,KAAK,EAAE,KAAK;MACZ,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,WAAW;MACpB,SAAS,EAAE,IAAI,GAChB;;ACpGL,AACE,cADY,AACZ,KAAM,CAAC;EACL,OAAO,EAAE,MAAM,GAChB;;AAHH,AAKE,cALY,CAKZ,MAAM,CAAC;EACL,OAAO,EAAE,MAAM;EACf,SAAS,EAAE,OAAO;EAClB,MAAM,EAAE,CAAC,GACV;;AATH,AAWE,cAXY,CAWZ,UAAU,CAAC;EACT,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EAAE,IAAI;EACrB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,GAAG;EACf,iBAAiB,EAAE,GAAG;EACtB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,GAAG,GACpB;;AApBH,AAsBE,cAtBY,CAsBZ,KAAK,CAAC;EACJ,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,CAAC,GACV;;AAzBH,AA2BE,cA3BY,CA2BZ,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,iBAAiB,EAAE,IAAI;EACvB,WAAW,EAAE,CAAC,GACf;;AAhCH,AAiCS,cAjCK,AAiCZ,KAAM,CAAC,KAAK,CAAC;EACX,iBAAiB,EAAE,IAAI,GACxB;;AAnCH,AAqCE,cArCY,CAqCZ,eAAe,CAAC;EACd,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,SAAS,GAC3B;;ACxCH,AAAA,2BAA2B,CAAC;EAC1B,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,IAAI;EACrB,qBAAqB,EAAE,cAAc;EACrC,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI,GASpB;EANC,MAAM,EAAC,SAAS,EAAE,KAAK;IARzB,AAAA,2BAA2B,CAAC;MASxB,qBAAqB,EAAE,IAAI;MAC3B,kBAAkB,EAAE,cAAc;MAClC,YAAY,EAAE,KAAK;MACnB,aAAa,EAAE,KAAK,GAEvB;;AAED,AAAA,kBAAkB,CAAC;EACjB,MAAM,EAAE,KAAK;EACb,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,GAAG,GAsIjB;EAnIC,MAAM,EAAC,SAAS,EAAE,KAAK;IAPzB,AAAA,kBAAkB,CAAC;MAQf,MAAM,EAAE,KAAK;MACb,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,iBAAiB;MAChC,OAAO,EAAE,IAAI;MACb,aAAa,EAAE,IAAI,GA6HtB;MA1ID,AAeI,kBAfc,AAed,WAAY,CAAC;QACX,MAAM,EAAE,IAAI,GACb;MAjBL,AAmBI,kBAnBc,CAmBd,kBAAkB,CAAC;QACjB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI,GAab;QAlCL,AAuBe,kBAvBG,CAmBd,kBAAkB,GAId,IAAI,GAAG,EAAE,CAAC;UACV,UAAU,EAAE,CAAC;UACb,aAAa,EAAE,GAAG;UAClB,WAAW,EAAE,GAAG,GACjB;QA3BP,AA6Be,kBA7BG,CAmBd,kBAAkB,GAUd,IAAI,GAAG,CAAC,CAAC;UACT,UAAU,EAAE,CAAC;UACb,WAAW,EAAE,IAAI;UACjB,SAAS,EAAE,IAAI,GAChB;EAIL,MAAM,EAAC,SAAS,EAAE,KAAK;IArCzB,AAAA,kBAAkB,CAAC;MAsCf,MAAM,EAAE,KAAK,GAoGhB;EA1ID,AAyCE,kBAzCgB,CAyChB,uBAAuB,CAAC;IACtB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,KAAK;IACtB,mBAAmB,EAAE,aAAa;IAClC,iBAAiB,EAAE,SAAS;IAC5B,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,MAAM,GAwBvB;IArBC,MAAM,EAAC,SAAS,EAAE,KAAK;MAnD3B,AAyCE,kBAzCgB,CAyChB,uBAAuB,CAAC;QAWpB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI,GAkBxB;IAxEH,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAgBrB,OAAQ,CAAC;MACP,gBAAgB,EAAE,gFAAgF,GACnG;IA3DL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAoBrB,gBAAiB,CAAC;MAChB,gBAAgB,EAAE,yFAAyF,GAC5G;IA/DL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AAwBrB,YAAa,CAAC;MACZ,gBAAgB,EAAE,qFAAqF,GACxG;IAnEL,AAyCE,kBAzCgB,CAyChB,uBAAuB,AA4BrB,KAAM,CAAC;MACL,gBAAgB,EAAE,8EAA8E,GACjG;EAvEL,AA0EE,kBA1EgB,CA0EhB,kBAAkB,CAAC;IACjB,MAAM,EAAE,KAAK,GAoBd;IA/FH,AA6Ea,kBA7EK,CA0EhB,kBAAkB,GAGd,IAAI,GAAG,EAAE,CAAC;MACV,KAAK,EpBhFD,OAAO;MoBiFX,aAAa,EAAE,GAAG;MAClB,WAAW,EAAE,GAAG,GACjB;IAjFL,AAmFa,kBAnFK,CA0EhB,kBAAkB,GASd,IAAI,GAAG,CAAC,CAAC;MACT,KAAK,EpBzFD,OAAO;MoB0FX,UAAU,EAAE,CAAC;MACb,MAAM,EAAE,KAAK;MACb,aAAa,EAAE,IAAI;MACnB,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,IAAI,GAKlB;MAHC,MAAM,EAAC,SAAS,EAAE,KAAK;QA3F7B,AAmFa,kBAnFK,CA0EhB,kBAAkB,GASd,IAAI,GAAG,CAAC,CAAC;UASP,aAAa,EAAE,GAAG,GAErB;EA9FL,AAiGE,kBAjGgB,CAiGhB,iBAAiB,CAAC;IAChB,gBAAgB,EpBpGV,qBAAO;IoBqGb,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,IAAI,GAahB;IAVC,MAAM,EAAC,SAAS,EAAE,KAAK;MA3G3B,AAiGE,kBAjGgB,CAiGhB,iBAAiB,CAAC;QAWd,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK,GAOtB;IAJC,MAAM,EAAC,SAAS,EAAE,KAAK;MAjH3B,AAiGE,kBAjGgB,CAiGhB,iBAAiB,CAAC;QAiBd,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAI,GAEnB;EArHH,AAwHE,kBAxHgB,AAwHhB,QAAS,CAAC;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,OAAO;IACzB,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK,GAMnB;IAHC,MAAM,EAAC,SAAS,EAAE,KAAK;MAlI3B,AAwHE,kBAxHgB,AAwHhB,QAAS,CAAC;QAWN,OAAO,EAAE,IAAI,GAEhB;EArIH,AAuIE,kBAvIgB,AAuIhB,WAAY,AAAA,QAAQ,CAAC;IACnB,OAAO,EAAE,IAAI,GACd"
}
\ No newline at end of file
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js
@@ -898,17 +898,18 @@ function Theme(prevState = INITIAL_STATE
var reducers = { TopSites, App, Snippets, Prefs, Dialog, Sections, Theme };
/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
+/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export convertLinks */
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_common_Actions_jsm__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_fluent_react__ = __webpack_require__(25);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_content_src_lib_init_store__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_ImpressionsWrapper_ImpressionsWrapper__ = __webpack_require__(27);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_fluent__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__templates_OnboardingMessage_OnboardingMessage__ = __webpack_require__(28);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(12);
@@ -992,46 +993,47 @@ const ALLOWED_TAGS = {
em: __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement("em", null),
br: __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement("br", null)
};
/**
* Transform an object (tag name: {url}) into (tag name: anchor) where the url
* is used as href, in order to render links inside a Fluent.Localized component.
*/
-function convertLinks(links) {
+function convertLinks(links, sendClick) {
if (links) {
return Object.keys(links).reduce((acc, linkTag) => {
- acc[linkTag] = __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement("a", { href: Object(__WEBPACK_IMPORTED_MODULE_8__template_utils__["a" /* safeURI */])(links[linkTag].url) });
+ acc[linkTag] = __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement("a", { href: Object(__WEBPACK_IMPORTED_MODULE_8__template_utils__["a" /* safeURI */])(links[linkTag].url), "data-metric": links[linkTag].metric, onClick: sendClick });
return acc;
}, {});
}
return null;
}
/**
* Message wrapper used to sanitize markup and render HTML.
*/
function RichText(props) {
return __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_1_fluent_react__["b" /* Localized */],
- _extends({ id: "RichTextSnippet" }, ALLOWED_TAGS, convertLinks(props.links)),
+ _extends({ id: "RichTextSnippet" }, ALLOWED_TAGS, convertLinks(props.links, props.sendClick)),
__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(
"span",
null,
props.text
)
);
}
class ASRouterUISurface extends __WEBPACK_IMPORTED_MODULE_6_react___default.a.PureComponent {
constructor(props) {
super(props);
this.onMessageFromParent = this.onMessageFromParent.bind(this);
+ this.sendClick = this.sendClick.bind(this);
this.sendImpression = this.sendImpression.bind(this);
this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);
this.state = { message: {}, bundle: {} };
}
sendUserActionTelemetry(extraProps = {}) {
const { message, bundle } = this.state;
if (!message && !extraProps.message_id) {
@@ -1044,16 +1046,29 @@ class ASRouterUISurface extends __WEBPAC
action: eventType
}, extraProps));
}
sendImpression(extraProps) {
this.sendUserActionTelemetry(Object.assign({ event: "IMPRESSION" }, extraProps));
}
+ // If link has a `metric` data attribute send it as part of the `value`
+ // telemetry field which can have arbitrary values.
+ // Used for router messages with links as part of the content.
+ sendClick(event) {
+ const metric = {
+ value: event.target.dataset.metric,
+ // Used for the `source` of the event. Needed to differentiate
+ // from other snippet or onboarding events that may occur.
+ id: "NEWTAB_FOOTER_BAR_CONTENT"
+ };
+ this.sendUserActionTelemetry(Object.assign({ event: "CLICK_BUTTON" }, metric));
+ }
+
onBlockById(id) {
return () => ASRouterUtils.blockById(id);
}
clearBundle(bundle) {
return () => ASRouterUtils.blockBundle(bundle);
}
@@ -1098,17 +1113,19 @@ class ASRouterUISurface extends __WEBPAC
sendImpression: this.sendImpression,
shouldSendImpressionOnUpdate: shouldSendImpressionOnUpdate
// This helps with testing
, document: this.props.document },
__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(
__WEBPACK_IMPORTED_MODULE_1_fluent_react__["a" /* LocalizationProvider */],
{ messages: generateMessages(this.state.message.content.text) },
__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_9__templates_SimpleSnippet_SimpleSnippet__["a" /* SimpleSnippet */], _extends({}, this.state.message, {
- richText: __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(RichText, { text: this.state.message.content.text, links: this.state.message.content.links }),
+ richText: __WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(RichText, { text: this.state.message.content.text,
+ links: this.state.message.content.links,
+ sendClick: this.sendClick }),
UISurface: "NEWTAB_FOOTER_BAR",
getNextMessage: ASRouterUtils.getNextMessage,
onBlock: this.onBlockById(this.state.message.id),
sendUserActionTelemetry: this.sendUserActionTelemetry }))
)
);
}
@@ -5613,36 +5630,37 @@ class SnippetsProvider {
function addSnippetsSubscriber(store) {
const snippets = new SnippetsProvider(store.dispatch);
const asrouterContent = new __WEBPACK_IMPORTED_MODULE_1_content_src_asrouter_asrouter_content__["a" /* ASRouterContent */]();
let initializing = false;
store.subscribe(_asyncToGenerator(function* () {
const state = store.getState();
+ const isASRouterEnabled = state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort > 0;
// state.Prefs.values["feeds.snippets"]: Should snippets be shown?
// state.Snippets.initialized Is the snippets data initialized?
// snippets.initialized: Is SnippetsProvider currently initialised?
if (state.Prefs.values["feeds.snippets"] &&
// If the message center experiment is enabled, don't show snippets
- !state.Prefs.values.asrouterExperimentEnabled && !state.Prefs.values.disableSnippets && state.Snippets.initialized && !snippets.initialized &&
+ !isASRouterEnabled && !state.Prefs.values.disableSnippets && state.Snippets.initialized && !snippets.initialized &&
// Don't call init multiple times
!initializing && location.href !== "about:welcome") {
initializing = true;
yield snippets.init({ appData: state.Snippets });
initializing = false;
} else if ((state.Prefs.values["feeds.snippets"] === false || state.Prefs.values.disableSnippets === true) && snippets.initialized) {
snippets.uninit();
}
// Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;
// otherwise, turn it off.
- if (state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values["feeds.snippets"] && !asrouterContent.initialized) {
+ if ((state.Prefs.values.asrouterExperimentEnabled || state.Prefs.values.asrouterOnboardingCohort > 0) && state.Prefs.values["feeds.snippets"] && !asrouterContent.initialized) {
asrouterContent.init();
- } else if ((!state.Prefs.values.asrouterExperimentEnabled || !state.Prefs.values["feeds.snippets"]) && asrouterContent.initialized) {
+ } else if ((!state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort === 0 || !state.Prefs.values["feeds.snippets"]) && asrouterContent.initialized) {
asrouterContent.uninit();
}
}));
// These values are returned for testing purposes
return { snippets, asrouterContent };
}
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))
@@ -6632,17 +6650,18 @@ class _Base extends __WEBPACK_IMPORTED_M
}
}
render() {
const { props } = this;
const { App, locale, strings } = props;
const { initialized } = App;
- if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === "#asrouter") {
+ const prefs = props.Prefs.values;
+ if ((prefs.asrouterExperimentEnabled || prefs.asrouterOnboardingCohort > 0) && window.location.hash === "#asrouter") {
return __WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2_content_src_components_ASRouterAdmin_ASRouterAdmin__["a" /* ASRouterAdmin */], null);
}
if (!props.isPrerendered && !initialized) {
return null;
}
return __WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(
@@ -8768,17 +8787,17 @@ class _StartupOverlay extends __WEBPACK_
"div",
{ className: "firstrun-sign-in" },
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
"p",
{ className: "form-header" },
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react_intl__["FormattedMessage"], { id: "firstrun_form_header" }),
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
"span",
- null,
+ { className: "sub-header" },
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_0_react_intl__["FormattedMessage"], { id: "firstrun_form_sub_header" })
)
),
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
"form",
{ method: "get", action: "https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun", target: "_blank", rel: "noopener noreferrer", onSubmit: this.onSubmit },
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement("input", { name: "service", type: "hidden", value: "sync" }),
__WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement("input", { name: "action", type: "hidden", value: "email" }),
--- a/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
+++ b/browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
@@ -1,1 +1,1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap dcef736e2a9388af1ee9","webpack:///external \"React\"","webpack:///./common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"PropTypes\"","webpack:///./node_modules/fluent/src/parser.js","webpack:///./node_modules/fluent/src/types.js","webpack:///./node_modules/fluent/src/builtins.js","webpack:///./node_modules/fluent/src/resolver.js","webpack:///./node_modules/fluent/src/context.js","webpack:///./node_modules/fluent/src/cached_iterable.js","webpack:///./node_modules/fluent/src/fallback.js","webpack:///./node_modules/fluent/src/util.js","webpack:///./node_modules/fluent/src/index.js","webpack:///./content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./content-src/lib/link-menu-options.js","webpack:///./content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./content-src/lib/screenshot-utils.js","webpack:///./content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/activity-stream.jsx","webpack:///./content-src/lib/snippets.js","webpack:///./node_modules/fluent-react/src/localization.js","webpack:///./node_modules/fluent-react/src/provider.js","webpack:///./node_modules/fluent-react/src/with_localization.js","webpack:///./node_modules/fluent-react/src/markup.js","webpack:///./node_modules/fluent-react/vendor/omittedCloseTags.js","webpack:///./node_modules/fluent-react/vendor/voidElementTags.js","webpack:///./node_modules/fluent-react/src/localized.js","webpack:///./node_modules/fluent-react/src/index.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/components/Base/Base.jsx","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./common/PrerenderData.jsm","webpack:///./content-src/components/Search/Search.jsx","webpack:///./content-src/lib/constants.js","webpack:///./content-src/components/Sections/Sections.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","safeURI","url","protocol","URL","isAllowed","includes","console","warn","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","Object","assign","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","blockBundle","bundle","executeAction","button_action","button_action_params","unblockById","unblockBundle","getNextMessage","overrideMessage","sendTelemetry","ping","payload","ac","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","keys","acc","linkTag","RichText","props","text","ASRouterUISurface","React","PureComponent","onMessageFromParent","bind","sendImpression","sendUserActionTelemetry","state","extraProps","message_id","eventType","provider","event","onBlockById","clearBundle","setState","componentWillMount","componentWillUnmount","renderSnippets","document","renderOnboarding","render","template","defaultProps","ASRouterContent","containerElement","_mount","getElementById","ReactDOM","_unmount","unmountComponentAtNode","init","uninit","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","entries","errors","skipWS","getEntry","e","SyntaxError","skipToNextEntryStart","error","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","getPattern","startsWith","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","toString","start","cc","charCodeAt","slice","getString","substring","eol","indexOf","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","args","getCallArgs","test","fun","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","Date","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","get","_messages","err","ReferenceError","VariantExpression","keyword","Type","isVariantList","node","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","undefined","hasOwnProperty","TypeError","_functions","func","builtins","callee","posargs","keyargs","ptn","dirty","useIsolating","_useIsolating","elem","part","delete","join","resolve","WeakSet","locales","functions","_intls","WeakMap","messages","Symbol","iterator","hasMessage","ctor","cache","JSON","stringify","CachedIterable","iterable","asyncIterator","seen","cur","next","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","strings","code","lines","split","indents","common","Math","min","RegExp","replace","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","dump","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","collapsed","sectionBody","scrollHeight","visibilityState","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","isWebExtension","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","mostRecentEntry","startTime","TopSiteLink","screenshotImage","onDragEvent","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","clear","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","dispatchEvent","Event","snippets","asrouterContent","initializing","subscribe","asrouterExperimentEnabled","disableSnippets","contexts","subs","comp","unsubscribe","setMessages","relocalize","getMessageContext","formatCompound","mcx","fallback","isReactLocalization","propName","prop","l10n","getChildContext","Children","only","LocalizationProvider","childContextTypes","propTypes","PropTypes","element","isRequired","isIterable","componentName","withLocalization","Inner","WithLocalization","forceUpdate","displayName","contextTypes","component","TEMPLATE","parseMarkup","omittedCloseTags","area","base","col","embed","hr","img","input","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","substr","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","ImpressionsWrapper","sendImpressionOrAddListener","_onVisibilityChange","sendOnMount","body","classList","remove","button_label","onDoneButton","UISurface","onAction","ALLOWED_STYLE_TAGS","Button","tag","border","onBlockClicked","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_url","button_color","button_background_color","hasLink","button_type","hasButton","tall","richText","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","isFirstrun","v","renderNotified","NEW_TAB_REHYDRATED","hash","BaseContent","openPreferences","prefs","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","bundled","handleBlock","handleUnblock","handleOverride","renderMessageItem","isCurrent","lastMessageId","isBlocked","itemClassName","renderMessages","renderProviders","providers","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","isCollapsed","wasCollapsed","emptyState","contextMenuOptions","maxCardsPerRow","maxCardsOnNarrow","shouldShowTopics","topics","realRows","shouldShowEmptyState","sectionClassName","feed","padding","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","cardImage","maybeLoadImage","imageUrl","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","_Card","hasImage","placeholder","description","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","emailInput","show","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap dcef736e2a9388af1ee9","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n * Use this in action creators if you need different logic\n * for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n// INIT: \"INIT\",\n// UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n \"ADDONS_INFO_REQUEST\",\n \"ADDONS_INFO_RESPONSE\",\n \"ARCHIVE_FROM_POCKET\",\n \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n \"BLOCK_URL\",\n \"BOOKMARK_URL\",\n \"COPY_DOWNLOAD_LINK\",\n \"DELETE_BOOKMARK_BY_ID\",\n \"DELETE_FROM_POCKET\",\n \"DELETE_HISTORY_URL\",\n \"DIALOG_CANCEL\",\n \"DIALOG_OPEN\",\n \"DISABLE_ONBOARDING\",\n \"DOWNLOAD_CHANGED\",\n \"INIT\",\n \"MIGRATION_CANCEL\",\n \"MIGRATION_COMPLETED\",\n \"MIGRATION_START\",\n \"NEW_TAB_INIT\",\n \"NEW_TAB_INITIAL_STATE\",\n \"NEW_TAB_LOAD\",\n \"NEW_TAB_REHYDRATED\",\n \"NEW_TAB_STATE_REQUEST\",\n \"NEW_TAB_UNLOAD\",\n \"OPEN_DOWNLOAD_FILE\",\n \"OPEN_LINK\",\n \"OPEN_NEW_WINDOW\",\n \"OPEN_PRIVATE_WINDOW\",\n \"OPEN_WEBEXT_SETTINGS\",\n \"PAGE_PRERENDERED\",\n \"PLACES_BOOKMARK_ADDED\",\n \"PLACES_BOOKMARK_REMOVED\",\n \"PLACES_HISTORY_CLEARED\",\n \"PLACES_LINKS_CHANGED\",\n \"PLACES_LINK_BLOCKED\",\n \"PLACES_LINK_DELETED\",\n \"PLACES_SAVED_TO_POCKET\",\n \"PREFS_INITIAL_VALUES\",\n \"PREF_CHANGED\",\n \"PREVIEW_REQUEST\",\n \"PREVIEW_REQUEST_CANCEL\",\n \"PREVIEW_RESPONSE\",\n \"REMOVE_DOWNLOAD_FILE\",\n \"RICH_ICON_MISSING\",\n \"SAVE_SESSION_PERF_DATA\",\n \"SAVE_TO_POCKET\",\n \"SCREENSHOT_UPDATED\",\n \"SECTION_DEREGISTER\",\n \"SECTION_DISABLE\",\n \"SECTION_ENABLE\",\n \"SECTION_MOVE\",\n \"SECTION_OPTIONS_CHANGED\",\n \"SECTION_REGISTER\",\n \"SECTION_UPDATE\",\n \"SECTION_UPDATE_CARD\",\n \"SETTINGS_CLOSE\",\n \"SETTINGS_OPEN\",\n \"SET_PREF\",\n \"SHOW_DOWNLOAD_FILE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n \"SKIPPED_SIGNIN\",\n \"SNIPPETS_BLOCKLIST_CLEARED\",\n \"SNIPPETS_BLOCKLIST_UPDATED\",\n \"SNIPPETS_DATA\",\n \"SNIPPETS_RESET\",\n \"SNIPPET_BLOCKED\",\n \"SUBMIT_EMAIL\",\n \"SYSTEM_TICK\",\n \"TELEMETRY_IMPRESSION_STATS\",\n \"TELEMETRY_PERFORMANCE_EVENT\",\n \"TELEMETRY_UNDESIRED_EVENT\",\n \"TELEMETRY_USER_EVENT\",\n \"THEME_UPDATE\",\n \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_PIN\",\n \"TOP_SITES_PREFS_UPDATED\",\n \"TOP_SITES_UNPIN\",\n \"TOP_SITES_UPDATED\",\n \"TOTAL_BOOKMARKS_REQUEST\",\n \"TOTAL_BOOKMARKS_RESPONSE\",\n \"UNINIT\",\n \"UPDATE_SECTION_PREFS\",\n \"WEBEXT_CLICK\",\n \"WEBEXT_DISMISS\"\n]) {\n actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\"\n]) {\n ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n const meta = action.meta ? {...action.meta} : {};\n if (!options || !options.from || !options.to) {\n throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n }\n // For each of these fields, if they are passed as an option,\n // add them to the action. If they are not defined, remove them.\n [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n if (typeof options[o] !== \"undefined\") {\n meta[o] = options[o];\n } else if (meta[o]) {\n delete meta[o];\n }\n });\n return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {bool} skipLocal Used by OnlyToMain to skip the main reducer\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n return _RouteMessage(action, {\n from: CONTENT_MESSAGE_TYPE,\n to: MAIN_MESSAGE_TYPE,\n fromTarget,\n skipLocal\n });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE\n });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n * and also sent to a particular Content process.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @param {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n if (!target) {\n throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n }\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n toTarget: target,\n skipMain\n });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n * and skip the main reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: PRELOAD_MESSAGE_TYPE\n });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n return AlsoToMain({\n type: actionTypes.TELEMETRY_USER_EVENT,\n data\n });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n return AlsoToMain({\n type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n data\n });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param {object} data Fields to include in the ping\n * @param {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n const action = {type: actionTypes.SET_PREF, data: {name, value}};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n if (!data || !data.source) {\n throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n }\n const action = {type, data};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n BroadcastToContent,\n UserEvent,\n ASRouterUserEvent,\n UndesiredEvent,\n PerfEvent,\n ImpressionStats,\n AlsoToOneContent,\n OnlyToOneContent,\n AlsoToMain,\n OnlyToMain,\n AlsoToPreloaded,\n SetPref,\n WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n isSendToMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n },\n isBroadcastToContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToOneContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToPreloaded(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n action.meta.from === MAIN_MESSAGE_TYPE;\n },\n isFromMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.from === MAIN_MESSAGE_TYPE &&\n action.meta.to === CONTENT_MESSAGE_TYPE;\n },\n getPortIdOfSender(action) {\n return (action.meta && action.meta.fromTarget) || null;\n },\n _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n \"actionTypes\",\n \"actionCreators\",\n \"actionUtils\",\n \"ASRouterActions\",\n \"globalImportContext\",\n \"UI_CODE\",\n \"BACKGROUND_PROCESS\",\n \"MAIN_MESSAGE_TYPE\",\n \"CONTENT_MESSAGE_TYPE\",\n \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export function safeURI(url) {\n if (!url) {\n return \"\";\n }\n const {protocol} = new URL(url);\n const isAllowed = [\n \"http:\",\n \"https:\",\n \"data:\",\n \"resource:\",\n \"chrome:\"\n ].includes(protocol);\n if (!isAllowed) {\n console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n }\n return isAllowed ? url : \"\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/template-utils.js","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n constructor(createKey) {\n this.createKey = createKey || this.defaultCreateKey;\n }\n\n defaultCreateKey(item) {\n return item;\n }\n\n /**\n * Dedupe any number of grouped elements favoring those from earlier groups.\n *\n * @param {Array} groups Contains an arbitrary number of arrays of elements.\n * @returns {Array} A matching array of each provided group deduped.\n */\n group(...groups) {\n const globalKeys = new Set();\n const result = [];\n for (const values of groups) {\n const valueMap = new Map();\n for (const value of values) {\n const key = this.createKey(value);\n if (!globalKeys.has(key) && !valueMap.has(key)) {\n valueMap.set(key, value);\n }\n }\n result.push(valueMap);\n valueMap.forEach((value, key) => globalKeys.add(key));\n }\n return result.map(m => Array.from(m.values()));\n }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n App: {\n // Have we received real data from the app yet?\n initialized: false,\n // The version of the system-addon\n version: null\n },\n Snippets: {initialized: false},\n TopSites: {\n // Have we received real data from history yet?\n initialized: false,\n // The history (and possibly default) links\n rows: [],\n // Used in content only to dispatch action to TopSiteForm.\n editForm: null\n },\n Prefs: {\n initialized: false,\n values: {}\n },\n Theme: {className: \"\"},\n Dialog: {\n visible: false,\n data: {}\n },\n Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n switch (action.type) {\n case at.INIT:\n return Object.assign({}, prevState, action.data || {}, {initialized: true});\n default:\n return prevState;\n }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n // Remove any pinned links\n const pinnedUrls = pinned.map(link => link && link.url);\n let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n newLinks = newLinks.map(link => {\n if (link && link.isPinned) {\n delete link.isPinned;\n delete link.pinIndex;\n }\n return link;\n });\n\n // Then insert them in their specified location\n pinned.forEach((val, index) => {\n if (!val) { return; }\n let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n if (index > newLinks.length) {\n newLinks[index] = link;\n } else {\n newLinks.splice(index, 0, link);\n }\n });\n\n return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n let hasMatch;\n let newRows;\n switch (action.type) {\n case at.TOP_SITES_UPDATED:\n if (!action.data || !action.data.links) {\n return prevState;\n }\n return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n case at.TOP_SITES_PREFS_UPDATED:\n return Object.assign({}, prevState, {pref: action.data.pref});\n case at.TOP_SITES_EDIT:\n return Object.assign({}, prevState, {\n editForm: {\n index: action.data.index,\n previewResponse: null\n }\n });\n case at.TOP_SITES_CANCEL_EDIT:\n return Object.assign({}, prevState, {editForm: null});\n case at.PREVIEW_RESPONSE:\n if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: action.data.preview,\n previewUrl: action.data.url\n }\n });\n case at.PREVIEW_REQUEST:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n previewUrl: action.data.url\n }\n });\n case at.PREVIEW_REQUEST_CANCEL:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null\n }\n });\n case at.SCREENSHOT_UPDATED:\n newRows = prevState.rows.map(row => {\n if (row && row.url === action.data.url) {\n hasMatch = true;\n return Object.assign({}, row, {screenshot: action.data.screenshot});\n }\n return row;\n });\n return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const newSite = Object.assign({}, site);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n return newSite;\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_LINK_DELETED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.filter(site => action.data.url !== site.url);\n return Object.assign({}, prevState, {rows: newRows});\n default:\n return prevState;\n }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n switch (action.type) {\n case at.DIALOG_OPEN:\n return Object.assign({}, prevState, {visible: true, data: action.data});\n case at.DIALOG_CANCEL:\n return Object.assign({}, prevState, {visible: false});\n case at.DELETE_HISTORY_URL:\n return Object.assign({}, INITIAL_STATE.Dialog);\n default:\n return prevState;\n }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n let newValues;\n switch (action.type) {\n case at.PREFS_INITIAL_VALUES:\n return Object.assign({}, prevState, {initialized: true, values: action.data});\n case at.PREF_CHANGED:\n newValues = Object.assign({}, prevState.values);\n newValues[action.data.name] = action.data.value;\n return Object.assign({}, prevState, {values: newValues});\n default:\n return prevState;\n }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n let hasMatch;\n let newState;\n switch (action.type) {\n case at.SECTION_DEREGISTER:\n return prevState.filter(section => section.id !== action.data);\n case at.SECTION_REGISTER:\n // If section exists in prevState, update it\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n hasMatch = true;\n return Object.assign({}, section, action.data);\n }\n return section;\n });\n // Otherwise, append it\n if (!hasMatch) {\n const initialized = !!(action.data.rows && action.data.rows.length > 0);\n const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n newState.push(section);\n }\n return newState;\n case at.SECTION_UPDATE:\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n // If the action is updating rows, we should consider initialized to be true.\n // This can be overridden if initialized is defined in the action.data\n const initialized = action.data.rows ? {initialized: true} : {};\n\n // Make sure pinned cards stay at their current position when rows are updated.\n // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n const rows = Array.from(action.data.rows);\n section.rows.forEach((card, index) => {\n if (card.pinned) {\n rows.splice(index, 0, card);\n }\n });\n return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n }\n\n return Object.assign({}, section, initialized, action.data);\n }\n return section;\n });\n\n if (!action.data.dedupeConfigurations) {\n return newState;\n }\n\n action.data.dedupeConfigurations.forEach(dedupeConf => {\n newState = newState.map(section => {\n if (section.id === dedupeConf.id) {\n const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n return newRows;\n }, section.rows);\n\n return Object.assign({}, section, {rows: dedupedRows});\n }\n\n return section;\n });\n });\n\n return newState;\n case at.SECTION_UPDATE_CARD:\n return prevState.map(section => {\n if (section && section.id === action.data.id && section.rows) {\n const newRows = section.rows.map(card => {\n if (card.url === action.data.url) {\n return Object.assign({}, card, action.data.options);\n }\n return card;\n });\n return Object.assign({}, section, {rows: newRows});\n }\n return section;\n });\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the item within the rows that is attempted to be bookmarked\n if (item.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, item, {\n bookmarkGuid,\n bookmarkTitle,\n bookmarkDateCreated: dateAdded,\n type: \"bookmark\"\n });\n }\n return item;\n })\n }));\n case at.PLACES_SAVED_TO_POCKET:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n if (item.url === action.data.url) {\n return Object.assign({}, item, {\n open_url: action.data.open_url,\n pocket_id: action.data.pocket_id,\n title: action.data.title,\n type: \"pocket\"\n });\n }\n return item;\n })\n }));\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the bookmark within the rows that is attempted to be removed\n if (item.url === action.data.url) {\n const newSite = Object.assign({}, item);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n if (!newSite.type || newSite.type === \"bookmark\") {\n newSite.type = \"history\";\n }\n return newSite;\n }\n return item;\n })\n }));\n case at.PLACES_LINK_DELETED:\n case at.PLACES_LINK_BLOCKED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n case at.DELETE_FROM_POCKET:\n case at.ARCHIVE_FROM_POCKET:\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n default:\n return prevState;\n }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n switch (action.type) {\n case at.SNIPPETS_DATA:\n return Object.assign({}, prevState, {initialized: true}, action.data);\n case at.SNIPPET_BLOCKED:\n return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n case at.SNIPPETS_BLOCKLIST_CLEARED:\n return Object.assign({}, prevState, {blockList: []});\n case at.SNIPPETS_RESET:\n return INITIAL_STATE.Snippets;\n default:\n return prevState;\n }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n switch (action.type) {\n case at.THEME_UPDATE:\n return Object.assign({}, prevState, action.data);\n default:\n return prevState;\n }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Reducers.jsm","import {actionCreators as ac, ASRouterActions as ra} from \"common/Actions.jsm\";\nimport {LocalizationProvider, Localized} from \"fluent-react\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {MessageContext} from \"fluent\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {safeURI} from \"./template-utils\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction({button_action, button_action_params}) {\n if (button_action in ra) {\n ASRouterUtils.sendMessage({type: button_action, data: {button_action_params}});\n }\n },\n unblockById(id) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n unblockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n },\n getNextMessage() {\n ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n },\n overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n }\n};\n\n// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nfunction generateMessages(content) {\n const cx = new MessageContext(\"en-US\");\n cx.addMessages(`RichTextSnippet = ${content}`);\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: <b />,\n i: <i />,\n u: <u />,\n strong: <strong />,\n em: <em />,\n br: <br />\n};\n\n/**\n * Transform an object (tag name: {url}) into (tag name: anchor) where the url\n * is used as href, in order to render links inside a Fluent.Localized component.\n */\nfunction convertLinks(links) {\n if (links) {\n return Object.keys(links).reduce((acc, linkTag) => {\n acc[linkTag] = <a href={safeURI(links[linkTag].url)} />;\n return acc;\n }, {});\n }\n\n return null;\n}\n\n/**\n * Message wrapper used to sanitize markup and render HTML.\n */\nfunction RichText(props) {\n return (\n <Localized id=\"RichTextSnippet\" {...ALLOWED_TAGS} {...convertLinks(props.links)}>\n <span>{props.text}</span>\n </Localized>\n );\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessageFromParent = this.onMessageFromParent.bind(this);\n this.sendImpression = this.sendImpression.bind(this);\n this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n this.state = {message: {}, bundle: {}};\n }\n\n sendUserActionTelemetry(extraProps = {}) {\n const {message, bundle} = this.state;\n if (!message && !extraProps.message_id) {\n throw new Error(`You must provide a message_id for bundled messages`);\n }\n const eventType = `${message.provider || bundle.provider}_user_event`;\n ASRouterUtils.sendTelemetry({\n message_id: message.id || extraProps.message_id,\n source: extraProps.id,\n action: eventType,\n ...extraProps\n });\n }\n\n sendImpression(extraProps) {\n this.sendUserActionTelemetry({event: \"IMPRESSION\", ...extraProps});\n }\n\n onBlockById(id) {\n return () => ASRouterUtils.blockById(id);\n }\n\n clearBundle(bundle) {\n return () => ASRouterUtils.blockBundle(bundle);\n }\n\n onMessageFromParent({data: action}) {\n switch (action.type) {\n case \"SET_MESSAGE\":\n this.setState({message: action.data});\n break;\n case \"SET_BUNDLED_MESSAGES\":\n this.setState({bundle: action.data});\n break;\n case \"CLEAR_MESSAGE\":\n if (action.data.id === this.state.message.id) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_BUNDLE\":\n if (this.state.bundle.bundle) {\n this.setState({bundle: {}});\n }\n break;\n case \"CLEAR_ALL\":\n this.setState({message: {}, bundle: {}});\n }\n }\n\n componentWillMount() {\n ASRouterUtils.addListener(this.onMessageFromParent);\n ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n return (\n <ImpressionsWrapper\n id=\"NEWTAB_FOOTER_BAR\"\n message={this.state.message}\n sendImpression={this.sendImpression}\n shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}\n // This helps with testing\n document={this.props.document}>\n <LocalizationProvider messages={generateMessages(this.state.message.content.text)}>\n <SimpleSnippet\n {...this.state.message}\n richText={<RichText text={this.state.message.content.text} links={this.state.message.content.links} />}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n getNextMessage={ASRouterUtils.getNextMessage}\n onBlock={this.onBlockById(this.state.message.id)}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n </LocalizationProvider>\n </ImpressionsWrapper>);\n }\n\n renderOnboarding() {\n return (\n <OnboardingMessage\n {...this.state.bundle}\n UISurface=\"NEWTAB_OVERLAY\"\n onAction={ASRouterUtils.executeAction}\n onDoneButton={this.clearBundle(this.state.bundle.bundle)}\n getNextMessage={ASRouterUtils.getNextMessage}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />);\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n if (bundle.template === \"onboarding\") { return this.renderOnboarding(); }\n return this.renderSnippets();\n }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport class ASRouterContent {\n constructor() {\n this.initialized = false;\n this.containerElement = null;\n }\n\n _mount() {\n this.containerElement = global.document.getElementById(\"snippets-container\");\n ReactDOM.render(<ASRouterUISurface />, this.containerElement);\n }\n\n _unmount() {\n ReactDOM.unmountComponentAtNode(this.containerElement);\n }\n\n init() {\n this._mount();\n this.initialized = true;\n }\n\n uninit() {\n if (this.initialized) {\n this._unmount();\n this.initialized = false;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/asrouter-content.jsx","module.exports = PropTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"PropTypes\"\n// module id = 9\n// module chunks = 0","/* eslint no-magic-numbers: [0] */\n\nconst MAX_PLACEABLES = 100;\n\nconst entryIdentifierRe = /-?[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst identifierRe = /[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst functionIdentifierRe = /^[A-Z][A-Z_?-]*$/;\n\n/**\n * The `Parser` class is responsible for parsing FTL resources.\n *\n * It's only public method is `getResource(source)` which takes an FTL string\n * and returns a two element Array with an Object of entries generated from the\n * source as the first element and an array of SyntaxError objects as the\n * second.\n *\n * This parser is optimized for runtime performance.\n *\n * There is an equivalent of this parser in syntax/parser which is\n * generating full AST which is useful for FTL tools.\n */\nclass RuntimeParser {\n /**\n * Parse FTL code into entries formattable by the MessageContext.\n *\n * Given a string of FTL syntax, return a map of entries that can be passed\n * to MessageContext.format and a list of errors encountered during parsing.\n *\n * @param {String} string\n * @returns {Array<Object, Array>}\n */\n getResource(string) {\n this._source = string;\n this._index = 0;\n this._length = string.length;\n this.entries = {};\n\n const errors = [];\n\n this.skipWS();\n while (this._index < this._length) {\n try {\n this.getEntry();\n } catch (e) {\n if (e instanceof SyntaxError) {\n errors.push(e);\n\n this.skipToNextEntryStart();\n } else {\n throw e;\n }\n }\n this.skipWS();\n }\n\n return [this.entries, errors];\n }\n\n /**\n * Parse the source string from the current index as an FTL entry\n * and add it to object's entries property.\n *\n * @private\n */\n getEntry() {\n // The index here should either be at the beginning of the file\n // or right after new line.\n if (this._index !== 0 &&\n this._source[this._index - 1] !== \"\\n\") {\n throw this.error(`Expected an entry to start\n at the beginning of the file or on a new line.`);\n }\n\n const ch = this._source[this._index];\n\n // We don't care about comments or sections at runtime\n if (ch === \"/\" ||\n (ch === \"#\" &&\n [\" \", \"#\", \"\\n\"].includes(this._source[this._index + 1]))) {\n this.skipComment();\n return;\n }\n\n if (ch === \"[\") {\n this.skipSection();\n return;\n }\n\n this.getMessage();\n }\n\n /**\n * Skip the section entry from the current index.\n *\n * @private\n */\n skipSection() {\n this._index += 1;\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[[\" to open a section');\n }\n\n this._index += 1;\n\n this.skipInlineWS();\n this.getVariantName();\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"]\" ||\n this._source[this._index + 1] !== \"]\") {\n throw this.error('Expected \"]]\" to close a section');\n }\n\n this._index += 2;\n }\n\n /**\n * Parse the source string from the current index as an FTL message\n * and add it to the entries property on the Parser.\n *\n * @private\n */\n getMessage() {\n const id = this.getEntryIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"=\") {\n this._index++;\n }\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (id.startsWith(\"-\") && val === null) {\n throw this.error(\"Expected term to have a value\");\n }\n\n let attrs = null;\n\n if (this._source[this._index] === \" \") {\n const lineStart = this._index;\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n this._index = lineStart;\n attrs = this.getAttributes();\n }\n }\n\n if (attrs === null && typeof val === \"string\") {\n this.entries[id] = val;\n } else {\n if (val === null && attrs === null) {\n throw this.error(\"Expected message to have a value or attributes\");\n }\n\n this.entries[id] = {};\n\n if (val !== null) {\n this.entries[id].val = val;\n }\n\n if (attrs !== null) {\n this.entries[id].attrs = attrs;\n }\n }\n }\n\n /**\n * Skip whitespace.\n *\n * @private\n */\n skipWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip inline whitespace (space and \\t).\n *\n * @private\n */\n skipInlineWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\t\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip blank lines.\n *\n * @private\n */\n skipBlankLines() {\n while (true) {\n const ptr = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"\\n\") {\n this._index += 1;\n } else {\n this._index = ptr;\n break;\n }\n }\n }\n\n /**\n * Get identifier using the provided regex.\n *\n * By default this will get identifiers of public messages, attributes and\n * external arguments (without the $).\n *\n * @returns {String}\n * @private\n */\n getIdentifier(re = identifierRe) {\n re.lastIndex = this._index;\n const result = re.exec(this._source);\n\n if (result === null) {\n this._index += 1;\n throw this.error(`Expected an identifier [${re.toString()}]`);\n }\n\n this._index = re.lastIndex;\n return result[0];\n }\n\n /**\n * Get identifier of a Message or a Term (staring with a dash).\n *\n * @returns {String}\n * @private\n */\n getEntryIdentifier() {\n return this.getIdentifier(entryIdentifierRe);\n }\n\n /**\n * Get Variant name.\n *\n * @returns {Object}\n * @private\n */\n getVariantName() {\n let name = \"\";\n\n const start = this._index;\n let cc = this._source.charCodeAt(this._index);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 || cc === 32) { // _ <space>\n cc = this._source.charCodeAt(++this._index);\n } else {\n throw this.error(\"Expected a keyword (starting with [a-zA-Z_])\");\n }\n\n while ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || cc === 45 || cc === 32) { // _- <space>\n cc = this._source.charCodeAt(++this._index);\n }\n\n // If we encountered the end of name, we want to test if the last\n // collected character is a space.\n // If it is, we will backtrack to the last non-space character because\n // the keyword cannot end with a space character.\n while (this._source.charCodeAt(this._index - 1) === 32) {\n this._index--;\n }\n\n name += this._source.slice(start, this._index);\n\n return { type: \"varname\", name };\n }\n\n /**\n * Get simple string argument enclosed in `\"`.\n *\n * @returns {String}\n * @private\n */\n getString() {\n const start = this._index + 1;\n\n while (++this._index < this._length) {\n const ch = this._source[this._index];\n\n if (ch === '\"') {\n break;\n }\n\n if (ch === \"\\n\") {\n throw this.error(\"Unterminated string expression\");\n }\n }\n\n return this._source.substring(start, this._index++);\n }\n\n /**\n * Parses a Message pattern.\n * Message Pattern may be a simple string or an array of strings\n * and placeable expressions.\n *\n * @returns {String|Array}\n * @private\n */\n getPattern() {\n // We're going to first try to see if the pattern is simple.\n // If it is we can just look for the end of the line and read the string.\n //\n // Then, if either the line contains a placeable opening `{` or the\n // next line starts an indentation, we switch to complex pattern.\n const start = this._index;\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n eol = this._length;\n }\n\n const firstLineContent = start !== eol ?\n this._source.slice(start, eol) : null;\n\n if (firstLineContent && firstLineContent.includes(\"{\")) {\n return this.getComplexPattern();\n }\n\n this._index = eol + 1;\n\n this.skipBlankLines();\n\n if (this._source[this._index] !== \" \") {\n // No indentation means we're done with this message. Callers should check\n // if the return value here is null. It may be OK for messages, but not OK\n // for terms, attributes and variants.\n return firstLineContent;\n }\n\n const lineStart = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n // The pattern is followed by an attribute. Rewind _index to the first\n // column of the current line as expected by getAttributes.\n this._index = lineStart;\n return firstLineContent;\n }\n\n if (firstLineContent) {\n // It's a multiline pattern which started on the same line as the\n // identifier. Reparse the whole pattern to make sure we get all of it.\n this._index = start;\n }\n\n return this.getComplexPattern();\n }\n\n /**\n * Parses a complex Message pattern.\n * This function is called by getPattern when the message is multiline,\n * or contains escape chars or placeables.\n * It does full parsing of complex patterns.\n *\n * @returns {Array}\n * @private\n */\n /* eslint-disable complexity */\n getComplexPattern() {\n let buffer = \"\";\n const content = [];\n let placeables = 0;\n\n let ch = this._source[this._index];\n\n while (this._index < this._length) {\n // This block handles multi-line strings combining strings separated\n // by new line.\n if (ch === \"\\n\") {\n this._index++;\n\n // We want to capture the start and end pointers\n // around blank lines and add them to the buffer\n // but only if the blank lines are in the middle\n // of the string.\n const blankLinesStart = this._index;\n this.skipBlankLines();\n const blankLinesEnd = this._index;\n\n\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] === \"}\" ||\n this._source[this._index] === \"[\" ||\n this._source[this._index] === \"*\" ||\n this._source[this._index] === \".\") {\n this._index = blankLinesEnd;\n break;\n }\n\n buffer += this._source.substring(blankLinesStart, blankLinesEnd);\n\n if (buffer.length || content.length) {\n buffer += \"\\n\";\n }\n ch = this._source[this._index];\n continue;\n } else if (ch === \"\\\\\") {\n const ch2 = this._source[this._index + 1];\n if (ch2 === '\"' || ch2 === \"{\" || ch2 === \"\\\\\") {\n ch = ch2;\n this._index++;\n }\n } else if (ch === \"{\") {\n // Push the buffer to content array right before placeable\n if (buffer.length) {\n content.push(buffer);\n }\n if (placeables > MAX_PLACEABLES - 1) {\n throw this.error(\n `Too many placeables, maximum allowed is ${MAX_PLACEABLES}`);\n }\n buffer = \"\";\n content.push(this.getPlaceable());\n\n this._index++;\n\n ch = this._source[this._index];\n placeables++;\n continue;\n }\n\n if (ch) {\n buffer += ch;\n }\n this._index++;\n ch = this._source[this._index];\n }\n\n if (content.length === 0) {\n return buffer.length ? buffer : null;\n }\n\n if (buffer.length) {\n content.push(buffer);\n }\n\n return content;\n }\n /* eslint-enable complexity */\n\n /**\n * Parses a single placeable in a Message pattern and returns its\n * expression.\n *\n * @returns {Object}\n * @private\n */\n getPlaceable() {\n const start = ++this._index;\n\n this.skipWS();\n\n if (this._source[this._index] === \"*\" ||\n (this._source[this._index] === \"[\" &&\n this._source[this._index + 1] !== \"]\")) {\n const variants = this.getVariants();\n\n return {\n type: \"sel\",\n exp: null,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n // Rewind the index and only support in-line white-space now.\n this._index = start;\n this.skipInlineWS();\n\n const selector = this.getSelectorExpression();\n\n this.skipWS();\n\n const ch = this._source[this._index];\n\n if (ch === \"}\") {\n if (selector.type === \"attr\" && selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of private messages cannot be interpolated.\"\n );\n }\n\n return selector;\n }\n\n if (ch !== \"-\" || this._source[this._index + 1] !== \">\") {\n throw this.error('Expected \"}\" or \"->\"');\n }\n\n if (selector.type === \"ref\") {\n throw this.error(\"Message references cannot be used as selectors.\");\n }\n\n if (selector.type === \"var\") {\n throw this.error(\"Variants cannot be used as selectors.\");\n }\n\n if (selector.type === \"attr\" && !selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of public messages cannot be used as selectors.\"\n );\n }\n\n\n this._index += 2; // ->\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"\\n\") {\n throw this.error(\"Variants should be listed in a new line\");\n }\n\n this.skipWS();\n\n const variants = this.getVariants();\n\n if (variants[0].length === 0) {\n throw this.error(\"Expected members for the select expression\");\n }\n\n return {\n type: \"sel\",\n exp: selector,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n /**\n * Parses a selector expression.\n *\n * @returns {Object}\n * @private\n */\n getSelectorExpression() {\n const literal = this.getLiteral();\n\n if (literal.type !== \"ref\") {\n return literal;\n }\n\n if (this._source[this._index] === \".\") {\n this._index++;\n\n const name = this.getIdentifier();\n this._index++;\n return {\n type: \"attr\",\n id: literal,\n name\n };\n }\n\n if (this._source[this._index] === \"[\") {\n this._index++;\n\n const key = this.getVariantKey();\n this._index++;\n return {\n type: \"var\",\n id: literal,\n key\n };\n }\n\n if (this._source[this._index] === \"(\") {\n this._index++;\n const args = this.getCallArgs();\n\n if (!functionIdentifierRe.test(literal.name)) {\n throw this.error(\"Function names must be all upper-case\");\n }\n\n this._index++;\n\n literal.type = \"fun\";\n\n return {\n type: \"call\",\n fun: literal,\n args\n };\n }\n\n return literal;\n }\n\n /**\n * Parses call arguments for a CallExpression.\n *\n * @returns {Array}\n * @private\n */\n getCallArgs() {\n const args = [];\n\n while (this._index < this._length) {\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n return args;\n }\n\n const exp = this.getSelectorExpression();\n\n // MessageReference in this place may be an entity reference, like:\n // `call(foo)`, or, if it's followed by `:` it will be a key-value pair.\n if (exp.type !== \"ref\") {\n args.push(exp);\n } else {\n this.skipInlineWS();\n\n if (this._source[this._index] === \":\") {\n this._index++;\n this.skipInlineWS();\n\n const val = this.getSelectorExpression();\n\n // If the expression returned as a value of the argument\n // is not a quote delimited string or number, throw.\n //\n // We don't have to check here if the pattern is quote delimited\n // because that's the only type of string allowed in expressions.\n if (typeof val === \"string\" ||\n Array.isArray(val) ||\n val.type === \"num\") {\n args.push({\n type: \"narg\",\n name: exp.name,\n val\n });\n } else {\n this._index = this._source.lastIndexOf(\":\", this._index) + 1;\n throw this.error(\n \"Expected string in quotes, number.\");\n }\n\n } else {\n args.push(exp);\n }\n }\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n break;\n } else if (this._source[this._index] === \",\") {\n this._index++;\n } else {\n throw this.error('Expected \",\" or \")\"');\n }\n }\n\n return args;\n }\n\n /**\n * Parses an FTL Number.\n *\n * @returns {Object}\n * @private\n */\n getNumber() {\n let num = \"\";\n let cc = this._source.charCodeAt(this._index);\n\n // The number literal may start with negative sign `-`.\n if (cc === 45) {\n num += \"-\";\n cc = this._source.charCodeAt(++this._index);\n }\n\n // next, we expect at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // followed by potentially more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n\n // followed by an optional decimal separator `.`\n if (cc === 46) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n\n // followed by at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // and optionally more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n }\n\n return {\n type: \"num\",\n val: num\n };\n }\n\n /**\n * Parses a list of Message attributes.\n *\n * @returns {Object}\n * @private\n */\n getAttributes() {\n const attrs = {};\n\n while (this._index < this._length) {\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] !== \".\") {\n break;\n }\n this._index++;\n\n const key = this.getIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"=\") {\n throw this.error('Expected \"=\"');\n }\n this._index++;\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected attribute to have a value\");\n }\n\n if (typeof val === \"string\") {\n attrs[key] = val;\n } else {\n attrs[key] = {\n val\n };\n }\n\n this.skipBlankLines();\n }\n\n return attrs;\n }\n\n /**\n * Parses a list of Selector variants.\n *\n * @returns {Array}\n * @private\n */\n getVariants() {\n const variants = [];\n let index = 0;\n let defaultIndex;\n\n while (this._index < this._length) {\n const ch = this._source[this._index];\n\n if ((ch !== \"[\" || this._source[this._index + 1] === \"[\") &&\n ch !== \"*\") {\n break;\n }\n if (ch === \"*\") {\n this._index++;\n defaultIndex = index;\n }\n\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[\"');\n }\n\n this._index++;\n\n const key = this.getVariantKey();\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected variant to have a value\");\n }\n\n variants[index++] = {key, val};\n\n this.skipWS();\n }\n\n return [variants, defaultIndex];\n }\n\n /**\n * Parses a Variant key.\n *\n * @returns {String}\n * @private\n */\n getVariantKey() {\n // VariantKey may be a Keyword or Number\n\n const cc = this._source.charCodeAt(this._index);\n let literal;\n\n if ((cc >= 48 && cc <= 57) || cc === 45) {\n literal = this.getNumber();\n } else {\n literal = this.getVariantName();\n }\n\n if (this._source[this._index] !== \"]\") {\n throw this.error('Expected \"]\"');\n }\n\n this._index++;\n return literal;\n }\n\n /**\n * Parses an FTL literal.\n *\n * @returns {Object}\n * @private\n */\n getLiteral() {\n const cc0 = this._source.charCodeAt(this._index);\n\n if (cc0 === 36) { // $\n this._index++;\n return {\n type: \"ext\",\n name: this.getIdentifier()\n };\n }\n\n const cc1 = cc0 === 45 // -\n // Peek at the next character after the dash.\n ? this._source.charCodeAt(this._index + 1)\n // Or keep using the character at the current index.\n : cc0;\n\n if ((cc1 >= 97 && cc1 <= 122) || // a-z\n (cc1 >= 65 && cc1 <= 90)) { // A-Z\n return {\n type: \"ref\",\n name: this.getEntryIdentifier()\n };\n }\n\n if ((cc1 >= 48 && cc1 <= 57)) { // 0-9\n return this.getNumber();\n }\n\n if (cc0 === 34) { // \"\n return this.getString();\n }\n\n throw this.error(\"Expected literal\");\n }\n\n /**\n * Skips an FTL comment.\n *\n * @private\n */\n skipComment() {\n // At runtime, we don't care about comments so we just have\n // to parse them properly and skip their content.\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n while (eol !== -1 &&\n ((this._source[eol + 1] === \"/\" && this._source[eol + 2] === \"/\") ||\n (this._source[eol + 1] === \"#\" &&\n [\" \", \"#\"].includes(this._source[eol + 2])))) {\n this._index = eol + 3;\n\n eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n break;\n }\n }\n\n if (eol === -1) {\n this._index = this._length;\n } else {\n this._index = eol + 1;\n }\n }\n\n /**\n * Creates a new SyntaxError object with a given message.\n *\n * @param {String} message\n * @returns {Object}\n * @private\n */\n error(message) {\n return new SyntaxError(message);\n }\n\n /**\n * Skips to the beginning of a next entry after the current position.\n * This is used to mark the boundary of junk entry in case of error,\n * and recover from the returned position.\n *\n * @private\n */\n skipToNextEntryStart() {\n let start = this._index;\n\n while (true) {\n if (start === 0 || this._source[start - 1] === \"\\n\") {\n const cc = this._source.charCodeAt(start);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 47 || cc === 91) { // /[\n this._index = start;\n return;\n }\n }\n\n start = this._source.indexOf(\"\\n\", start);\n\n if (start === -1) {\n this._index = this._length;\n return;\n }\n start++;\n }\n }\n}\n\n/**\n * Parses an FTL string using RuntimeParser and returns the generated\n * object with entries and a list of errors.\n *\n * @param {String} string\n * @returns {Array<Object, Array>}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/parser.js","/* global Intl */\n\n/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n\n /**\n * Create an `FluentType` instance.\n *\n * @param {Any} value - JavaScript value to wrap.\n * @param {Object} opts - Configuration.\n * @returns {FluentType}\n */\n constructor(value, opts) {\n this.value = value;\n this.opts = opts;\n }\n\n /**\n * Unwrap the raw value stored by this `FluentType`.\n *\n * @returns {Any}\n */\n valueOf() {\n return this.value;\n }\n\n /**\n * Format this instance of `FluentType` to a string.\n *\n * Formatted values are suitable for use outside of the `MessageContext`.\n * This method can use `Intl` formatters memoized by the `MessageContext`\n * instance passed as an argument.\n *\n * @param {MessageContext} [ctx]\n * @returns {string}\n */\n toString() {\n throw new Error(\"Subclasses of FluentType must implement toString.\");\n }\n}\n\nexport class FluentNone extends FluentType {\n toString() {\n return this.value || \"???\";\n }\n}\n\nexport class FluentNumber extends FluentType {\n constructor(value, opts) {\n super(parseFloat(value), opts);\n }\n\n toString(ctx) {\n try {\n const nf = ctx._memoizeIntlObject(\n Intl.NumberFormat, this.opts\n );\n return nf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentNumber) {\n return this.value === other.value;\n }\n return false;\n }\n}\n\nexport class FluentDateTime extends FluentType {\n constructor(value, opts) {\n super(new Date(value), opts);\n }\n\n toString(ctx) {\n try {\n const dtf = ctx._memoizeIntlObject(\n Intl.DateTimeFormat, this.opts\n );\n return dtf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n}\n\nexport class FluentSymbol extends FluentType {\n toString() {\n return this.value;\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentSymbol) {\n return this.value === other.value;\n } else if (typeof other === \"string\") {\n return this.value === other;\n } else if (other instanceof FluentNumber) {\n const pr = ctx._memoizeIntlObject(\n Intl.PluralRules, other.opts\n );\n return this.value === pr.select(other.value);\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/types.js","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentType`. Functions must return `FluentType` objects as well.\n */\n\nimport { FluentNumber, FluentDateTime } from \"./types\";\n\nexport default {\n \"NUMBER\": ([arg], opts) =>\n new FluentNumber(arg.valueOf(), merge(arg.opts, opts)),\n \"DATETIME\": ([arg], opts) =>\n new FluentDateTime(arg.valueOf(), merge(arg.opts, opts)),\n};\n\nfunction merge(argopts, opts) {\n return Object.assign({}, argopts, values(opts));\n}\n\nfunction values(opts) {\n const unwrapped = {};\n for (const [name, opt] of Object.entries(opts)) {\n unwrapped[name] = opt.valueOf();\n }\n return unwrapped;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/builtins.js","/**\n * @overview\n *\n * The role of the Fluent resolver is to format a translation object to an\n * instance of `FluentType` or an array of instances.\n *\n * Translations can contain references to other messages or external arguments,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers, dates, lists and more into the\n * context's language. See the documentation of the Fluent syntax for more\n * information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * `MessageReference`, `VariantExpression`, `AttributeExpression` and\n * `SelectExpression` resolve to raw Runtime Entries objects and the result of\n * the resolution needs to be passed into `Type` to get their real value.\n * This is useful for composing expressions. Consider:\n *\n * brand-name[nominative]\n *\n * which is a `VariantExpression` with properties `id: MessageReference` and\n * `key: Keyword`. If `MessageReference` was resolved eagerly, it would\n * instantly resolve to the value of the `brand-name` message. Instead, we\n * want to get the message object and look for its `nominative` variant.\n *\n * All other expressions (except for `FunctionReference` which is only used in\n * `CallExpression`) resolve to an instance of `FluentType`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n *\n * All functions in this file pass around a special object called `env`.\n * This object stores a set of elements used by all resolve functions:\n *\n * * {MessageContext} ctx\n * context for which the given resolution is happening\n * * {Object} args\n * list of developer provided arguments that can be used\n * * {Array} errors\n * list of errors collected while resolving\n * * {WeakSet} dirty\n * Set of patterns already encountered during this resolution.\n * This is used to prevent cyclic resolutions.\n */\n\n\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, FluentSymbol }\n from \"./types\";\nimport builtins from \"./builtins\";\n\n// Prevent expansion of too long placeables.\nconst MAX_PLACEABLE_LENGTH = 2500;\n\n// Unicode bidi isolation characters.\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n\n\n/**\n * Helper for choosing the default value from a set of members.\n *\n * Used in SelectExpressions and Type.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} members\n * Hash map of variants from which the default value is to be selected.\n * @param {Number} def\n * The index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction DefaultMember(env, members, def) {\n if (members[def]) {\n return members[def];\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No default\"));\n return new FluentNone();\n}\n\n\n/**\n * Resolve a reference to another message.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} id\n * The identifier of the message to be resolved.\n * @param {String} id.name\n * The name of the identifier.\n * @returns {FluentType}\n * @private\n */\nfunction MessageReference(env, {name}) {\n const { ctx, errors } = env;\n const message = name.startsWith(\"-\")\n ? ctx._terms.get(name)\n : ctx._messages.get(name);\n\n if (!message) {\n const err = name.startsWith(\"-\")\n ? new ReferenceError(`Unknown term: ${name}`)\n : new ReferenceError(`Unknown message: ${name}`);\n errors.push(err);\n return new FluentNone(name);\n }\n\n return message;\n}\n\n/**\n * Resolve a variant expression to the variant object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.id\n * An Identifier of a message for which the variant is resolved.\n * @param {Object} expr.id.name\n * Name a message for which the variant is resolved.\n * @param {Object} expr.key\n * Variant key to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction VariantExpression(env, {id, key}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n const { ctx, errors } = env;\n const keyword = Type(env, key);\n\n function isVariantList(node) {\n return Array.isArray(node) &&\n node[0].type === \"sel\" &&\n node[0].exp === null;\n }\n\n if (isVariantList(message.val)) {\n // Match the specified key against keys of each variant, in order.\n for (const variant of message.val[0].vars) {\n const variantKey = Type(env, variant.key);\n if (keyword.match(ctx, variantKey)) {\n return variant;\n }\n }\n }\n\n errors.push(new ReferenceError(`Unknown variant: ${keyword.toString(ctx)}`));\n return Type(env, message);\n}\n\n\n/**\n * Resolve an attribute expression to the attribute object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.id\n * An ID of a message for which the attribute is resolved.\n * @param {String} expr.name\n * Name of the attribute to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction AttributeExpression(env, {id, name}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n if (message.attrs) {\n // Match the specified name against keys of each attribute.\n for (const attrName in message.attrs) {\n if (name === attrName) {\n return message.attrs[name];\n }\n }\n }\n\n const { errors } = env;\n errors.push(new ReferenceError(`Unknown attribute: ${name}`));\n return Type(env, message);\n}\n\n/**\n * Resolve a select expression to the member object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.exp\n * Selector expression\n * @param {Array} expr.vars\n * List of variants for the select expression.\n * @param {Number} expr.def\n * Index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction SelectExpression(env, {exp, vars, def}) {\n if (exp === null) {\n return DefaultMember(env, vars, def);\n }\n\n const selector = Type(env, exp);\n if (selector instanceof FluentNone) {\n return DefaultMember(env, vars, def);\n }\n\n // Match the selector against keys of each variant, in order.\n for (const variant of vars) {\n const key = Type(env, variant.key);\n const keyCanMatch =\n key instanceof FluentNumber || key instanceof FluentSymbol;\n\n if (!keyCanMatch) {\n continue;\n }\n\n const { ctx } = env;\n\n if (key.match(ctx, selector)) {\n return variant;\n }\n }\n\n return DefaultMember(env, vars, def);\n}\n\n\n/**\n * Resolve expression to a Fluent type.\n *\n * JavaScript strings are a special case. Since they natively have the\n * `toString` method they can be used as if they were a Fluent type without\n * paying the cost of creating a instance of one.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression object to be resolved into a Fluent type.\n * @returns {FluentType}\n * @private\n */\nfunction Type(env, expr) {\n // A fast-path for strings which are the most common case, and for\n // `FluentNone` which doesn't require any additional logic.\n if (typeof expr === \"string\" || expr instanceof FluentNone) {\n return expr;\n }\n\n // The Runtime AST (Entries) encodes patterns (complex strings with\n // placeables) as Arrays.\n if (Array.isArray(expr)) {\n return Pattern(env, expr);\n }\n\n\n switch (expr.type) {\n case \"varname\":\n return new FluentSymbol(expr.name);\n case \"num\":\n return new FluentNumber(expr.val);\n case \"ext\":\n return ExternalArgument(env, expr);\n case \"fun\":\n return FunctionReference(env, expr);\n case \"call\":\n return CallExpression(env, expr);\n case \"ref\": {\n const message = MessageReference(env, expr);\n return Type(env, message);\n }\n case \"attr\": {\n const attr = AttributeExpression(env, expr);\n return Type(env, attr);\n }\n case \"var\": {\n const variant = VariantExpression(env, expr);\n return Type(env, variant);\n }\n case \"sel\": {\n const member = SelectExpression(env, expr);\n return Type(env, member);\n }\n case undefined: {\n // If it's a node with a value, resolve the value.\n if (expr.val !== null && expr.val !== undefined) {\n return Type(env, expr.val);\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No value\"));\n return new FluentNone();\n }\n default:\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a reference to an external argument.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of an argument to be returned.\n * @returns {FluentType}\n * @private\n */\nfunction ExternalArgument(env, {name}) {\n const { args, errors } = env;\n\n if (!args || !args.hasOwnProperty(name)) {\n errors.push(new ReferenceError(`Unknown external: ${name}`));\n return new FluentNone(name);\n }\n\n const arg = args[name];\n\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg);\n }\n default:\n errors.push(\n new TypeError(`Unsupported external type: ${name}, ${typeof arg}`)\n );\n return new FluentNone(name);\n }\n}\n\n/**\n * Resolve a reference to a function.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of the function to be returned.\n * @returns {Function}\n * @private\n */\nfunction FunctionReference(env, {name}) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `MessageContext` constructor.\n const { ctx: { _functions }, errors } = env;\n const func = _functions[name] || builtins[name];\n\n if (!func) {\n errors.push(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n\n if (typeof func !== \"function\") {\n errors.push(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n\n return func;\n}\n\n/**\n * Resolve a call to a Function with positional and key-value arguments.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.fun\n * FTL Function object.\n * @param {Array} expr.args\n * FTL Function argument list.\n * @returns {FluentType}\n * @private\n */\nfunction CallExpression(env, {fun, args}) {\n const callee = FunctionReference(env, fun);\n\n if (callee instanceof FluentNone) {\n return callee;\n }\n\n const posargs = [];\n const keyargs = {};\n\n for (const arg of args) {\n if (arg.type === \"narg\") {\n keyargs[arg.name] = Type(env, arg.val);\n } else {\n posargs.push(Type(env, arg));\n }\n }\n\n try {\n return callee(posargs, keyargs);\n } catch (e) {\n // XXX Report errors.\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a pattern (a complex string with placeables).\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Array} ptn\n * Array of pattern elements.\n * @returns {Array}\n * @private\n */\nfunction Pattern(env, ptn) {\n const { ctx, dirty, errors } = env;\n\n if (dirty.has(ptn)) {\n errors.push(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n\n // Tag the pattern as dirty for the purpose of the current resolution.\n dirty.add(ptn);\n const result = [];\n\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = ctx._useIsolating && ptn.length > 1;\n\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(elem);\n continue;\n }\n\n const part = Type(env, elem).toString(ctx);\n\n if (useIsolating) {\n result.push(FSI);\n }\n\n if (part.length > MAX_PLACEABLE_LENGTH) {\n errors.push(\n new RangeError(\n \"Too many characters in placeable \" +\n `(${part.length}, max allowed is ${MAX_PLACEABLE_LENGTH})`\n )\n );\n result.push(part.slice(MAX_PLACEABLE_LENGTH));\n } else {\n result.push(part);\n }\n\n if (useIsolating) {\n result.push(PDI);\n }\n }\n\n dirty.delete(ptn);\n return result.join(\"\");\n}\n\n/**\n * Format a translation into a string.\n *\n * @param {MessageContext} ctx\n * A MessageContext instance which will be used to resolve the\n * contextual information of the message.\n * @param {Object} args\n * List of arguments provided by the developer which can be accessed\n * from the message.\n * @param {Object} message\n * An object with the Message to be resolved.\n * @param {Array} errors\n * An error array that any encountered errors will be appended to.\n * @returns {FluentType}\n */\nexport default function resolve(ctx, args, message, errors = []) {\n const env = {\n ctx, args, errors, dirty: new WeakSet()\n };\n return Type(env, message).toString(ctx);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/resolver.js","import resolve from \"./resolver\";\nimport parse from \"./parser\";\n\n/**\n * Message contexts are single-language stores of translations. They are\n * responsible for parsing translation resources in the Fluent syntax and can\n * format translation units (entities) to strings.\n *\n * Always use `MessageContext.format` to retrieve translation units from\n * a context. Translations can contain references to other entities or\n * external arguments, conditional logic in form of select expressions, traits\n * which describe their grammatical features, and can use Fluent builtins which\n * make use of the `Intl` formatters to format numbers, dates, lists and more\n * into the context's language. See the documentation of the Fluent syntax for\n * more information.\n */\nexport class MessageContext {\n\n /**\n * Create an instance of `MessageContext`.\n *\n * The `locales` argument is used to instantiate `Intl` formatters used by\n * translations. The `options` object can be used to configure the context.\n *\n * Examples:\n *\n * const ctx = new MessageContext(locales);\n *\n * const ctx = new MessageContext(locales, { useIsolating: false });\n *\n * const ctx = new MessageContext(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n *\n * Available options:\n *\n * - `functions` - an object of additional functions available to\n * translations as builtins.\n *\n * - `useIsolating` - boolean specifying whether to use Unicode isolation\n * marks (FSI, PDI) for bidi interpolations.\n *\n * @param {string|Array<string>} locales - Locale or locales of the context\n * @param {Object} [options]\n * @returns {MessageContext}\n */\n constructor(locales, { functions = {}, useIsolating = true } = {}) {\n this.locales = Array.isArray(locales) ? locales : [locales];\n\n this._terms = new Map();\n this._messages = new Map();\n this._functions = functions;\n this._useIsolating = useIsolating;\n this._intls = new WeakMap();\n }\n\n /*\n * Return an iterator over public `[id, message]` pairs.\n *\n * @returns {Iterator}\n */\n get messages() {\n return this._messages[Symbol.iterator]();\n }\n\n /*\n * Check if a message is present in the context.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {bool}\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n\n /*\n * Return the internal representation of a message.\n *\n * The internal representation should only be used as an argument to\n * `MessageContext.format`.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {Any}\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n\n /**\n * Add a translation resource to the context.\n *\n * The translation resource must use the Fluent syntax. It will be parsed by\n * the context and each translation unit (message) will be available in the\n * context by its identifier.\n *\n * ctx.addMessages('foo = Foo');\n * ctx.getMessage('foo');\n *\n * // Returns a raw representation of the 'foo' message.\n *\n * Parsed entities should be formatted with the `format` method in case they\n * contain logic (references, select expressions etc.).\n *\n * @param {string} source - Text resource with translations.\n * @returns {Array<Error>}\n */\n addMessages(source) {\n const [entries, errors] = parse(source);\n for (const id in entries) {\n if (id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from MessageContext.\n if (this._terms.has(id)) {\n errors.push(`Attempt to override an existing term: \"${id}\"`);\n continue;\n }\n this._terms.set(id, entries[id]);\n } else {\n if (this._messages.has(id)) {\n errors.push(`Attempt to override an existing message: \"${id}\"`);\n continue;\n }\n this._messages.set(id, entries[id]);\n }\n }\n\n return errors;\n }\n\n /**\n * Format a message to a string or null.\n *\n * Format a raw `message` from the context into a string (or a null if it has\n * a null value). `args` will be used to resolve references to external\n * arguments inside of the translation.\n *\n * In case of errors `format` will try to salvage as much of the translation\n * as possible and will still return a string. For performance reasons, the\n * encountered errors are not returned but instead are appended to the\n * `errors` array passed as the third argument.\n *\n * const errors = [];\n * ctx.addMessages('hello = Hello, { $name }!');\n * const hello = ctx.getMessage('hello');\n * ctx.format(hello, { name: 'Jane' }, errors);\n *\n * // Returns 'Hello, Jane!' and `errors` is empty.\n *\n * ctx.format(hello, undefined, errors);\n *\n * // Returns 'Hello, name!' and `errors` is now:\n *\n * [<ReferenceError: Unknown external: name>]\n *\n * @param {Object | string} message\n * @param {Object | undefined} args\n * @param {Array} errors\n * @returns {?string}\n */\n format(message, args, errors) {\n // optimize entities which are simple strings with no attributes\n if (typeof message === \"string\") {\n return message;\n }\n\n // optimize simple-string entities with attributes\n if (typeof message.val === \"string\") {\n return message.val;\n }\n\n // optimize entities with null values\n if (message.val === undefined) {\n return null;\n }\n\n return resolve(this, args, message, errors);\n }\n\n _memoizeIntlObject(ctor, opts) {\n const cache = this._intls.get(ctor) || {};\n const id = JSON.stringify(opts);\n\n if (!cache[id]) {\n cache[id] = new ctor(this.locales, opts);\n this._intls.set(ctor, cache);\n }\n\n return cache[id];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/context.js","/*\n * CachedIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedIterable {\n /**\n * Create an `CachedIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n constructor(iterable) {\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n\n this.seen = [];\n }\n\n [Symbol.iterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n next() {\n if (seen.length <= cur) {\n seen.push(iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n [Symbol.asyncIterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n async next() {\n if (seen.length <= cur) {\n seen.push(await iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n */\n touchNext() {\n const { seen, iterator } = this;\n if (seen.length === 0 || seen[seen.length - 1].done === false) {\n seen.push(iterator.next());\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/cached_iterable.js","/*\n * @overview\n *\n * Functions for managing ordered sequences of MessageContexts.\n *\n * An ordered iterable of MessageContext instances can represent the current\n * negotiated fallback chain of languages. This iterable can be used to find\n * the best existing translation for a given identifier.\n *\n * The mapContext* methods can be used to find the first MessageContext in the\n * given iterable which contains the translation with the given identifier. If\n * the iterable is ordered according to the result of a language negotiation\n * the returned MessageContext contains the best available translation.\n *\n * A simple function which formats translations based on the identifier might\n * be implemented as follows:\n *\n * formatString(id, args) {\n * const ctx = mapContextSync(contexts, id);\n *\n * if (ctx === null) {\n * return id;\n * }\n *\n * const msg = ctx.getMessage(id);\n * return ctx.format(msg, args);\n * }\n *\n * In order to pass an iterator to mapContext*, wrap it in CachedIterable.\n * This allows multiple calls to mapContext* without advancing and eventually\n * depleting the iterator.\n *\n * function *generateMessages() {\n * // Some lazy logic for yielding MessageContexts.\n * yield *[ctx1, ctx2];\n * }\n *\n * const contexts = new CachedIterable(generateMessages());\n * const ctx = mapContextSync(contexts, id);\n *\n */\n\n/*\n * Synchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {Iterable} iterable\n * @param {string|Array<string>} ids\n * @returns {MessageContext|Array<MessageContext>}\n */\nexport function mapContextSync(iterable, ids) {\n if (!Array.isArray(ids)) {\n return getContextForId(iterable, ids);\n }\n\n return ids.map(\n id => getContextForId(iterable, id)\n );\n}\n\n/*\n * Find the best `MessageContext` with the translation for `id`.\n */\nfunction getContextForId(iterable, id) {\n for (const context of iterable) {\n if (context.hasMessage(id)) {\n return context;\n }\n }\n\n return null;\n}\n\n/*\n * Asynchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {AsyncIterable} iterable\n * @param {string|Array<string>} ids\n * @returns {Promise<MessageContext|Array<MessageContext>>}\n */\nexport async function mapContextAsync(iterable, ids) {\n if (!Array.isArray(ids)) {\n for await (const context of iterable) {\n if (context.hasMessage(ids)) {\n return context;\n }\n }\n }\n\n let remainingCount = ids.length;\n const foundContexts = new Array(remainingCount).fill(null);\n\n for await (const context of iterable) {\n // XXX Switch to const [index, id] of id.entries() when we move to Babel 7.\n // See https://github.com/babel/babel/issues/5880.\n for (let index = 0; index < ids.length; index++) {\n const id = ids[index];\n if (!foundContexts[index] && context.hasMessage(id)) {\n foundContexts[index] = context;\n remainingCount--;\n }\n\n // Return early when all ids have been mapped to contexts.\n if (remainingCount === 0) {\n return foundContexts;\n }\n }\n }\n\n return foundContexts;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/fallback.js","function nonBlank(line) {\n return !/^\\s*$/.test(line);\n}\n\nfunction countIndent(line) {\n const [indent] = line.match(/^\\s*/);\n return indent.length;\n}\n\n/**\n * Template literal tag for dedenting FTL code.\n *\n * Strip the common indent of non-blank lines. Remove blank lines.\n *\n * @param {Array<string>} strings\n */\nexport function ftl(strings) {\n const [code] = strings;\n const lines = code.split(\"\\n\").filter(nonBlank);\n const indents = lines.map(countIndent);\n const common = Math.min(...indents);\n const indent = new RegExp(`^\\\\s{${common}}`);\n\n return lines.map(\n line => line.replace(indent, \"\")\n ).join(\"\\n\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/util.js","/*\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\n\nexport { default as _parse } from \"./parser\";\n\nexport { MessageContext } from \"./context\";\nexport {\n FluentType as MessageArgument,\n FluentNumber as MessageNumberArgument,\n FluentDateTime as MessageDateTimeArgument,\n} from \"./types\";\n\nexport { default as CachedIterable } from \"./cached_iterable\";\nexport { mapContextSync, mapContextAsync } from \"./fallback\";\n\nexport { ftl } from \"./util\";\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/index.js","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function} a reducer that, on MERGE_STORE_ACTION action,\n * will return the action.data object merged\n * into the previous state, and the result\n * of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n return (prevState, action) => {\n if (action.type === MERGE_STORE_ACTION) {\n return {...prevState, ...action.data};\n }\n\n return mainReducer(prevState, action);\n };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n const skipLocal = action.meta && action.meta.skipLocal;\n if (au.isSendToMain(action)) {\n sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n }\n if (!skipLocal) {\n next(action);\n }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n if (store._didRehydrate) {\n return next(action);\n }\n\n const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n if (isRehydrationRequest) {\n store._didRequestInitialState = true;\n return next(action);\n }\n\n if (isMergeStoreAction) {\n store._didRehydrate = true;\n return next(action);\n }\n\n // If init happened after our request was made, we need to re-request\n if (store._didRequestInitialState && action.type === at.INIT) {\n return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n }\n\n if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n // Note that actions received before didRehydrate will not be dispatched\n // because this could negatively affect preloading and the the state\n // will be replaced by rehydration anyway.\n return null;\n }\n\n return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n if (store._receivedFromMain) {\n next(action);\n } else if (au.isFromMain(action)) {\n next(action);\n store._receivedFromMain = true;\n // Sending out all the early actions as main is ready now\n if (store._earlyActionQueue) {\n store._earlyActionQueue.forEach(next);\n store._earlyActionQueue = [];\n }\n } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n store._earlyActionQueue = store._earlyActionQueue || [];\n store._earlyActionQueue.push(action);\n } else {\n // Let any other type of action go through\n next(action);\n }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param {object} reducers An object containing Redux reducers\n * @param {object} intialState (optional) The initial state of the store, if desired\n * @return {object} A redux store\n */\nexport function initStore(reducers, initialState) {\n const store = createStore(\n mergeStateReducer(combineReducers(reducers)),\n initialState,\n global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.addMessageListener) {\n global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n try {\n store.dispatch(msg.data);\n } catch (ex) {\n console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n }\n });\n }\n\n return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 12\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n constructor(props) {\n super(props);\n this.windowObj = this.props.windowObj || window;\n this.onClick = this.onClick.bind(this);\n }\n\n /**\n * Since we only get here if part of the page has crashed, do a\n * forced reload to give us the best chance at recovering.\n */\n onClick() {\n this.windowObj.location.reload(true);\n }\n\n render() {\n const defaultClass = \"as-error-fallback\";\n let className;\n if (\"className\" in this.props) {\n className = `${this.props.className} ${defaultClass}`;\n } else {\n className = defaultClass;\n }\n\n // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n return (\n <div className={className}>\n <div>\n <FormattedMessage\n defaultMessage=\"Oops, something went wrong loading this content.\"\n id=\"error_fallback_default_info\" />\n </div>\n <span>\n <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n <FormattedMessage\n defaultMessage=\"Refresh page to try again.\"\n id=\"error_fallback_default_refresh_suggestion\" />\n </a>\n </span>\n </div>\n );\n }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {hasError: false};\n }\n\n componentDidCatch(error, info) {\n this.setState({hasError: true});\n }\n\n render() {\n if (!this.state.hasError) {\n return (this.props.children);\n }\n\n return <this.props.FallbackComponent className={this.props.className} />;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n id: \"menu_action_open_private_window\",\n icon: \"new-window-private\",\n action: ac.OnlyToMain({\n type: at.OPEN_PRIVATE_WINDOW,\n data: {url: site.url, referrer: site.referrer}\n }),\n userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n switch (platform) {\n case \"win\":\n return \"menu_action_show_file_windows\";\n case \"macosx\":\n return \"menu_action_show_file_mac_os\";\n case \"linux\":\n return \"menu_action_show_file_linux\";\n default:\n return \"menu_action_show_file_default\";\n }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n EmptyItem: () => ({type: \"empty\"}),\n RemoveBookmark: site => ({\n id: \"menu_action_remove_bookmark\",\n icon: \"bookmark-added\",\n action: ac.AlsoToMain({\n type: at.DELETE_BOOKMARK_BY_ID,\n data: site.bookmarkGuid\n }),\n userEvent: \"BOOKMARK_DELETE\"\n }),\n AddBookmark: site => ({\n id: \"menu_action_bookmark\",\n icon: \"bookmark-hollow\",\n action: ac.AlsoToMain({\n type: at.BOOKMARK_URL,\n data: {url: site.url, title: site.title, type: site.type}\n }),\n userEvent: \"BOOKMARK_ADD\"\n }),\n OpenInNewWindow: site => ({\n id: \"menu_action_open_new_window\",\n icon: \"new-window\",\n action: ac.AlsoToMain({\n type: at.OPEN_NEW_WINDOW,\n data: {\n referrer: site.referrer,\n typedBonus: site.typedBonus,\n url: site.url\n }\n }),\n userEvent: \"OPEN_NEW_WINDOW\"\n }),\n BlockUrl: (site, index, eventSource) => ({\n id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.AlsoToMain({\n type: at.BLOCK_URL,\n data: {url: site.url, pocket_id: site.pocket_id}\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n block: 0,\n tiles: [{id: site.guid, pos: index}]\n }),\n userEvent: \"BLOCK\"\n }),\n\n // This is an option for web extentions which will result in remove items from\n // memory and notify the web extenion, rather than using the built-in block list.\n WebExtDismiss: (site, index, eventSource) => ({\n id: \"menu_action_webext_dismiss\",\n string_id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n source: eventSource,\n url: site.url,\n action_position: index\n })\n }),\n DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n id: \"menu_action_delete\",\n icon: \"delete\",\n action: {\n type: at.DIALOG_OPEN,\n data: {\n onConfirm: [\n ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n ],\n eventSource,\n body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n confirm_button_string_id: \"menu_action_delete\",\n cancel_button_string_id: \"topsites_form_cancel_button\",\n icon: \"modal-delete\"\n }\n },\n userEvent: \"DIALOG_OPEN\"\n }),\n ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n id: GetPlatformString(platform),\n icon: \"search\",\n action: ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n OpenFile: site => ({\n id: \"menu_action_open_file\",\n icon: \"open-file\",\n action: ac.OnlyToMain({\n type: at.OPEN_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n CopyDownloadLink: site => ({\n id: \"menu_action_copy_download_link\",\n icon: \"copy\",\n action: ac.OnlyToMain({\n type: at.COPY_DOWNLOAD_LINK,\n data: {url: site.url}\n })\n }),\n GoToDownloadPage: site => ({\n id: \"menu_action_go_to_download_page\",\n icon: \"download\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: site.referrer}\n }),\n disabled: !site.referrer\n }),\n RemoveDownload: site => ({\n id: \"menu_action_remove_download\",\n icon: \"delete\",\n action: ac.OnlyToMain({\n type: at.REMOVE_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n PinTopSite: (site, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site: {url: site.url}, index}\n }),\n userEvent: \"PIN\"\n }),\n UnpinTopSite: site => ({\n id: \"menu_action_unpin\",\n icon: \"unpin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_UNPIN,\n data: {site: {url: site.url}}\n }),\n userEvent: \"UNPIN\"\n }),\n SaveToPocket: (site, index, eventSource) => ({\n id: \"menu_action_save_to_pocket\",\n icon: \"pocket\",\n action: ac.AlsoToMain({\n type: at.SAVE_TO_POCKET,\n data: {site: {url: site.url, title: site.title}}\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n pocket: 0,\n tiles: [{id: site.guid, pos: index}]\n }),\n userEvent: \"SAVE_TO_POCKET\"\n }),\n DeleteFromPocket: site => ({\n id: \"menu_action_delete_pocket\",\n icon: \"delete\",\n action: ac.AlsoToMain({\n type: at.DELETE_FROM_POCKET,\n data: {pocket_id: site.pocket_id}\n }),\n userEvent: \"DELETE_FROM_POCKET\"\n }),\n ArchiveFromPocket: site => ({\n id: \"menu_action_archive_pocket\",\n icon: \"check\",\n action: ac.AlsoToMain({\n type: at.ARCHIVE_FROM_POCKET,\n data: {pocket_id: site.pocket_id}\n }),\n userEvent: \"ARCHIVE_FROM_POCKET\"\n }),\n EditTopSite: (site, index) => ({\n id: \"edit_topsites_button_text\",\n icon: \"edit\",\n action: {\n type: at.TOP_SITES_EDIT,\n data: {index}\n }\n }),\n CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n // Handle special case of default site\n const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n const {action, impression, id, string_id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id: string_id || id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n const userEventData = Object.assign({\n event: userEvent,\n source,\n action_position: index\n }, siteInfo);\n props.dispatch(ac.UserEvent(userEventData));\n }\n if (impression && props.shouldSendImpressionStats) {\n props.dispatch(impression);\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return (<ContextMenu\n onUpdate={this.props.onUpdate}\n options={this.getOptions()} />);\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n constructor(props) {\n super(props);\n this.hideContext = this.hideContext.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n hideContext() {\n this.props.onUpdate(false);\n }\n\n componentDidMount() {\n setTimeout(() => {\n global.addEventListener(\"click\", this.hideContext);\n }, 0);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"click\", this.hideContext);\n }\n\n onClick(event) {\n // Eat all clicks on the context menu so they don't bubble up to window.\n // This prevents the context menu from closing when clicking disabled items\n // or the separators.\n event.stopPropagation();\n }\n\n render() {\n return (<span className=\"context-menu\" onClick={this.onClick}>\n <ul role=\"menu\" className=\"context-menu-list\">\n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n (<li key={i} className=\"separator\" />) :\n (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n ))}\n </ul>\n </span>);\n }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n }\n\n onClick() {\n this.props.hideContext();\n this.props.option.onClick();\n }\n\n onKeyDown(event) {\n const {option} = this.props;\n switch (event.key) {\n case \"Tab\":\n // tab goes down in context menu, shift + tab goes up in context menu\n // if we're on the last item, one more tab will close the context menu\n // similarly, if we're on the first item, one more shift + tab will close it\n if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n this.props.hideContext();\n }\n break;\n case \"Enter\":\n this.props.hideContext();\n option.onClick();\n break;\n }\n }\n\n render() {\n const {option} = this.props;\n return (\n <li role=\"menuitem\" className=\"context-menu-item\">\n <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n {option.label}\n </a>\n </li>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ContextMenu/ContextMenu.jsx","/**\n * List of helper functions for screenshot-based images.\n *\n * There are two kinds of images:\n * 1. Remote Image: This is the image from the main process and it refers to\n * the image in the React props. This can either be an object with the `data`\n * and `path` properties, if it is a blob, or a string, if it is a normal image.\n * 2. Local Image: This is the image object in the content process and it refers\n * to the image *object* in the React component's state. All local image\n * objects have the `url` property, and an additional property `path`, if they\n * are blobs.\n */\nexport const ScreenshotUtils = {\n isBlob(isLocal, image) {\n return !!(image && image.path && ((!isLocal && image.data) || (isLocal && image.url)));\n },\n\n // This should always be called with a remote image and not a local image.\n createLocalImageObject(remoteImage) {\n if (!remoteImage) {\n return null;\n }\n if (this.isBlob(false, remoteImage)) {\n return {url: global.URL.createObjectURL(remoteImage.data), path: remoteImage.path};\n }\n return {url: remoteImage};\n },\n\n // Revokes the object URL of the image if the local image is a blob.\n // This should always be called with a local image and not a remote image.\n maybeRevokeBlobObjectURL(localImage) {\n if (this.isBlob(true, localImage)) {\n global.URL.revokeObjectURL(localImage.url);\n }\n },\n\n // Checks if remoteImage and localImage are the same.\n isRemoteImageLocal(localImage, remoteImage) {\n // Both remoteImage and localImage are present.\n if (remoteImage && localImage) {\n return this.isBlob(false, remoteImage) ?\n localImage.path === remoteImage.path :\n localImage.url === remoteImage;\n }\n\n // This will only handle the remaining three possible outcomes.\n // (i.e. everything except when both image and localImage are present)\n return !remoteImage && !localImage;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/screenshot-utils.js","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onAcknowledge = this.onAcknowledge.bind(this);\n }\n\n onAcknowledge() {\n this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n }\n\n render() {\n const {disclaimer} = this.props;\n return (\n <div className=\"section-disclaimer\">\n <div className=\"section-disclaimer-text\">\n {getFormattedMessage(disclaimer.text)}\n {disclaimer.link &&\n <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n </a>\n }\n </div>\n\n <button onClick={this.onAcknowledge}>\n {getFormattedMessage(disclaimer.button)}\n </button>\n </div>\n );\n }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBodyMount = this.onBodyMount.bind(this);\n this.onHeaderClick = this.onHeaderClick.bind(this);\n this.onTransitionEnd = this.onTransitionEnd.bind(this);\n this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n }\n\n componentWillMount() {\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n componentWillUpdate(nextProps) {\n // Check if we're about to go from expanded to collapsed\n if (!this.props.collapsed && nextProps.collapsed) {\n // This next line forces a layout flush of the section body, which has a\n // max-height style set, so that the upcoming collapse animation can\n // animate from that height to the collapsed height. Without this, the\n // update is coalesced and there's no animation from no-max-height to 0.\n this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n }\n }\n\n componentWillUnmount() {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n enableOrDisableAnimation() {\n // Only animate the collapse/expand for visible tabs.\n const visible = this.props.document.visibilityState === VISIBLE;\n if (this.state.enableAnimation !== visible) {\n this.setState({enableAnimation: visible});\n }\n }\n\n onBodyMount(node) {\n this.sectionBody = node;\n }\n\n onHeaderClick() {\n // If this.sectionBody is unset, it means that we're in some sort of error\n // state, probably displaying the error fallback, so we won't be able to\n // compute the height, and we don't want to persist the preference.\n // If props.collapsed is undefined handler shouldn't do anything.\n if (!this.sectionBody || this.props.collapsed === undefined) {\n return;\n }\n\n // Get the current height of the body so max-height transitions can work\n this.setState({\n isAnimating: true,\n maxHeight: `${this.sectionBody.scrollHeight}px`\n });\n const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n this.props.dispatch(action);\n this.props.dispatch(ac.UserEvent({\n event: userEvent,\n source: this.props.source\n }));\n }\n\n onTransitionEnd(event) {\n // Only update the animating state for our own transition (not a child's)\n if (event.target === event.currentTarget) {\n this.setState({isAnimating: false});\n }\n }\n\n renderIcon() {\n const {icon} = this.props;\n if (icon && icon.startsWith(\"moz-extension://\")) {\n return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n }\n return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({showContextMenu: true});\n }\n\n onMenuButtonMouseEnter() {\n this.setState({menuButtonHover: true});\n }\n\n onMenuButtonMouseLeave() {\n this.setState({menuButtonHover: false});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const isCollapsible = this.props.collapsed !== undefined;\n const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const disclaimerPref = `section.${id}.showDisclaimer`;\n const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n const active = menuButtonHover || showContextMenu;\n return (\n <section\n className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}\n // Note: data-section-id is used for web extension api tests in mozilla central\n data-section-id={id}>\n <div className=\"section-top-bar\">\n <h3 className=\"section-title\">\n <span className=\"click-target\" onClick={this.onHeaderClick}>\n {this.renderIcon()}\n {getFormattedMessage(title)}\n {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n </span>\n </h3>\n <div>\n <button\n className=\"context-menu-button icon\"\n onClick={this.onMenuButtonClick}\n onMouseEnter={this.onMenuButtonMouseEnter}\n onMouseLeave={this.onMenuButtonMouseLeave}>\n <span className=\"sr-only\">\n <FormattedMessage id=\"section_context_menu_button_sr\" />\n </span>\n </button>\n {showContextMenu &&\n <SectionMenu\n id={id}\n extraOptions={extraMenuOptions}\n eventSource={eventSource}\n showPrefName={showPrefName}\n privacyNoticeURL={privacyNoticeURL}\n collapsed={collapsed}\n onUpdate={this.onMenuUpdate}\n isFirst={isFirst}\n isLast={isLast}\n dispatch={dispatch}\n isWebExtension={isWebExtension} />\n }\n </div>\n </div>\n <ErrorBoundary className=\"section-body-fallback\">\n <div\n className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n onTransitionEnd={this.onTransitionEnd}\n ref={this.onBodyMount}\n style={isAnimating && !collapsed ? {maxHeight} : null}>\n {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n {this.props.children}\n </div>\n </ErrorBoundary>\n </section>\n );\n }\n}\n\n_CollapsibleSection.defaultProps = {\n document: global.document || {\n addEventListener: () => {},\n removeEventListener: () => {},\n visibilityState: \"hidden\"\n },\n Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n MoveUp: section => ({\n id: \"section_menu_action_move_up\",\n icon: \"arrowhead-up\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: -1}\n }),\n userEvent: \"MENU_MOVE_UP\",\n disabled: !!section.isFirst\n }),\n MoveDown: section => ({\n id: \"section_menu_action_move_down\",\n icon: \"arrowhead-down\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: +1}\n }),\n userEvent: \"MENU_MOVE_DOWN\",\n disabled: !!section.isLast\n }),\n RemoveSection: section => ({\n id: \"section_menu_action_remove_section\",\n icon: \"dismiss\",\n action: ac.SetPref(section.showPrefName, false),\n userEvent: \"MENU_REMOVE\"\n }),\n CollapseSection: section => ({\n id: \"section_menu_action_collapse_section\",\n icon: \"minimize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n userEvent: \"MENU_COLLAPSE\"\n }),\n ExpandSection: section => ({\n id: \"section_menu_action_expand_section\",\n icon: \"maximize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n userEvent: \"MENU_EXPAND\"\n }),\n ManageSection: section => ({\n id: \"section_menu_action_manage_section\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n userEvent: \"MENU_MANAGE\"\n }),\n ManageWebExtension: section => ({\n id: \"section_menu_action_manage_webext\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id})\n }),\n AddTopSite: section => ({\n id: \"section_menu_action_add_topsite\",\n icon: \"add\",\n action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n userEvent: \"MENU_ADD_TOPSITE\"\n }),\n PrivacyNotice: section => ({\n id: \"section_menu_action_privacy_notice\",\n icon: \"info\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: section.privacyNoticeURL}\n }),\n userEvent: \"MENU_PRIVACY_NOTICE\"\n }),\n CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n constructor(props) {\n super(props);\n // Just for test dependency injection:\n this.perfSvc = this.props.perfSvc || perfSvc;\n\n this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n this._reportMissingData = false;\n this._timestampHandled = false;\n this._recordedFirstRender = false;\n }\n\n componentDidMount() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n componentDidUpdate() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n /**\n * Call the given callback after the upcoming frame paints.\n *\n * @note Both setTimeout and requestAnimationFrame are throttled when the page\n * is hidden, so this callback may get called up to a second or so after the\n * requestAnimationFrame \"paint\" for hidden tabs.\n *\n * Newtabs hidden while loading will presumably be fairly rare (other than\n * preloaded tabs, which we will be filtering out on the server side), so such\n * cases should get lost in the noise.\n *\n * If we decide that it's important to find out when something that's hidden\n * has \"painted\", however, another option is to post a message to this window.\n * That should happen even faster than setTimeout, and, at least as of this\n * writing, it's not throttled in hidden windows in Firefox.\n *\n * @param {Function} callback\n *\n * @returns void\n */\n _afterFramePaint(callback) {\n requestAnimationFrame(() => setTimeout(callback, 0));\n }\n\n _maybeSendBadStateEvent() {\n // Follow up bugs:\n // https://github.com/mozilla/activity-stream/issues/3691\n if (!this.props.initialized) {\n // Remember to report back when data is available.\n this._reportMissingData = true;\n } else if (this._reportMissingData) {\n this._reportMissingData = false;\n // Report how long it took for component to become initialized.\n this._sendBadStateEvent();\n }\n }\n\n _maybeSendPaintedEvent() {\n // If we've already handled a timestamp, don't do it again.\n if (this._timestampHandled || !this.props.initialized) {\n return;\n }\n\n // And if we haven't, we're doing so now, so remember that. Even if\n // something goes wrong in the callback, we can't try again, as we'd be\n // sending back the wrong data, and we have to do it here, so that other\n // calls to this method while waiting for the next frame won't also try to\n // handle it.\n this._timestampHandled = true;\n this._afterFramePaint(this._sendPaintedEvent);\n }\n\n /**\n * Triggered by call to render. Only first call goes through due to\n * `_recordedFirstRender`.\n */\n _ensureFirstRenderTsRecorded() {\n // Used as t0 for recording how long component took to initialize.\n if (!this._recordedFirstRender) {\n this._recordedFirstRender = true;\n // topsites_first_render_ts, highlights_first_render_ts.\n const key = `${this.props.id}_first_render_ts`;\n this.perfSvc.mark(key);\n }\n }\n\n /**\n * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n * of how much longer the data took to be ready for display than it would\n * have been the ideal case.\n * https://github.com/mozilla/ping-centre/issues/98\n */\n _sendBadStateEvent() {\n // highlights_data_ready_ts, topsites_data_ready_ts.\n const dataReadyKey = `${this.props.id}_data_ready_ts`;\n this.perfSvc.mark(dataReadyKey);\n\n try {\n const firstRenderKey = `${this.props.id}_first_render_ts`;\n // value has to be Int32.\n const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n // highlights_data_late_by_ms, topsites_data_late_by_ms.\n data: {[`${this.props.id}_data_late_by_ms`]: value}\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true.\n }\n }\n\n _sendPaintedEvent() {\n // Record first_painted event but only send if topsites.\n if (this.props.id !== \"topsites\") {\n return;\n }\n\n // topsites_first_painted_ts.\n const key = `${this.props.id}_first_painted_ts`;\n this.perfSvc.mark(key);\n\n try {\n const data = {};\n data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up, and should continue\n // to set this._timestampHandled to avoid going through this again.\n }\n }\n\n render() {\n if (RECORDED_SECTIONS.includes(this.props.id)) {\n this._ensureFirstRenderTsRecorded();\n this._maybeSendBadStateEvent();\n }\n return this.props.children;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n // Borrow the high-resolution timer from the hidden window....\n usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n // we must be running in content space\n // eslint-disable-next-line no-undef\n usablePerfObj = performance;\n} else {\n // This is a dummy object so this file doesn't crash in the node prerendering\n // task.\n usablePerfObj = {\n now() {},\n mark() {}\n };\n}\n\nfunction _PerfService(options) {\n // For testing, so that we can use a fake Window.performance object with\n // known state.\n if (options && options.performanceObj) {\n this._perf = options.performanceObj;\n } else {\n this._perf = usablePerfObj;\n }\n}\n\n_PerfService.prototype = {\n /**\n * Calls the underlying mark() method on the appropriate Window.performance\n * object to add a mark with the given name to the appropriate performance\n * timeline.\n *\n * @param {String} name the name to give the current mark\n * @return {void}\n */\n mark: function mark(str) {\n this._perf.mark(str);\n },\n\n /**\n * Calls the underlying getEntriesByName on the appropriate Window.performance\n * object.\n *\n * @param {String} name\n * @param {String} type eg \"mark\"\n * @return {Array} Performance* objects\n */\n getEntriesByName: function getEntriesByName(name, type) {\n return this._perf.getEntriesByName(name, type);\n },\n\n /**\n * The timeOrigin property from the appropriate performance object.\n * Used to ensure that timestamps from the add-on code and the content code\n * are comparable.\n *\n * @note If this is called from a context without a window\n * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n * window, which appears to be the first created window (and thus\n * timeOrigin) in the browser. Note also, however, there is also a private\n * hidden window, presumably for private browsing, which appears to be\n * created dynamically later. Exactly how/when that shows up needs to be\n * investigated.\n *\n * @return {Number} A double of milliseconds with a precision of 0.5us.\n */\n get timeOrigin() {\n return this._perf.timeOrigin;\n },\n\n /**\n * Returns the \"absolute\" version of performance.now(), i.e. one that\n * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n * be comparable across both chrome and content.\n *\n * @return {Number}\n */\n absNow: function absNow() {\n return this.timeOrigin + this._perf.now();\n },\n\n /**\n * This returns the absolute startTime from the most recent performance.mark()\n * with the given name.\n *\n * @param {String} name the name to lookup the start time for\n *\n * @return {Number} the returned start time, as a DOMHighResTimeStamp\n *\n * @throws {Error} \"No Marks with the name ...\" if none are available\n *\n * @note Always surround calls to this by try/catch. Otherwise your code\n * may fail when the `privacy.resistFingerprinting` pref is true. When\n * this pref is set, all attempts to get marks will likely fail, which will\n * cause this method to throw.\n *\n * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n * for more info.\n */\n getMostRecentAbsMarkStartByName(name) {\n let entries = this.getEntriesByName(name, \"mark\");\n\n if (!entries.length) {\n throw new Error(`No marks with the name ${name}`);\n }\n\n let mostRecentEntry = entries[entries.length - 1];\n return this._perf.timeOrigin + mostRecentEntry.startTime;\n }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n MIN_CORNER_FAVICON_SIZE,\n MIN_RICH_FAVICON_SIZE,\n TOP_SITES_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {screenshotImage: null};\n this.onDragEvent = this.onDragEvent.bind(this);\n }\n\n /*\n * Helper to determine whether the drop zone should allow a drop. We only allow\n * dropping top sites for now.\n */\n _allowDrop(e) {\n return e.dataTransfer.types.includes(\"text/topsite-index\");\n }\n\n onDragEvent(event) {\n switch (event.type) {\n case \"click\":\n // Stop any link clicks if we started any dragging\n if (this.dragged) {\n event.preventDefault();\n }\n break;\n case \"dragstart\":\n this.dragged = true;\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n event.target.blur();\n this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n break;\n case \"dragend\":\n this.props.onDragEvent(event);\n break;\n case \"dragenter\":\n case \"dragover\":\n case \"drop\":\n if (this._allowDrop(event)) {\n event.preventDefault();\n this.props.onDragEvent(event, this.props.index);\n }\n break;\n case \"mousedown\":\n // Reset at the first mouse event of a potential drag\n this.dragged = false;\n break;\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {screenshot} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.screenshotImage, screenshot);\n if (imageInState) {\n return null;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.screenshotImage);\n\n return {screenshotImage: ScreenshotUtils.createLocalImageObject(screenshot)};\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = TopSiteLink.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = TopSiteLink.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.screenshotImage);\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n const {tippyTopIcon, faviconSize} = link;\n const [letterFallback] = title;\n let imageClassName;\n let imageStyle;\n let showSmallFavicon = false;\n let smallFaviconStyle;\n let smallFaviconFallback;\n let hasScreenshotImage = this.state.screenshotImage && this.state.screenshotImage.url;\n if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n smallFaviconFallback = false;\n } else if (link.customScreenshotURL) {\n // assume high quality custom screenshot and use rich icon styles and class names\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"\n };\n } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n // styles and class names for top sites with rich icons\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon || link.favicon})`\n };\n } else {\n // styles and class names for top sites with screenshot + small icon in top left corner\n imageClassName = `screenshot${hasScreenshotImage ? \" active\" : \"\"}`;\n imageStyle = {backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"};\n\n // only show a favicon in top left if it's greater than 16x16\n if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n showSmallFavicon = true;\n smallFaviconStyle = {backgroundImage: `url(${link.favicon})`};\n } else if (hasScreenshotImage) {\n // Don't show a small favicon if there is no screenshot, because that\n // would result in two fallback icons\n showSmallFavicon = true;\n smallFaviconFallback = true;\n }\n }\n let draggableProps = {};\n if (isDraggable) {\n draggableProps = {\n onClick: this.onDragEvent,\n onDragEnd: this.onDragEvent,\n onDragStart: this.onDragEvent,\n onMouseDown: this.onDragEvent\n };\n }\n return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n <div className=\"top-site-inner\">\n <a href={link.url} onClick={onClick}>\n <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n <div className={imageClassName} style={imageStyle} />\n {showSmallFavicon && <div\n className=\"top-site-icon default-icon\"\n data-fallback={smallFaviconFallback && letterFallback}\n style={smallFaviconStyle} />}\n </div>\n <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n {link.isPinned && <div className=\"icon icon-pin-small\" />}\n <span dir=\"auto\">{title}</span>\n </div>\n </a>\n {children}\n </div>\n </li>);\n }\n}\nTopSiteLink.defaultProps = {\n title: \"\",\n link: {},\n isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {showContextMenu: false};\n this.onLinkClick = this.onLinkClick.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n const value = {icon_type: this.props.link.iconType};\n // Filter out \"not_pinned\" type for being the default\n if (this.props.link.isPinned) {\n value.card_type = \"pinned\";\n }\n return {value};\n }\n\n userEvent(event) {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event,\n source: TOP_SITES_SOURCE,\n action_position: this.props.index\n }, this._getTelemetryInfo())));\n }\n\n onLinkClick(event) {\n this.userEvent(\"CLICK\");\n\n // Specially handle a top site link click for \"typed\" frecency bonus as\n // specified as a property on the link.\n event.preventDefault();\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n }));\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.props.onActivate(this.props.index);\n this.setState({showContextMenu: true});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const {props} = this;\n const {link} = props;\n const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n const title = link.label || link.hostname;\n return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n <div>\n <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n <span className=\"sr-only\">\n <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n </span>\n </button>\n {isContextMenuOpen &&\n <LinkMenu\n dispatch={props.dispatch}\n index={props.index}\n onUpdate={this.onMenuUpdate}\n options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n site={link}\n siteInfo={this._getTelemetryInfo()}\n source={TOP_SITES_SOURCE} />\n }\n </div>\n </TopSiteLink>);\n }\n}\nTopSite.defaultProps = {\n link: {},\n onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditButtonClick = this.onEditButtonClick.bind(this);\n }\n\n onEditButtonClick() {\n this.props.dispatch(\n {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n }\n\n render() {\n return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n <button className=\"context-menu-button edit-button icon\"\n title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n onClick={this.onEditButtonClick} />\n </TopSiteLink>);\n }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n static get DEFAULT_STATE() {\n return {\n activeIndex: null,\n draggedIndex: null,\n draggedSite: null,\n draggedTitle: null,\n topSitesPreview: null\n };\n }\n\n constructor(props) {\n super(props);\n this.state = _TopSiteList.DEFAULT_STATE;\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onActivate = this.onActivate.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.state.draggedSite) {\n const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n // We got the new order from the redux store via props. We can clear state now.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n }\n }\n\n userEvent(event, index) {\n this.props.dispatch(ac.UserEvent({\n event,\n source: TOP_SITES_SOURCE,\n action_position: index\n }));\n }\n\n onDragEvent(event, index, link, title) {\n switch (event.type) {\n case \"dragstart\":\n this.dropped = false;\n this.setState({\n draggedIndex: index,\n draggedSite: link,\n draggedTitle: title,\n activeIndex: null\n });\n this.userEvent(\"DRAG\", index);\n break;\n case \"dragend\":\n if (!this.dropped) {\n // If there was no drop event, reset the state to the default.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n break;\n case \"dragenter\":\n if (index === this.state.draggedIndex) {\n this.setState({topSitesPreview: null});\n } else {\n this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n }\n break;\n case \"drop\":\n if (index !== this.state.draggedIndex) {\n this.dropped = true;\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_INSERT,\n data: {\n site: {\n url: this.state.draggedSite.url,\n label: this.state.draggedTitle,\n customScreenshotURL: this.state.draggedSite.customScreenshotURL\n },\n index,\n draggedFromIndex: this.state.draggedIndex\n }\n }));\n this.userEvent(\"DROP\", index);\n }\n break;\n }\n }\n\n _getTopSites() {\n // Make a copy of the sites to truncate or extend to desired length\n let topSites = this.props.TopSites.rows.slice();\n topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n return topSites;\n }\n\n /**\n * Make a preview of the topsites that will be the result of dropping the currently\n * dragged site at the specified index.\n */\n _makeTopSitesPreview(index) {\n const topSites = this._getTopSites();\n topSites[this.state.draggedIndex] = null;\n const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n const unpinned = topSites.filter(site => site && !site.isPinned);\n const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n if (!pinnedOnly[index]) {\n pinnedOnly[index] = siteToInsert;\n } else {\n // Find the hole to shift the pinned site(s) towards. We shift towards the\n // hole left by the site being dragged.\n let holeIndex = index;\n const indexStep = index > this.state.draggedIndex ? -1 : 1;\n while (pinnedOnly[holeIndex]) {\n holeIndex += indexStep;\n }\n\n // Shift towards the hole.\n const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n while (holeIndex !== index) {\n const nextIndex = holeIndex + shiftingStep;\n pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n holeIndex = nextIndex;\n }\n pinnedOnly[index] = siteToInsert;\n }\n\n // Fill in the remaining holes with unpinned sites.\n const preview = pinnedOnly;\n for (let i = 0; i < preview.length; i++) {\n if (!preview[i]) {\n preview[i] = unpinned.shift() || null;\n }\n }\n\n return preview;\n }\n\n onActivate(index) {\n this.setState({activeIndex: index});\n }\n\n render() {\n const {props} = this;\n const topSites = this.state.topSitesPreview || this._getTopSites();\n const topSitesUI = [];\n const commonProps = {\n onDragEvent: this.onDragEvent,\n dispatch: props.dispatch,\n intl: props.intl\n };\n // We assign a key to each placeholder slot. We need it to be independent\n // of the slot index (i below) so that the keys used stay the same during\n // drag and drop reordering and the underlying DOM nodes are reused.\n // This mostly (only?) affects linux so be sure to test on linux before changing.\n let holeIndex = 0;\n\n // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n for (let i = 0, l = topSites.length; i < l; i++) {\n const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n const slotProps = {\n key: link ? link.url : holeIndex++,\n index: i\n };\n if (i >= maxNarrowVisibleIndex) {\n slotProps.className = \"hide-for-narrow\";\n }\n topSitesUI.push(!link ? (\n <TopSitePlaceholder\n {...slotProps}\n {...commonProps} />\n ) : (\n <TopSite\n link={link}\n activeIndex={this.state.activeIndex}\n onActivate={this.onActivate}\n {...slotProps}\n {...commonProps} />\n ));\n }\n return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n {topSitesUI}\n </ul>);\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n <Base\n isFirstrun={global.document.location.href === \"about:welcome\"}\n isPrerendered={!!global.gActivityStreamPrerenderedState}\n locale={global.document.documentElement.lang}\n strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n * the same interface as a Map, but is optionally backed by\n * indexedDB for persistent storage.\n * Call .connect() to open a database connection and restore any\n * previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n constructor(dispatch) {\n super();\n this._db = null;\n this._dispatch = dispatch;\n }\n\n set(key, value) {\n super.set(key, value);\n return this._dbTransaction(db => db.put(value, key));\n }\n\n delete(key) {\n super.delete(key);\n return this._dbTransaction(db => db.delete(key));\n }\n\n clear() {\n super.clear();\n this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n return this._dbTransaction(db => db.clear());\n }\n\n get blockList() {\n return this.get(\"blockList\") || [];\n }\n\n /**\n * blockSnippetById - Blocks a snippet given an id\n *\n * @param {str|int} id The id of the snippet\n * @return {Promise} Resolves when the id has been written to indexedDB,\n * or immediately if the snippetMap is not connected\n */\n async blockSnippetById(id) {\n if (!id) {\n return;\n }\n const {blockList} = this;\n if (!blockList.includes(id)) {\n blockList.push(id);\n this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n await this.set(\"blockList\", blockList);\n }\n }\n\n disableOnboarding() {\n this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n }\n\n showFirefoxAccounts() {\n this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n }\n\n getTotalBookmarksCount() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n getAddonsInfo() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n /**\n * connect - Attaches an indexedDB back-end to the Map so that any set values\n * are also cached in a store. It also restores any existing values\n * that are already stored in the indexedDB store.\n *\n * @return {type} description\n */\n async connect() {\n // Open the connection\n const db = await this._openDB();\n\n // Restore any existing values\n await this._restoreFromDb(db);\n\n // Attach a reference to the db\n this._db = db;\n }\n\n /**\n * _dbTransaction - Returns a db transaction wrapped with the given modifier\n * function as a Promise. If the db has not been connected,\n * it resolves immediately.\n *\n * @param {func} modifier A function to call with the transaction\n * @return {obj} A Promise that resolves when the transaction has\n * completed or errored\n */\n _dbTransaction(modifier) {\n if (!this._db) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const transaction = modifier(\n this._db\n .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n );\n transaction.onsuccess = event => resolve();\n\n /* istanbul ignore next */\n transaction.onerror = event => reject(transaction.error);\n });\n }\n\n _openDB() {\n return new Promise((resolve, reject) => {\n const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n /* istanbul ignore next */\n openRequest.onerror = event => {\n // Try to delete the old database so that we can start this process over\n // next time.\n indexedDB.deleteDatabase(DATABASE_NAME);\n reject(event);\n };\n\n openRequest.onupgradeneeded = event => {\n const db = event.target.result;\n if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n }\n };\n\n openRequest.onsuccess = event => {\n let db = event.target.result;\n\n /* istanbul ignore next */\n db.onerror = err => console.error(err); // eslint-disable-line no-console\n /* istanbul ignore next */\n db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n resolve(db);\n };\n });\n }\n\n _restoreFromDb(db) {\n return new Promise((resolve, reject) => {\n let cursorRequest;\n try {\n cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n } catch (err) {\n // istanbul ignore next\n reject(err);\n // istanbul ignore next\n return;\n }\n\n /* istanbul ignore next */\n cursorRequest.onerror = event => reject(event);\n\n cursorRequest.onsuccess = event => {\n let cursor = event.target.result;\n // Populate the cache from the persistent storage.\n if (cursor) {\n if (cursor.value !== \"blockList\") {\n this.set(cursor.key, cursor.value);\n }\n cursor.continue();\n } else {\n // We are done.\n resolve();\n }\n };\n });\n }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n * remote location, or else default snippets if the remote\n * snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n constructor(dispatch) {\n // Initialize the Snippets Map and attaches it to a global so that\n // the snippet payload can interact with it.\n global.gSnippetsMap = new SnippetsMap(dispatch);\n this._onAction = this._onAction.bind(this);\n }\n\n get snippetsMap() {\n return global.gSnippetsMap;\n }\n\n async _refreshSnippets() {\n // Check if the cached version of of the snippets in snippetsMap. If it's too\n // old, blow away the entire snippetsMap.\n const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n if (cachedVersion !== this.appData.version) {\n this.snippetsMap.clear();\n }\n\n // Has enough time passed for us to require an update?\n const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n if (needsUpdate && this.appData.snippetsURL) {\n this.snippetsMap.set(\"snippets-last-update\", Date.now());\n try {\n const response = await fetch(this.appData.snippetsURL);\n if (response.status === 200) {\n const payload = await response.text();\n\n this.snippetsMap.set(\"snippets\", payload);\n this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n }\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n _noSnippetFallback() {\n // TODO\n }\n\n _forceOnboardingVisibility(shouldBeVisible) {\n const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n if (onboardingEl) {\n onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n }\n }\n\n _showRemoteSnippets() {\n const snippetsEl = document.getElementById(this.elementId);\n const payload = this.snippetsMap.get(\"snippets\");\n\n if (!snippetsEl) {\n throw new Error(`No element was found with id '${this.elementId}'.`);\n }\n\n // This could happen if fetching failed\n if (!payload) {\n throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n }\n\n if (typeof payload !== \"string\") {\n throw new Error(\"Snippet payload was incorrectly formatted\");\n }\n\n // Note that injecting snippets can throw if they're invalid XML.\n // eslint-disable-next-line no-unsanitized/property\n snippetsEl.innerHTML = payload;\n\n // Scripts injected by innerHTML are inactive, so we have to relocate them\n // through DOM manipulation to activate their contents.\n for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n const relocatedScript = document.createElement(\"script\");\n relocatedScript.text = scriptEl.text;\n scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n }\n }\n\n _onAction(msg) {\n if (msg.data.type === at.SNIPPET_BLOCKED) {\n if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n document.getElementById(\"snippets-container\").style.display = \"none\";\n }\n }\n }\n\n /**\n * init - Fetch the snippet payload and show snippets\n *\n * @param {obj} options\n * @param {str} options.appData.snippetsURL The URL from which we fetch snippets\n * @param {int} options.appData.version The current snippets version\n * @param {str} options.elementId The id of the element in which to inject snippets\n * @param {bool} options.connect Should gSnippetsMap connect to indexedDB?\n */\n async init(options) {\n Object.assign(this, {\n appData: {},\n elementId: \"snippets\",\n connect: true\n }, options);\n\n // Add listener so we know when snippets are blocked on other pages\n if (global.addMessageListener) {\n global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n\n // TODO: Requires enabling indexedDB on newtab\n // Restore the snippets map from indexedDB\n if (this.connect) {\n try {\n await this.snippetsMap.connect();\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n\n // Cache app data values so they can be accessible from gSnippetsMap\n for (const key of Object.keys(this.appData)) {\n if (key === \"blockList\") {\n this.snippetsMap.set(\"blockList\", this.appData[key]);\n } else {\n this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n }\n }\n\n // Refresh snippets, if enough time has passed.\n await this._refreshSnippets();\n\n // Try showing remote snippets, falling back to defaults if necessary.\n try {\n this._showRemoteSnippets();\n } catch (e) {\n this._noSnippetFallback(e);\n }\n\n window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n this._forceOnboardingVisibility(true);\n this.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n this._forceOnboardingVisibility(false);\n if (global.removeMessageListener) {\n global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n this.initialized = false;\n }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n * when the store has received the appropriate\n * Snippet data.\n *\n * @param {obj} store The redux store\n * @return {obj} Returns the snippets instance, asrouterContent instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n const snippets = new SnippetsProvider(store.dispatch);\n const asrouterContent = new ASRouterContent();\n\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n // state.Prefs.values[\"feeds.snippets\"]: Should snippets be shown?\n // state.Snippets.initialized Is the snippets data initialized?\n // snippets.initialized: Is SnippetsProvider currently initialised?\n if (state.Prefs.values[\"feeds.snippets\"] &&\n // If the message center experiment is enabled, don't show snippets\n !state.Prefs.values.asrouterExperimentEnabled &&\n !state.Prefs.values.disableSnippets &&\n state.Snippets.initialized &&\n !snippets.initialized &&\n // Don't call init multiple times\n !initializing &&\n location.href !== \"about:welcome\"\n ) {\n initializing = true;\n await snippets.init({appData: state.Snippets});\n initializing = false;\n } else if (\n (state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true) &&\n snippets.initialized\n ) {\n snippets.uninit();\n }\n\n // Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;\n // otherwise, turn it off.\n if (\n state.Prefs.values.asrouterExperimentEnabled &&\n state.Prefs.values[\"feeds.snippets\"] &&\n !asrouterContent.initialized) {\n asrouterContent.init();\n } else if (\n (!state.Prefs.values.asrouterExperimentEnabled || !state.Prefs.values[\"feeds.snippets\"]) &&\n asrouterContent.initialized\n ) {\n asrouterContent.uninit();\n }\n });\n\n // These values are returned for testing purposes\n return {snippets, asrouterContent};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/snippets.js","import { CachedIterable, mapContextSync } from \"fluent\";\n\n/*\n * `ReactLocalization` handles translation formatting and fallback.\n *\n * The current negotiated fallback chain of languages is stored in the\n * `ReactLocalization` instance in form of an iterable of `MessageContext`\n * instances. This iterable is used to find the best existing translation for\n * a given identifier.\n *\n * `Localized` components must subscribe to the changes of the\n * `ReactLocalization`'s fallback chain. When the fallback chain changes (the\n * `messages` iterable is set anew), all subscribed compontent must relocalize.\n *\n * The `ReactLocalization` class instances are exposed to `Localized` elements\n * via the `LocalizationProvider` component.\n */\nexport default class ReactLocalization {\n constructor(messages) {\n this.contexts = new CachedIterable(messages);\n this.subs = new Set();\n }\n\n /*\n * Subscribe a `Localized` component to changes of `messages`.\n */\n subscribe(comp) {\n this.subs.add(comp);\n }\n\n /*\n * Unsubscribe a `Localized` component from `messages` changes.\n */\n unsubscribe(comp) {\n this.subs.delete(comp);\n }\n\n /*\n * Set a new `messages` iterable and trigger the retranslation.\n */\n setMessages(messages) {\n this.contexts = new CachedIterable(messages);\n\n // Update all subscribed Localized components.\n this.subs.forEach(comp => comp.relocalize());\n }\n\n getMessageContext(id) {\n return mapContextSync(this.contexts, id);\n }\n\n formatCompound(mcx, msg, args) {\n const value = mcx.format(msg, args);\n\n if (msg.attrs) {\n var attrs = {};\n for (const name of Object.keys(msg.attrs)) {\n attrs[name] = mcx.format(msg.attrs[name], args);\n }\n }\n\n return { value, attrs };\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const mcx = this.getMessageContext(id);\n\n if (mcx === null) {\n return fallback || id;\n }\n\n const msg = mcx.getMessage(id);\n return mcx.format(msg, args);\n }\n}\n\nexport function isReactLocalization(props, propName) {\n const prop = props[propName];\n\n if (prop instanceof ReactLocalization) {\n return null;\n }\n\n return new Error(\n `The ${propName} context field must be an instance of ReactLocalization.`\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/localization.js","import { Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ReactLocalization, { isReactLocalization} from \"./localization\";\n\n/*\n * The Provider component for the `ReactLocalization` class.\n *\n * Exposes a `ReactLocalization` instance to all descendants via React's\n * context feature. It makes translations available to all localizable\n * elements in the descendant's render tree without the need to pass them\n * explicitly.\n *\n * <LocalizationProvider messages={…}>\n * …\n * </LocalizationProvider>\n *\n * The `LocalizationProvider` component takes one prop: `messages`. It should\n * be an iterable of `MessageContext` instances in order of the user's\n * preferred languages. The `MessageContext` instances will be used by\n * `ReactLocalization` to format translations. If a translation is missing in\n * one instance, `ReactLocalization` will fall back to the next one.\n */\nexport default class LocalizationProvider extends Component {\n constructor(props) {\n super(props);\n const { messages } = props;\n\n if (messages === undefined) {\n throw new Error(\"LocalizationProvider must receive the messages prop.\");\n }\n\n if (!messages[Symbol.iterator]) {\n throw new Error(\"The messages prop must be an iterable.\");\n }\n\n this.l10n = new ReactLocalization(messages);\n }\n\n getChildContext() {\n return {\n l10n: this.l10n\n };\n }\n\n componentWillReceiveProps(next) {\n const { messages } = next;\n\n if (messages !== this.props.messages) {\n this.l10n.setMessages(messages);\n }\n }\n\n render() {\n return Children.only(this.props.children);\n }\n}\n\nLocalizationProvider.childContextTypes = {\n l10n: isReactLocalization\n};\n\nLocalizationProvider.propTypes = {\n children: PropTypes.element.isRequired,\n messages: isIterable\n};\n\nfunction isIterable(props, propName, componentName) {\n const prop = props[propName];\n\n if (Symbol.iterator in Object(prop)) {\n return null;\n }\n\n return new Error(\n `The ${propName} prop supplied to ${componentName} must be an iterable.`\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/provider.js","import { createElement, Component } from \"react\";\n\nimport { isReactLocalization } from \"./localization\";\n\nexport default function withLocalization(Inner) {\n class WithLocalization extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const { l10n } = this.context;\n\n if (!l10n) {\n return fallback || id;\n }\n\n return l10n.getString(id, args, fallback);\n }\n\n render() {\n return createElement(\n Inner,\n Object.assign(\n // getString needs to be re-bound on updates to trigger a re-render\n { getString: (...args) => this.getString(...args) },\n this.props\n )\n );\n }\n }\n\n WithLocalization.displayName = `WithLocalization(${displayName(Inner)})`;\n\n WithLocalization.contextTypes = {\n l10n: isReactLocalization\n };\n\n return WithLocalization;\n}\n\nfunction displayName(component) {\n return component.displayName || component.name || \"Component\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/with_localization.js","/* eslint-env browser */\n\nconst TEMPLATE = document.createElement(\"template\");\n\nexport function parseMarkup(str) {\n TEMPLATE.innerHTML = str;\n return TEMPLATE.content;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/markup.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nexport default omittedCloseTags;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/vendor/omittedCloseTags.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\nimport omittedCloseTags from './omittedCloseTags';\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = {\n menuitem: true,\n ...omittedCloseTags,\n};\n\nexport default voidElementTags;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/vendor/voidElementTags.js","import { isValidElement, cloneElement, Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isReactLocalization } from \"./localization\";\nimport { parseMarkup } from \"./markup\";\nimport VOID_ELEMENTS from \"../vendor/voidElementTags\";\n\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reMarkup = /<|&#?\\w+;/;\n\n/*\n * Prepare props passed to `Localized` for formatting.\n */\nfunction toArguments(props) {\n const args = {};\n const elems = {};\n\n for (const [propname, propval] of Object.entries(props)) {\n if (propname.startsWith(\"$\")) {\n const name = propname.substr(1);\n args[name] = propval;\n } else if (isValidElement(propval)) {\n // We'll try to match localNames of elements found in the translation with\n // names of elements passed as props. localNames are always lowercase.\n const name = propname.toLowerCase();\n elems[name] = propval;\n }\n }\n\n return [args, elems];\n}\n\n/*\n * The `Localized` class renders its child with translated props and children.\n *\n * <Localized id=\"hello-world\">\n * <p>{'Hello, world!'}</p>\n * </Localized>\n *\n * The `id` prop should be the unique identifier of the translation. Any\n * attributes found in the translation will be applied to the wrapped element.\n *\n * Arguments to the translation can be passed as `$`-prefixed props on\n * `Localized`.\n *\n * <Localized id=\"hello-world\" $username={name}>\n * <p>{'Hello, { $username }!'}</p>\n * </Localized>\n *\n * It's recommended that the contents of the wrapped component be a string\n * expression. The string will be used as the ultimate fallback if no\n * translation is available. It also makes it easy to grep for strings in the\n * source code.\n */\nexport default class Localized extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n render() {\n const { l10n } = this.context;\n const { id, attrs, children } = this.props;\n const elem = Children.only(children);\n\n if (!l10n) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const mcx = l10n.getMessageContext(id);\n\n if (mcx === null) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const msg = mcx.getMessage(id);\n const [args, elems] = toArguments(this.props);\n const {\n value: messageValue,\n attrs: messageAttrs\n } = l10n.formatCompound(mcx, msg, args);\n\n // The default is to forbid all message attributes. If the attrs prop exists\n // on the Localized instance, only set message attributes which have been\n // explicitly allowed by the developer.\n if (attrs && messageAttrs) {\n var localizedProps = {};\n\n for (const [name, value] of Object.entries(messageAttrs)) {\n if (attrs[name]) {\n localizedProps[name] = value;\n }\n }\n }\n\n // If the wrapped component is a known void element, explicitly dismiss the\n // message value and do not pass it to cloneElement in order to avoid the\n // \"void element tags must neither have `children` nor use\n // `dangerouslySetInnerHTML`\" error.\n if (elem.type in VOID_ELEMENTS) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message has a null value, we're only interested in its attributes.\n // Do not pass the null value to cloneElement as it would nuke all children\n // of the wrapped component.\n if (messageValue === null) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message value doesn't contain any markup nor any HTML entities,\n // insert it as the only child of the wrapped component.\n if (!reMarkup.test(messageValue)) {\n return cloneElement(elem, localizedProps, messageValue);\n }\n\n // If the message contains markup, parse it and try to match the children\n // found in the translation with the props passed to this Localized.\n const translationNodes = Array.from(parseMarkup(messageValue).childNodes);\n const translatedChildren = translationNodes.map(childNode => {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n return childNode.textContent;\n }\n\n // If the child is not expected just take its textContent.\n if (!elems.hasOwnProperty(childNode.localName)) {\n return childNode.textContent;\n }\n\n const sourceChild = elems[childNode.localName];\n\n // If the element passed as a prop to <Localized> is a known void element,\n // explicitly dismiss any textContent which might have accidentally been\n // defined in the translation to prevent the \"void element tags must not\n // have children\" error.\n if (sourceChild.type in VOID_ELEMENTS) {\n return sourceChild;\n }\n\n // TODO Protect contents of elements wrapped in <Localized>\n // https://github.com/projectfluent/fluent.js/issues/184\n // TODO Control localizable attributes on elements passed as props\n // https://github.com/projectfluent/fluent.js/issues/185\n return cloneElement(sourceChild, null, childNode.textContent);\n });\n\n return cloneElement(elem, localizedProps, ...translatedChildren);\n }\n}\n\nLocalized.contextTypes = {\n l10n: isReactLocalization\n};\n\nLocalized.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/localized.js","/*\n * @module fluent-react\n * @overview\n *\n\n * `fluent-react` provides React bindings for Fluent. It takes advantage of\n * React's Components system and the virtual DOM. Translations are exposed to\n * components via the provider pattern.\n *\n * <LocalizationProvider messages={…}>\n * <Localized id=\"hello-world\">\n * <p>{'Hello, world!'}</p>\n * </Localized>\n * </LocalizationProvider>\n *\n * Consult the documentation of the `LocalizationProvider` and the `Localized`\n * components for more information.\n */\n\nexport { default as LocalizationProvider } from \"./provider\";\nexport { default as withLocalization } from \"./with_localization\";\nexport { default as Localized } from \"./localized\";\nexport { default as ReactLocalization, isReactLocalization }\n from \"./localization\";\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/index.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 26\n// module chunks = 0","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionOrAddListener() {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.sendOnMount) {\n this.sendImpressionOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n this.sendImpressionOrAddListener();\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nImpressionsWrapper.defaultProps = {\n document: global.document,\n sendOnMount: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n componentWillMount() {\n this.setState({active: true});\n document.body.classList.add(\"modal-open\");\n }\n\n componentWillUnmount() {\n document.body.classList.remove(\"modal-open\");\n this.setState({active: false});\n }\n\n render() {\n const {active} = this.state;\n const {title, button_label} = this.props;\n return (\n <div>\n <div className={`modalOverlayOuter ${active ? \"active\" : \"\"}`} />\n <div className={`modalOverlayInner ${active ? \"active\" : \"\"}`}>\n <h2> {title} </h2>\n {this.props.children}\n <div className=\"footer\">\n <button onClick={this.props.onDoneButton} className=\"button primary modalButton\"> {button_label} </button>\n </div>\n </div>\n </div>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n }\n\n onClick() {\n const {props} = this;\n props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", message_id: props.id, id: props.UISurface});\n props.onAction(props.content);\n }\n\n render() {\n const {content} = this.props;\n return (\n <div className=\"onboardingMessage\">\n <div className={`onboardingMessageImage ${content.icon}`} />\n <div className=\"onboardingContent\">\n <span>\n <h3> {content.title} </h3>\n <p> {content.text} </p>\n </span>\n <span>\n <button className=\"button onboardingButton\" onClick={this.onClick}> {content.button_label} </button>\n </span>\n </div>\n </div>\n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n return (\n <ModalOverlay {...props} button_label={\"Start Browsing\"} title={\"Welcome to Firefox\"}>\n <div className=\"onboardingMessageContainer\">\n {props.bundle.map(message => (\n <OnboardingCard key={message.id}\n sendUserActionTelemetry={props.sendUserActionTelemetry}\n onAction={props.onAction}\n UISurface={props.UISurface}\n {...message} />\n ))}\n </div>\n </ModalOverlay>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","import React from \"react\";\nimport {safeURI} from \"../../template-utils\";\n\nconst ALLOWED_STYLE_TAGS = [\"color\", \"backgroundColor\"];\n\nexport const Button = props => {\n const style = {};\n\n // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}\n for (const tag of ALLOWED_STYLE_TAGS) {\n if (typeof props[tag] !== \"undefined\") {\n style[tag] = props[tag];\n }\n }\n // remove border if bg is set to something custom\n if (style.backgroundColor) {\n style.border = \"0\";\n }\n\n return (<a href={safeURI(props.url)}\n onClick={props.onClick}\n className={props.className || \"ASRouterButton\"}\n style={style}>\n {props.children}\n </a>);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBlockClicked = this.onBlockClicked.bind(this);\n }\n\n onBlockClicked() {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n this.props.onBlock();\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (<div className={containerClassName}>\n <div className=\"innerWrapper\">\n {props.children}\n </div>\n <button className=\"blockButton\" onClick={this.onBlockClicked} />\n </div>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onButtonClick = this.onButtonClick.bind(this);\n }\n\n onButtonClick() {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? <h3 className=\"title\">{title}</h3> : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? <span className=\"titleIcon\" style={{backgroundImage: `url(\"${titleIcon}\")`}} /> : null;\n }\n\n renderButton(className) {\n const {props} = this;\n return (<Button\n className={className}\n onClick={this.onButtonClick}\n url={props.content.button_url}\n color={props.content.button_color}\n backgroundColor={props.content.button_background_color}>\n {props.content.button_label}\n </Button>);\n }\n\n render() {\n const {props} = this;\n const hasLink = props.content.button_url && props.content.button_type === \"anchor\";\n const hasButton = props.content.button_url && !props.content.button_type;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (<SnippetBase {...props} className={className}>\n <img src={safeURI(props.content.icon) || DEFAULT_ICON_PATH} className=\"icon\" />\n <div>\n {this.renderTitleIcon()} {this.renderTitle()} <p className=\"body\">{props.richText || props.content.text}</p> {hasLink ? this.renderButton(\"ASRouterAnchor\") : null}\n </div>\n {hasButton ? <div>{this.renderButton()}</div> : null}\n </SnippetBase>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n <div className=\"prefs-button\">\n <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {App, locale, Theme} = this.props;\n if (Theme.className) {\n this.updateTheme(Theme);\n }\n this.sendNewTabRehydrated(App);\n addLocaleDataForReactIntl(locale);\n }\n\n componentDidMount() {\n // Request state AFTER the first render to ensure we don't cause the\n // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n // dispatched right after the store is ready.\n if (this.props.isPrerendered) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n }\n }\n\n componentWillUnmount() {\n this.updateTheme({className: \"\"});\n }\n\n componentWillUpdate({App, Theme}) {\n this.updateTheme(Theme);\n this.sendNewTabRehydrated(App);\n }\n\n updateTheme(Theme) {\n const bodyClassName = [\n \"activity-stream\",\n Theme.className,\n this.props.isFirstrun ? \"welcome\" : \"\"\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\n }\n\n // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n // data has been consumed e.g. for counting the number of tabs that\n // have rendered that data.\n sendNewTabRehydrated(App) {\n if (App && App.initialized && !this.renderNotified) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n this.renderNotified = true;\n }\n }\n\n render() {\n const {props} = this;\n const {App, locale, strings} = props;\n const {initialized} = App;\n\n if (props.Prefs.values.asrouterExperimentEnabled && window.location.hash === \"#asrouter\") {\n return (<ASRouterAdmin />);\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (<IntlProvider locale={locale} messages={strings}>\n <ErrorBoundary className=\"base-content-fallback\">\n <BaseContent {...this.props} />\n </ErrorBoundary>\n </IntlProvider>);\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n }\n\n openPreferences() {\n this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n }\n\n render() {\n const {props} = this;\n const {App} = props;\n const {initialized} = App;\n const prefs = props.Prefs.values;\n\n const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\"\n ].filter(v => v).join(\" \");\n\n return (\n <div>\n <div className={outerClassName}>\n <main>\n {prefs.showSearch &&\n <div className=\"non-collapsible-section\">\n <ErrorBoundary>\n <Search />\n </ErrorBoundary>\n </div>\n }\n <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n {!prefs.migrationExpired &&\n <div className=\"non-collapsible-section\">\n <ManualMigration />\n </div>\n }\n <Sections />\n <PrefsButton onClick={this.openPreferences} />\n </div>\n <ConfirmDialog />\n </main>\n </div>\n {this.props.isFirstrun && <StartupOverlay />}\n </div>);\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessage = this.onMessage.bind(this);\n this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n this.state = {};\n }\n\n onMessage({data: action}) {\n if (action.type === \"ADMIN_SET_STATE\") {\n this.setState(action.data);\n }\n }\n\n componentWillMount() {\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n ASRouterUtils.addListener(this.onMessage);\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessage);\n }\n\n findOtherBundledMessagesOfSameTemplate(template) {\n return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n }\n\n handleBlock(msg) {\n if (msg.bundled) {\n // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.blockBundle(bundle);\n }\n return () => ASRouterUtils.blockById(msg.id);\n }\n\n handleUnblock(msg) {\n if (msg.bundled) {\n // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.unblockBundle(bundle);\n }\n return () => ASRouterUtils.unblockById(msg.id);\n }\n\n handleOverride(id) {\n return () => ASRouterUtils.overrideMessage(id);\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.blockList.includes(msg.id);\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (<tr className={itemClassName} key={msg.id}>\n <td className=\"message-id\"><span>{msg.id}</span></td>\n <td>\n <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg) : this.handleBlock(msg)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n {isBlocked ? null : <button className=\"button\" onClick={this.handleOverride(msg.id)}>Show</button>}\n </td>\n <td className=\"message-summary\">\n <pre>{JSON.stringify(msg, null, 2)}</pre>\n </td>\n </tr>);\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (<table><tbody>\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n </tbody></table>);\n }\n\n renderProviders() {\n return (<table><tbody>\n {this.state.providers.map((provider, i) => (<tr className=\"message-item\" key={i}>\n <td>{provider.id}</td>\n <td>{provider.type === \"remote\" ? <a target=\"_blank\" href={provider.url}>{provider.url}</a> : \"(local)\"}</td>\n </tr>))}\n </tbody></table>);\n }\n\n render() {\n return (<div className=\"asrouter-admin outer-wrapper\">\n <h1>AS Router Admin</h1>\n <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n <h2>Message Providers</h2>\n {this.state.providers ? this.renderProviders() : null}\n <h2>Messages</h2>\n {this.renderMessages()}\n </div>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n * // Any sort of data needed to be passed around by actions.\n * payload: site.url,\n * // Primary button AlsoToMain action.\n * action: \"DELETE_HISTORY_URL\",\n * // Primary button USerEvent action.\n * userEvent: \"DELETE\",\n * // Array of locale ids to display.\n * message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n * // Text for primary button.\n * confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n constructor(props) {\n super(props);\n this._handleCancelBtn = this._handleCancelBtn.bind(this);\n this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n }\n\n _handleCancelBtn() {\n this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n }\n\n _handleConfirmBtn() {\n this.props.data.onConfirm.forEach(this.props.dispatch);\n }\n\n _renderModalMessage() {\n const message_body = this.props.data.body_string_id;\n\n if (!message_body) {\n return null;\n }\n\n return (<span>\n {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n </span>);\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (<div className=\"confirmation-dialog\">\n <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n <div className=\"modal\">\n <section className=\"modal-message\">\n {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n {this._renderModalMessage()}\n </section>\n <section className=\"actions\">\n <button onClick={this._handleCancelBtn}>\n <FormattedMessage id={this.props.data.cancel_button_string_id} />\n </button>\n <button className=\"done\" onClick={this._handleConfirmBtn}>\n <FormattedMessage id={this.props.data.confirm_button_string_id} />\n </button>\n </section>\n </div>\n </div>);\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1. User clicks \"No Thanks\"\n * 2. User completed the data import\n * 3. After 3 active days\n * 4. User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onLaunchTour = this.onLaunchTour.bind(this);\n this.onCancelTour = this.onCancelTour.bind(this);\n }\n\n onLaunchTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n }\n\n onCancelTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n }\n\n render() {\n return (<div className=\"manual-migration-container\">\n <p>\n <span className=\"icon icon-import\" />\n <FormattedMessage id=\"manual_migration_explanation2\" />\n </p>\n <div className=\"manual-migration-actions actions\">\n <button className=\"dismiss\" onClick={this.onCancelTour}>\n <FormattedMessage id=\"manual_migration_cancel_button\" />\n </button>\n <button onClick={this.onLaunchTour}>\n <FormattedMessage id=\"manual_migration_import_button\" />\n </button>\n </div>\n </div>);\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n constructor(options) {\n this.initialPrefs = options.initialPrefs;\n this.initialSections = options.initialSections;\n this._setValidation(options.validation);\n }\n\n get validation() {\n return this._validation;\n }\n\n set validation(value) {\n this._setValidation(value);\n }\n\n get invalidatingPrefs() {\n return this._invalidatingPrefs;\n }\n\n // This is needed so we can use it in the constructor\n _setValidation(value = []) {\n this._validation = value;\n this._invalidatingPrefs = value.reduce((result, next) => {\n if (typeof next === \"string\") {\n result.push(next);\n return result;\n } else if (next && next.oneOf) {\n return result.concat(next.oneOf);\n } else if (next && next.indexedDB) {\n return result.concat(next.indexedDB);\n }\n throw new Error(\"Your validation configuration is not properly configured\");\n }, []);\n }\n\n arePrefsValid(getPref, indexedDBPrefs) {\n for (const prefs of this.validation) {\n // {oneOf: [\"foo\", \"bar\"]}\n if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n return false;\n\n // {indexedDB: [\"foo\", \"bar\"]}\n } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n if (anyModifiedPrefs) {\n return false;\n }\n // \"foo\"\n } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n return false;\n }\n }\n return true;\n }\n}\n\nthis.PrerenderData = new _PrerenderData({\n initialPrefs: {\n \"migrationExpired\": true,\n \"feeds.topsites\": true,\n \"showSearch\": true,\n \"topSitesRows\": 1,\n \"feeds.section.topstories\": true,\n \"feeds.section.highlights\": true,\n \"sectionOrder\": \"topsites,topstories,highlights\",\n \"collapsed\": false\n },\n // Prefs listed as invalidating will prevent the prerendered version\n // of AS from being used if their value is something other than what is listed\n // here. This is required because some preferences cause the page layout to be\n // too different for the prerendered version to be used. Unfortunately, this\n // will result in users who have modified some of their preferences not being\n // able to get the benefits of prerendering.\n validation: [\n \"feeds.topsites\",\n \"showSearch\",\n \"topSitesRows\",\n \"sectionOrder\",\n // This means if either of these are set to their default values,\n // prerendering can be used.\n {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n // If any component has the following preference set to `true` it will\n // invalidate the prerendered version.\n {indexedDB: [\"collapsed\"]}\n ],\n initialSections: [\n {\n enabled: true,\n icon: \"pocket\",\n id: \"topstories\",\n order: 1,\n title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n },\n {\n enabled: true,\n id: \"highlights\",\n icon: \"highlights\",\n order: 2,\n title: {id: \"header_highlights\"}\n }\n ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onInputMount = this.onInputMount.bind(this);\n }\n\n handleEvent(event) {\n // Also track search events with our own telemetry\n if (event.detail.type === \"Search\") {\n this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n }\n }\n\n onClick(event) {\n window.gContentSearchController.search(event);\n }\n\n componentWillUnmount() {\n delete window.gContentSearchController;\n }\n\n onInputMount(input) {\n if (input) {\n // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n // can add the appropriate telemetry probes for search. Without the correct\n // name, certain tests like browser_UsageTelemetry_content.js will fail\n // (See github ticket #2348 for more details)\n const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n // the search data and acts as context for the search request (See\n // nsISearchEngine.getSubmission). It is necessary so that search engine\n // plugins can correctly atribute referrals. (See github ticket #3321 for\n // more details)\n const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n // gContentSearchController needs to exist as a global so that tests for\n // the existing about:home can find it; and so it allows these tests to pass.\n // In the future, when activity stream is default about:home, this can be renamed\n window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n healthReportKey, searchSource);\n addEventListener(\"ContentSearchClient\", this);\n } else {\n window.gContentSearchController = null;\n removeEventListener(\"ContentSearchClient\", this);\n }\n }\n\n /*\n * Do not change the ID on the input field, as legacy newtab code\n * specifically looks for the id 'newtab-search-text' on input fields\n * in order to execute searches in various tests\n */\n render() {\n return (<div className=\"search-wrapper\">\n <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n </label>\n <input\n id=\"newtab-search-text\"\n maxLength=\"256\"\n placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n ref={this.onInputMount}\n title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n type=\"search\" />\n <button\n id=\"searchSubmit\"\n className=\"search-button\"\n onClick={this.onClick}\n title={this.props.intl.formatMessage({id: \"search_button\"})}>\n <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n </button>\n </div>);\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n get numRows() {\n const {rowsPref, maxRows, Prefs} = this.props;\n return rowsPref ? Prefs.values[rowsPref] : maxRows;\n }\n\n _dispatchImpressionStats() {\n const {props} = this;\n let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n // If the section has compact cards and the viewport is wide enough, we show\n // 4 columns instead of 3.\n // $break-point-widest = 1072px (from _variables.scss)\n cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n }\n const maxCards = cardsPerRow * this.numRows;\n const cards = props.rows.slice(0, maxCards);\n\n if (this.needsImpressionStats(cards)) {\n props.dispatch(ac.ImpressionStats({\n source: props.eventSource,\n tiles: cards.map(link => ({id: link.guid}))\n }));\n this.impressionCardGuids = cards.map(link => link.guid);\n }\n }\n\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionStatsOrAddListener() {\n const {props} = this;\n\n if (!props.shouldSendImpressionStats || !props.dispatch) {\n return;\n }\n\n if (props.document.visibilityState === VISIBLE) {\n this._dispatchImpressionStats();\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (props.document.visibilityState === VISIBLE) {\n if (!this.props.pref.collapsed) {\n this._dispatchImpressionStats();\n }\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.rows.length && !this.props.pref.collapsed) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {props} = this;\n const isCollapsed = props.pref.collapsed;\n const wasCollapsed = prevProps.pref.collapsed;\n if (\n // Don't send impression stats for the empty state\n props.rows.length &&\n (\n // We only want to send impression stats if the content of the cards has changed\n // and the section is not collapsed...\n (props.rows !== prevProps.rows && !isCollapsed) ||\n // or if we are expanding a section that was collapsed.\n (wasCollapsed && !isCollapsed)\n )\n ) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n needsImpressionStats(cards) {\n if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n return true;\n }\n\n for (let i = 0; i < cards.length; i++) {\n if (cards[i].guid !== this.impressionCardGuids[i]) {\n return true;\n }\n }\n\n return false;\n }\n\n render() {\n const {\n id, eventSource, title, icon, rows,\n emptyState, dispatch, compactCards,\n contextMenuOptions, initialized, disclaimer,\n pref, privacyNoticeURL, isFirst, isLast\n } = this.props;\n\n const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n const {numRows} = this;\n const maxCards = maxCardsPerRow * numRows;\n const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;\n\n // Show topics only for top stories and if it's not initialized yet (so\n // content doesn't shift when it is loaded) or has loaded with topics\n const shouldShowTopics = (id === \"topstories\" &&\n (!this.props.topics || this.props.topics.length > 0));\n\n const realRows = rows.slice(0, maxCards);\n\n // The empty state should only be shown after we have initialized and there is no content.\n // Otherwise, we should show placeholders.\n const shouldShowEmptyState = initialized && !rows.length;\n\n const cards = [];\n if (!shouldShowEmptyState) {\n for (let i = 0; i < maxCards; i++) {\n const link = realRows[i];\n // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n cards.push(link ? (\n <Card key={i}\n index={i}\n className={className}\n dispatch={dispatch}\n link={link}\n contextMenuOptions={contextMenuOptions}\n eventSource={eventSource}\n shouldSendImpressionStats={this.props.shouldSendImpressionStats}\n isWebExtension={this.props.isWebExtension} />\n ) : (\n <PlaceholderCard key={i} className={className} />\n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\"\n ].join(\" \");\n\n // <Section> <-- React component\n // <section> <-- HTML5 element\n return (<ComponentPerfTimer {...this.props}>\n <CollapsibleSection className={sectionClassName} icon={icon}\n title={title}\n id={id}\n eventSource={eventSource}\n disclaimer={disclaimer}\n collapsed={this.props.pref.collapsed}\n showPrefName={(pref && pref.feed) || id}\n privacyNoticeURL={privacyNoticeURL}\n Prefs={this.props.Prefs}\n isFirst={isFirst}\n isLast={isLast}\n dispatch={this.props.dispatch}\n isWebExtension={this.props.isWebExtension}>\n\n {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n {cards}\n </ul>)}\n {shouldShowEmptyState &&\n <div className=\"section-empty-state\">\n <div className=\"empty-state\">\n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n <p className=\"empty-state-message\">\n {getFormattedMessage(emptyState.message)}\n </p>\n </div>\n </div>}\n {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n </CollapsibleSection>\n </ComponentPerfTimer>);\n }\n}\n\nSection.defaultProps = {\n document: global.document,\n rows: [],\n emptyState: {},\n pref: {},\n title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n renderSections() {\n const sections = [];\n const enabledSections = this.props.Sections.filter(section => section.enabled);\n const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n // Enabled sections doesn't include Top Sites, so we add it if enabled.\n const expectedCount = enabledSections.length + ~~showTopSites;\n\n for (const sectionId of sectionOrder.split(\",\")) {\n const commonProps = {\n key: sectionId,\n isFirst: sections.length === 0,\n isLast: sections.length === expectedCount - 1\n };\n if (sectionId === \"topsites\" && showTopSites) {\n sections.push(<TopSites {...commonProps} />);\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push(<SectionIntl {...section} {...commonProps} />);\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n <div className=\"sections-list\">\n {this.renderSections()}\n </div>\n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n history: {\n intlID: \"type_label_visited\",\n icon: \"history-item\"\n },\n bookmark: {\n intlID: \"type_label_bookmarked\",\n icon: \"bookmark-added\"\n },\n trending: {\n intlID: \"type_label_recommended\",\n icon: \"trending\"\n },\n now: {\n intlID: \"type_label_now\",\n icon: \"now\"\n },\n pocket: {\n intlID: \"type_label_pocket\",\n icon: \"pocket\"\n },\n download: {\n intlID: \"type_label_downloaded\",\n icon: \"download\"\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n activeCard: null,\n imageLoaded: false,\n showContextMenu: false,\n cardImage: null\n };\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.onLinkClick = this.onLinkClick.bind(this);\n }\n\n /**\n * Helper to conditionally load an image and update state when it loads.\n */\n async maybeLoadImage() {\n // No need to load if it's already loaded or no image\n const {cardImage} = this.state;\n if (!cardImage) {\n return;\n }\n\n const imageUrl = cardImage.url;\n if (!this.state.imageLoaded) {\n // Initialize a promise to share a load across multiple card updates\n if (!gImageLoading.has(imageUrl)) {\n const loaderPromise = new Promise((resolve, reject) => {\n const loader = new Image();\n loader.addEventListener(\"load\", resolve);\n loader.addEventListener(\"error\", reject);\n loader.src = imageUrl;\n });\n\n // Save and remove the promise only while it's pending\n gImageLoading.set(imageUrl, loaderPromise);\n loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(imageUrl)).catch();\n }\n\n // Wait for the image whether just started loading or reused promise\n await gImageLoading.get(imageUrl);\n\n // Only update state if we're still waiting to load the original image\n if (ScreenshotUtils.isRemoteImageLocal(this.state.cardImage, this.props.link.image) &&\n !this.state.imageLoaded) {\n this.setState({imageLoaded: true});\n }\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {image} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.cardImage, image);\n let nextState = null;\n\n // Image is updating.\n if (!imageInState && nextProps.link) {\n nextState = {imageLoaded: false};\n }\n\n if (imageInState) {\n return nextState;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.cardImage);\n\n nextState = nextState || {};\n nextState.cardImage = ScreenshotUtils.createLocalImageObject(image);\n\n return nextState;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({\n activeCard: this.props.index,\n showContextMenu: true\n });\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n // Filter out \"history\" type for being the default\n if (this.props.link.type !== \"history\") {\n return {value: {card_type: this.props.link.type}};\n }\n\n return null;\n }\n\n onLinkClick(event) {\n event.preventDefault();\n if (this.props.link.type === \"download\") {\n this.props.dispatch(ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: this.props.link\n }));\n } else {\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n }));\n }\n if (this.props.isWebExtension) {\n this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n source: this.props.eventSource,\n url: this.props.link.url,\n action_position: this.props.index\n }));\n } else {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event: \"CLICK\",\n source: this.props.eventSource,\n action_position: this.props.index\n }, this._getTelemetryInfo())));\n\n if (this.props.shouldSendImpressionStats) {\n this.props.dispatch(ac.ImpressionStats({\n source: this.props.eventSource,\n click: 0,\n tiles: [{id: this.props.link.guid, pos: this.props.index}]\n }));\n }\n }\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n componentDidMount() {\n this.maybeLoadImage();\n }\n\n componentDidUpdate() {\n this.maybeLoadImage();\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = _Card.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = _Card.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.cardImage);\n }\n\n render() {\n const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n const {props} = this;\n const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n // Display \"now\" as \"trending\" until we have new strings #3402\n const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n const hasImage = this.state.cardImage || link.hasImage;\n const imageStyle = {backgroundImage: this.state.cardImage ? `url(${this.state.cardImage.url})` : \"none\"};\n const outerClassName = [\n \"card-outer\",\n className,\n isContextMenuOpen && \"active\",\n props.placeholder && \"placeholder\"\n ].filter(v => v).join(\" \");\n\n return (<li className={outerClassName}>\n <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n <div className=\"card\">\n <div className=\"card-preview-image-outer\">\n {hasImage &&\n <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n }\n </div>\n <div className=\"card-details\">\n {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n {link.hostname &&\n <div className=\"card-host-name\">\n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n </div>\n }\n <div className={[\n \"card-text\",\n icon ? \"\" : \"no-context\",\n link.description ? \"\" : \"no-description\",\n link.hostname ? \"\" : \"no-host-name\"\n ].join(\" \")}>\n <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n </div>\n <div className=\"card-context\">\n {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n {link.context && <div className=\"card-context-label\">{link.context}</div>}\n </div>\n </div>\n </div>\n </a>\n {!props.placeholder && <button className=\"context-menu-button icon\"\n onClick={this.onMenuButtonClick}>\n <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n </button>}\n {isContextMenuOpen &&\n <LinkMenu\n dispatch={dispatch}\n index={index}\n source={eventSource}\n onUpdate={this.onMenuUpdate}\n options={link.contextMenuOptions || contextMenuOptions}\n site={link}\n siteInfo={this._getTelemetryInfo()}\n shouldSendImpressionStats={shouldSendImpressionStats} />\n }\n </li>);\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => <Card placeholder={true} className={props.className} />;\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n\n const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n // Prepend custom options and a separator\n if (props.extraOptions) {\n propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n }\n // Insert privacy notice before the last option (\"ManageSection\")\n if (props.privacyNoticeURL) {\n propOptions.splice(-1, 0, \"PrivacyNotice\");\n }\n\n const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n const {action, id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n props.dispatch(ac.UserEvent({\n event: userEvent,\n source: props.source\n }));\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return (<ContextMenu\n onUpdate={this.props.onUpdate}\n options={this.getOptions()} />);\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n render() {\n const {url, name} = this.props;\n return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics, read_more_endpoint} = this.props;\n return (\n <div className=\"topic\">\n <span><FormattedMessage id=\"pocket_read_more\" /></span>\n <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n <FormattedMessage id=\"pocket_read_even_more\" />\n </a>}\n </div>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n if (link.customScreenshotURL) {\n return \"custom_screenshot\";\n }\n if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n return \"tippytop\";\n }\n if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n return \"rich_icon\";\n }\n if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n return \"screenshot_with_icon\";\n }\n if (link.screenshot) {\n return \"screenshot\";\n }\n return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n const countTopSitesTypes = (acc, link) => {\n acc[topSiteIconType(link)]++;\n return acc;\n };\n\n return topSites.reduce(countTopSitesTypes, {\n \"custom_screenshot\": 0,\n \"screenshot_with_icon\": 0,\n \"screenshot\": 0,\n \"tippytop\": 0,\n \"rich_icon\": 0,\n \"no_image\": 0\n });\n}\n\nexport class _TopSites extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onFormClose = this.onFormClose.bind(this);\n }\n\n /**\n * Dispatch session statistics about the quality of TopSites icons and pinned count.\n */\n _dispatchTopSitesStats() {\n const topSites = this._getVisibleTopSites();\n const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n // Dispatch telemetry event with the count of TopSites images types.\n this.props.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n }));\n }\n\n /**\n * Return the TopSites that are visible based on prefs and window width.\n */\n _getVisibleTopSites() {\n // We hide 2 sites per row when not in the wide layout.\n let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n // $break-point-widest = 1072px (from _variables.scss)\n if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n sitesPerRow -= 2;\n }\n return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n }\n\n componentDidUpdate() {\n this._dispatchTopSitesStats();\n }\n\n componentDidMount() {\n this._dispatchTopSitesStats();\n }\n\n onFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT_CLOSE\"\n }));\n this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n }\n\n render() {\n const {props} = this;\n const {editForm} = props.TopSites;\n\n return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n <CollapsibleSection\n className=\"top-sites\"\n icon=\"topsites\"\n id=\"topsites\"\n title={{id: \"header_top_sites\"}}\n extraMenuOptions={[\"AddTopSite\"]}\n showPrefName=\"feeds.topsites\"\n eventSource={TOP_SITES_SOURCE}\n collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n isFirst={props.isFirst}\n isLast={props.isLast}\n dispatch={props.dispatch}>\n <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n <div className=\"edit-topsites-wrapper\">\n {editForm &&\n <div className=\"edit-topsites\">\n <div className=\"modal-overlay\" onClick={this.onFormClose} />\n <div className=\"modal\">\n <TopSiteForm\n site={props.TopSites.rows[editForm.index]}\n onClose={this.onFormClose}\n dispatch={this.props.dispatch}\n intl={this.props.intl}\n {...editForm} />\n </div>\n </div>\n }\n </div>\n </CollapsibleSection>\n </ComponentPerfTimer>);\n }\n}\n\nexport const TopSites = connect(state => ({\n TopSites: state.TopSites,\n Prefs: state.Prefs,\n TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {validationError: this.props.validationError};\n this.onChange = this.onChange.bind(this);\n this.onMount = this.onMount.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.shouldFocus && !this.props.shouldFocus) {\n this.input.focus();\n }\n if (nextProps.validationError && !this.props.validationError) {\n this.setState({validationError: true});\n }\n // If the component is in an error state but the value was cleared by the parent\n if (this.state.validationError && !nextProps.value) {\n this.setState({validationError: false});\n }\n }\n\n onChange(ev) {\n if (this.state.validationError) {\n this.setState({validationError: false});\n }\n this.props.onChange(ev);\n }\n\n onMount(input) {\n this.input = input;\n }\n\n render() {\n const showClearButton = this.props.value && this.props.onClear;\n const {typeUrl} = this.props;\n const {validationError} = this.state;\n\n return (<label><FormattedMessage id={this.props.titleId} />\n <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n {this.props.loading ?\n <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n <input type=\"text\"\n value={this.props.value}\n ref={this.onMount}\n onChange={this.onChange}\n placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n autoFocus={this.props.shouldFocus}\n disabled={this.props.loading} />\n {validationError &&\n <aside className=\"error-tooltip\">\n <FormattedMessage id={this.props.errorMessageId} />\n </aside>}\n </div>\n </label>);\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n constructor(props) {\n super(props);\n const {site} = props;\n this.state = {\n label: site ? (site.label || site.hostname) : \"\",\n url: site ? site.url : \"\",\n validationError: false,\n customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n showCustomScreenshotForm: site ? site.customScreenshotURL : false\n };\n this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n this.onLabelChange = this.onLabelChange.bind(this);\n this.onUrlChange = this.onUrlChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onClearUrlClick = this.onClearUrlClick.bind(this);\n this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n this.validateUrl = this.validateUrl.bind(this);\n }\n\n onLabelChange(event) {\n this.setState({\"label\": event.target.value});\n }\n\n onUrlChange(event) {\n this.setState({\n url: event.target.value,\n validationError: false\n });\n }\n\n onClearUrlClick() {\n this.setState({\n url: \"\",\n validationError: false\n });\n }\n\n onEnableScreenshotUrlForm() {\n this.setState({showCustomScreenshotForm: true});\n }\n\n _updateCustomScreenshotInput(customScreenshotUrl) {\n this.setState({\n customScreenshotUrl,\n validationError: false\n });\n this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n }\n\n onCustomScreenshotUrlChange(event) {\n this._updateCustomScreenshotInput(event.target.value);\n }\n\n onClearScreenshotInput() {\n this._updateCustomScreenshotInput(\"\");\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onDoneButtonClick(ev) {\n ev.preventDefault();\n\n if (this.validateForm()) {\n const site = {url: this.cleanUrl(this.state.url)};\n const {index} = this.props;\n if (this.state.label !== \"\") {\n site.label = this.state.label;\n }\n\n if (this.state.customScreenshotUrl) {\n site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n } else if (this.props.site && this.props.site.customScreenshotURL) {\n // Used to flag that previously cached screenshot should be removed\n site.customScreenshotURL = null;\n }\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site, index}\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT\",\n action_position: index\n }));\n\n this.props.onClose();\n }\n }\n\n onPreviewButtonClick(event) {\n event.preventDefault();\n if (this.validateForm()) {\n this.props.dispatch(ac.AlsoToMain({\n type: at.PREVIEW_REQUEST,\n data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"PREVIEW_REQUEST\"\n }));\n }\n }\n\n cleanUrl(url) {\n // If we are missing a protocol, prepend http://\n if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n return `http://${url}`;\n }\n return url;\n }\n\n _tryParseUrl(url) {\n try {\n return new URL(url);\n } catch (e) {\n return null;\n }\n }\n\n validateUrl(url) {\n const validProtocols = [\"http:\", \"https:\"];\n const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n return urlObj && validProtocols.includes(urlObj.protocol);\n }\n\n validateCustomScreenshotUrl() {\n const {customScreenshotUrl} = this.state;\n return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n }\n\n validateForm() {\n const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n if (!validate) {\n this.setState({validationError: true});\n }\n\n return validate;\n }\n\n _renderCustomScreenshotInput() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n // Set focus on error if the url field is valid or when the input is first rendered and is empty\n const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n const isLoading = this.props.previewResponse === null &&\n customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n if (!this.state.showCustomScreenshotForm) {\n return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n <FormattedMessage id=\"topsites_form_use_image_link\" />\n </a>);\n }\n return (<div className=\"custom-image-input-container\">\n <TopSiteFormInput\n errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n loading={isLoading}\n onChange={this.onCustomScreenshotUrlChange}\n onClear={this.onClearScreenshotInput}\n shouldFocus={shouldFocus}\n typeUrl={true}\n value={customScreenshotUrl}\n validationError={validationError}\n titleId=\"topsites_form_image_url_label\"\n placeholderId=\"topsites_form_url_placeholder\"\n intl={this.props.intl} />\n </div>);\n }\n\n render() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n // For UI purposes, editing without an existing link is \"add\"\n const showAsAdd = !this.props.site;\n const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n // or the request failed\n const previewMode = changed && !this.props.previewResponse;\n const previewLink = Object.assign({}, this.props.site);\n if (this.props.previewResponse) {\n previewLink.screenshot = this.props.previewResponse;\n previewLink.customScreenshotURL = this.props.previewUrl;\n }\n return (\n <form className=\"topsite-form\">\n <div className=\"form-input-container\">\n <h3 className=\"section-title\">\n <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n </h3>\n <div className=\"fields-and-preview\">\n <div className=\"form-wrapper\">\n <TopSiteFormInput onChange={this.onLabelChange}\n value={this.state.label}\n titleId=\"topsites_form_title_label\"\n placeholderId=\"topsites_form_title_placeholder\"\n intl={this.props.intl} />\n <TopSiteFormInput onChange={this.onUrlChange}\n shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n value={this.state.url}\n onClear={this.onClearUrlClick}\n validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n titleId=\"topsites_form_url_label\"\n typeUrl={true}\n placeholderId=\"topsites_form_url_placeholder\"\n errorMessageId=\"topsites_form_url_validation\"\n intl={this.props.intl} />\n {this._renderCustomScreenshotInput()}\n </div>\n <TopSiteLink link={previewLink}\n defaultStyle={requestFailed}\n title={this.state.label} />\n </div>\n </div>\n <section className=\"actions\">\n <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n <FormattedMessage id=\"topsites_form_cancel_button\" />\n </button>\n {previewMode ?\n <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n <FormattedMessage id=\"topsites_form_preview_button\" />\n </button> :\n <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n </button>}\n </section>\n </form>\n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSiteForm.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onInputChange = this.onInputChange.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.clickSkip = this.clickSkip.bind(this);\n this.initScene = this.initScene.bind(this);\n this.removeOverlay = this.removeOverlay.bind(this);\n\n this.state = {emailInput: \"\"};\n this.initScene();\n }\n\n initScene() {\n // Timeout to allow the scene to render once before attaching the attribute\n // to trigger the animation.\n setTimeout(() => {\n this.setState({show: true});\n }, 10);\n }\n\n removeOverlay() {\n window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n }, 400);\n }\n\n onInputChange(e) {\n this.setState({emailInput: e.target.value});\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\"}));\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\"}));\n this.removeOverlay();\n }\n\n render() {\n let termsLink = (<a href=\"https://accounts.firefox.com/legal/terms\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_terms_of_service\" /></a>);\n let privacyLink = (<a href=\"https://accounts.firefox.com/legal/privacy\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_privacy_notice\" /></a>);\n return (\n <div className={`overlay-wrapper ${this.state.show ? \"show \" : \"\"}`}>\n <div className=\"background\" />\n <div className=\"firstrun-scene\">\n <div className=\"fxaccounts-container\">\n <div className=\"firstrun-left-divider\">\n <h1 className=\"firstrun-title\"><FormattedMessage id=\"firstrun_title\" /></h1>\n <p className=\"firstrun-content\"><FormattedMessage id=\"firstrun_content\" /></p>\n <a className=\"firstrun-link\" href=\"https://www.mozilla.org/firefox/features/sync/\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_learn_more_link\" /></a>\n </div>\n <div className=\"firstrun-sign-in\">\n <p className=\"form-header\"><FormattedMessage id=\"firstrun_form_header\" /><span><FormattedMessage id=\"firstrun_form_sub_header\" /></span></p>\n <form method=\"get\" action=\"https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun\" target=\"_blank\" rel=\"noopener noreferrer\" onSubmit={this.onSubmit}>\n <input name=\"service\" type=\"hidden\" value=\"sync\" />\n <input name=\"action\" type=\"hidden\" value=\"email\" />\n <input name=\"context\" type=\"hidden\" value=\"fx_desktop_v3\" />\n <input className=\"email-input\" name=\"email\" type=\"email\" required=\"true\" placeholder={this.props.intl.formatMessage({id: \"firstrun_email_input_placeholder\"})} onChange={this.onInputChange} />\n <div className=\"extra-links\">\n <FormattedMessage\n id=\"firstrun_extra_legal_links\"\n values={{\n terms: termsLink,\n privacy: privacyLink\n }} />\n </div>\n <button className=\"continue-button\" type=\"submit\"><FormattedMessage id=\"firstrun_continue_to_login\" /></button>\n </form>\n <button className=\"skip-button\" disabled={!!this.state.emailInput} onClick={this.clickSkip}><FormattedMessage id=\"firstrun_skip_login\" /></button>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport const StartupOverlay = connect()(injectIntl(_StartupOverlay));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/StartupOverlay/StartupOverlay.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n constructor(store, options = {}) {\n this._store = store;\n // Overrides for testing\n this.document = options.document || global.document;\n this._perfService = options.perfService || perfSvc;\n this._onVisibilityChange = this._onVisibilityChange.bind(this);\n }\n\n /**\n * sendEventOrAddListener - Notify immediately if the page is already visible,\n * or else set up a listener for when visibility changes.\n * This is needed for accurate session tracking for telemetry,\n * because tabs are pre-loaded.\n */\n sendEventOrAddListener() {\n if (this.document.visibilityState === VISIBLE) {\n // If the document is already visible, to the user, send a notification\n // immediately that a session has started.\n this._sendEvent();\n } else {\n // If the document is not visible, listen for when it does become visible.\n this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n /**\n * _sendEvent - Sends a message to the main process to indicate the current\n * tab is now visible to the user, includes the\n * visibility_event_rcvd_ts time in ms from the UNIX epoch.\n */\n _sendEvent() {\n this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n try {\n let visibility_event_rcvd_ts = this._perfService\n .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n this._store.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {visibility_event_rcvd_ts}\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up.\n }\n }\n\n /**\n * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n * and removes the event listener. This should only be called once per tab.\n */\n _onVisibilityChange() {\n if (this.document.visibilityState === VISIBLE) {\n this._sendEvent();\n this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap 0b41a9e27801c496520c","webpack:///external \"React\"","webpack:///./common/Actions.jsm","webpack:///external \"ReactIntl\"","webpack:///(webpack)/buildin/global.js","webpack:///external \"ReactRedux\"","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"PropTypes\"","webpack:///./node_modules/fluent/src/parser.js","webpack:///./node_modules/fluent/src/types.js","webpack:///./node_modules/fluent/src/builtins.js","webpack:///./node_modules/fluent/src/resolver.js","webpack:///./node_modules/fluent/src/context.js","webpack:///./node_modules/fluent/src/cached_iterable.js","webpack:///./node_modules/fluent/src/fallback.js","webpack:///./node_modules/fluent/src/util.js","webpack:///./node_modules/fluent/src/index.js","webpack:///./content-src/lib/init-store.js","webpack:///external \"ReactDOM\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.jsx","webpack:///./content-src/lib/link-menu-options.js","webpack:///./content-src/components/LinkMenu/LinkMenu.jsx","webpack:///./content-src/components/ContextMenu/ContextMenu.jsx","webpack:///./content-src/lib/screenshot-utils.js","webpack:///./content-src/components/CollapsibleSection/CollapsibleSection.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/activity-stream.jsx","webpack:///./content-src/lib/snippets.js","webpack:///./node_modules/fluent-react/src/localization.js","webpack:///./node_modules/fluent-react/src/provider.js","webpack:///./node_modules/fluent-react/src/with_localization.js","webpack:///./node_modules/fluent-react/src/markup.js","webpack:///./node_modules/fluent-react/vendor/omittedCloseTags.js","webpack:///./node_modules/fluent-react/vendor/voidElementTags.js","webpack:///./node_modules/fluent-react/src/localized.js","webpack:///./node_modules/fluent-react/src/index.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/components/Base/Base.jsx","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///./content-src/components/ManualMigration/ManualMigration.jsx","webpack:///./common/PrerenderData.jsm","webpack:///./content-src/components/Search/Search.jsx","webpack:///./content-src/lib/constants.js","webpack:///./content-src/components/Sections/Sections.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js"],"names":["globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","type","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","AlsoToMain","fromTarget","skipLocal","CONTENT_MESSAGE_TYPE","MAIN_MESSAGE_TYPE","OnlyToMain","BroadcastToContent","AlsoToOneContent","target","skipMain","toTarget","OnlyToOneContent","AlsoToPreloaded","PRELOAD_MESSAGE_TYPE","UserEvent","data","TELEMETRY_USER_EVENT","ASRouterUserEvent","AS_ROUTER_TELEMETRY_USER_EVENT","UndesiredEvent","importContext","TELEMETRY_UNDESIRED_EVENT","PerfEvent","TELEMETRY_PERFORMANCE_EVENT","ImpressionStats","TELEMETRY_IMPRESSION_STATS","SetPref","name","value","SET_PREF","WebExtEvent","source","isSendToMain","isBroadcastToContent","isSendToOneContent","isSendToPreloaded","isFromMain","getPortIdOfSender","safeURI","url","protocol","URL","isAllowed","includes","console","warn","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","Dedupe","constructor","createKey","defaultCreateKey","item","group","groups","globalKeys","Set","result","values","valueMap","Map","key","has","set","push","add","map","m","Array","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","site","INITIAL_STATE","App","initialized","version","Snippets","TopSites","rows","editForm","Prefs","Theme","className","Dialog","visible","Sections","prevState","at","INIT","Object","assign","insertPinned","links","pinned","pinnedUrls","link","newLinks","filter","isPinned","pinIndex","val","index","length","splice","hasMatch","newRows","TOP_SITES_UPDATED","pref","TOP_SITES_PREFS_UPDATED","TOP_SITES_EDIT","previewResponse","TOP_SITES_CANCEL_EDIT","PREVIEW_RESPONSE","previewUrl","preview","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","row","screenshot","PLACES_BOOKMARK_ADDED","bookmarkGuid","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","DIALOG_OPEN","DIALOG_CANCEL","DELETE_HISTORY_URL","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","section","id","SECTION_REGISTER","title","enabled","SECTION_UPDATE","find","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","reduce","dedupeSectionId","dedupeSection","s","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","open_url","pocket_id","PLACES_LINK_BLOCKED","DELETE_FROM_POCKET","ARCHIVE_FROM_POCKET","SNIPPETS_DATA","SNIPPET_BLOCKED","blockList","concat","SNIPPETS_BLOCKLIST_CLEARED","SNIPPETS_RESET","THEME_UPDATE","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASRouterUtils","addListener","listener","global","addMessageListener","removeListener","removeMessageListener","sendMessage","sendAsyncMessage","blockById","blockBundle","bundle","executeAction","button_action","button_action_params","unblockById","unblockBundle","getNextMessage","overrideMessage","sendTelemetry","ping","payload","ac","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","sendClick","keys","acc","linkTag","metric","RichText","props","text","ASRouterUISurface","React","PureComponent","onMessageFromParent","bind","sendImpression","sendUserActionTelemetry","state","extraProps","message_id","eventType","provider","event","dataset","onBlockById","clearBundle","setState","componentWillMount","componentWillUnmount","renderSnippets","document","renderOnboarding","render","template","defaultProps","ASRouterContent","containerElement","_mount","getElementById","ReactDOM","_unmount","unmountComponentAtNode","init","uninit","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","entries","errors","skipWS","getEntry","e","SyntaxError","skipToNextEntryStart","error","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","getPattern","startsWith","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","toString","start","cc","charCodeAt","slice","getString","substring","eol","indexOf","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","args","getCallArgs","test","fun","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","Date","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","get","_messages","err","ReferenceError","VariantExpression","keyword","Type","isVariantList","node","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","undefined","hasOwnProperty","TypeError","_functions","func","builtins","callee","posargs","keyargs","ptn","dirty","useIsolating","_useIsolating","elem","part","delete","join","resolve","WeakSet","locales","functions","_intls","WeakMap","messages","Symbol","iterator","hasMessage","ctor","cache","JSON","stringify","CachedIterable","iterable","asyncIterator","seen","cur","next","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","strings","code","lines","split","indents","common","Math","min","RegExp","replace","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","messageMiddleware","store","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","NEW_TAB_STATE_REQUEST","_didRequestInitialState","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","initStore","reducers","initialState","createStore","combineReducers","applyMiddleware","msg","dispatch","ex","dump","stack","ErrorBoundaryFallback","windowObj","window","onClick","location","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","children","FallbackComponent","_OpenInPrivateWindow","icon","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","eventSource","BLOCK_URL","impression","block","tiles","guid","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","onConfirm","forceBlock","body_string_id","confirm_button_string_id","cancel_button_string_id","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","ArchiveFromPocket","EditTopSite","CheckBookmark","CheckPinTopSite","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","label","intl","formatMessage","userEventData","shouldSendImpressionStats","first","last","onUpdate","getState","LinkMenu","connect","injectIntl","ContextMenu","hideContext","componentDidMount","setTimeout","addEventListener","removeEventListener","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","VISIBLE","VISIBILITY_CHANGE_EVENT","getFormattedMessage","Disclaimer","onAcknowledge","disclaimerPref","disclaimer","href","button","DisclaimerIntl","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","componentWillUpdate","collapsed","sectionBody","scrollHeight","visibilityState","maxHeight","SectionMenuOptions","CheckCollapsed","currentTarget","renderIcon","backgroundImage","preventDefault","isCollapsible","extraMenuOptions","showPrefName","privacyNoticeURL","isFirst","isLast","isWebExtension","needsDisclaimer","active","CollapsibleSection","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","SETTINGS_OPEN","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","componentDidUpdate","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","now","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","mostRecentEntry","startTime","TopSiteLink","screenshotImage","onDragEvent","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","tippyTopIcon","faviconSize","letterFallback","imageClassName","imageStyle","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","customScreenshotURL","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","altKey","ctrlKey","metaKey","onActivate","isContextMenuOpen","activeIndex","hostname","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","topSites","TopSitesRows","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","shift","topSitesUI","commonProps","maxNarrowVisibleIndex","l","topSiteIconType","slotProps","TopSiteList","gActivityStreamPrerenderedState","sendEventOrAddListener","hydrate","documentElement","lang","gActivityStreamStrings","addSnippetsSubscriber","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","_db","_dispatch","_dbTransaction","db","put","clear","blockSnippetById","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","DISABLE_ONBOARDING","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","TOTAL_BOOKMARKS_REQUEST","onMessage","TOTAL_BOOKMARKS_RESPONSE","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","onerror","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","objectStoreNames","contains","createObjectStore","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","snippetsMap","_refreshSnippets","cachedVersion","appData","lastUpdate","needsUpdate","snippetsURL","response","fetch","status","_noSnippetFallback","_forceOnboardingVisibility","shouldBeVisible","onboardingEl","style","display","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","dispatchEvent","Event","snippets","asrouterContent","initializing","subscribe","isASRouterEnabled","asrouterExperimentEnabled","asrouterOnboardingCohort","disableSnippets","contexts","subs","comp","unsubscribe","setMessages","relocalize","getMessageContext","formatCompound","mcx","fallback","isReactLocalization","propName","prop","l10n","getChildContext","Children","only","LocalizationProvider","childContextTypes","propTypes","PropTypes","element","isRequired","isIterable","componentName","withLocalization","Inner","WithLocalization","forceUpdate","displayName","contextTypes","component","TEMPLATE","parseMarkup","omittedCloseTags","area","base","col","embed","hr","img","input","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","substr","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","ImpressionsWrapper","sendImpressionOrAddListener","_onVisibilityChange","sendOnMount","body","classList","remove","button_label","onDoneButton","UISurface","onAction","ALLOWED_STYLE_TAGS","Button","tag","border","onBlockClicked","onBlock","containerClassName","DEFAULT_ICON_PATH","onButtonClick","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_url","button_color","button_background_color","hasLink","button_type","hasButton","tall","richText","PrefsButton","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","_Base","updateTheme","sendNewTabRehydrated","isPrerendered","bodyClassName","isFirstrun","v","renderNotified","NEW_TAB_REHYDRATED","prefs","hash","BaseContent","openPreferences","shouldBeFixedToTop","PrerenderData","arePrefsValid","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","bundled","handleBlock","handleUnblock","handleOverride","renderMessageItem","isCurrent","lastMessageId","isBlocked","itemClassName","renderMessages","renderProviders","providers","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","_renderModalMessage","message_body","ConfirmDialog","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","order","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","needsImpressionStats","impressionCardGuids","sendImpressionStatsOrAddListener","isCollapsed","wasCollapsed","emptyState","contextMenuOptions","maxCardsPerRow","maxCardsOnNarrow","shouldShowTopics","topics","realRows","shouldShowEmptyState","sectionClassName","feed","padding","read_more_endpoint","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","cardContextTypes","history","intlID","bookmark","trending","download","gImageLoading","activeCard","imageLoaded","cardImage","maybeLoadImage","imageUrl","loaderPromise","loader","Image","src","catch","then","WEBEXT_CLICK","click","_Card","hasImage","placeholder","description","Card","PlaceholderCard","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","SectionMenu","Topic","Topics","t","faviconRef","countTopSitesIconsTypes","countTopSitesTypes","_TopSites","onFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","topsites_icon_stats","topsites_pinned","sitesPerRow","topSitesRows","validationError","onChange","onMount","shouldFocus","focus","ev","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onCancelButtonClick","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","onClose","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","emailInput","show","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts"],"mappings":"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","file":"activity-stream.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0b41a9e27801c496520c","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 0\n// module chunks = 0","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nthis.MAIN_MESSAGE_TYPE = \"ActivityStream:Main\";\nthis.CONTENT_MESSAGE_TYPE = \"ActivityStream:Content\";\nthis.PRELOAD_MESSAGE_TYPE = \"ActivityStream:PreloadedBrowser\";\nthis.UI_CODE = 1;\nthis.BACKGROUND_PROCESS = 2;\n\n/**\n * globalImportContext - Are we in UI code (i.e. react, a dom) or some kind of background process?\n * Use this in action creators if you need different logic\n * for ui/background processes.\n */\nconst globalImportContext = typeof Window === \"undefined\" ? BACKGROUND_PROCESS : UI_CODE;\n// Export for tests\nthis.globalImportContext = globalImportContext;\n\n// Create an object that avoids accidental differing key/value pairs:\n// {\n// INIT: \"INIT\",\n// UNINIT: \"UNINIT\"\n// }\nconst actionTypes = {};\nfor (const type of [\n \"ADDONS_INFO_REQUEST\",\n \"ADDONS_INFO_RESPONSE\",\n \"ARCHIVE_FROM_POCKET\",\n \"AS_ROUTER_TELEMETRY_USER_EVENT\",\n \"BLOCK_URL\",\n \"BOOKMARK_URL\",\n \"COPY_DOWNLOAD_LINK\",\n \"DELETE_BOOKMARK_BY_ID\",\n \"DELETE_FROM_POCKET\",\n \"DELETE_HISTORY_URL\",\n \"DIALOG_CANCEL\",\n \"DIALOG_OPEN\",\n \"DISABLE_ONBOARDING\",\n \"DOWNLOAD_CHANGED\",\n \"INIT\",\n \"MIGRATION_CANCEL\",\n \"MIGRATION_COMPLETED\",\n \"MIGRATION_START\",\n \"NEW_TAB_INIT\",\n \"NEW_TAB_INITIAL_STATE\",\n \"NEW_TAB_LOAD\",\n \"NEW_TAB_REHYDRATED\",\n \"NEW_TAB_STATE_REQUEST\",\n \"NEW_TAB_UNLOAD\",\n \"OPEN_DOWNLOAD_FILE\",\n \"OPEN_LINK\",\n \"OPEN_NEW_WINDOW\",\n \"OPEN_PRIVATE_WINDOW\",\n \"OPEN_WEBEXT_SETTINGS\",\n \"PAGE_PRERENDERED\",\n \"PLACES_BOOKMARK_ADDED\",\n \"PLACES_BOOKMARK_REMOVED\",\n \"PLACES_HISTORY_CLEARED\",\n \"PLACES_LINKS_CHANGED\",\n \"PLACES_LINK_BLOCKED\",\n \"PLACES_LINK_DELETED\",\n \"PLACES_SAVED_TO_POCKET\",\n \"PREFS_INITIAL_VALUES\",\n \"PREF_CHANGED\",\n \"PREVIEW_REQUEST\",\n \"PREVIEW_REQUEST_CANCEL\",\n \"PREVIEW_RESPONSE\",\n \"REMOVE_DOWNLOAD_FILE\",\n \"RICH_ICON_MISSING\",\n \"SAVE_SESSION_PERF_DATA\",\n \"SAVE_TO_POCKET\",\n \"SCREENSHOT_UPDATED\",\n \"SECTION_DEREGISTER\",\n \"SECTION_DISABLE\",\n \"SECTION_ENABLE\",\n \"SECTION_MOVE\",\n \"SECTION_OPTIONS_CHANGED\",\n \"SECTION_REGISTER\",\n \"SECTION_UPDATE\",\n \"SECTION_UPDATE_CARD\",\n \"SETTINGS_CLOSE\",\n \"SETTINGS_OPEN\",\n \"SET_PREF\",\n \"SHOW_DOWNLOAD_FILE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\n \"SKIPPED_SIGNIN\",\n \"SNIPPETS_BLOCKLIST_CLEARED\",\n \"SNIPPETS_BLOCKLIST_UPDATED\",\n \"SNIPPETS_DATA\",\n \"SNIPPETS_RESET\",\n \"SNIPPET_BLOCKED\",\n \"SUBMIT_EMAIL\",\n \"SYSTEM_TICK\",\n \"TELEMETRY_IMPRESSION_STATS\",\n \"TELEMETRY_PERFORMANCE_EVENT\",\n \"TELEMETRY_UNDESIRED_EVENT\",\n \"TELEMETRY_USER_EVENT\",\n \"THEME_UPDATE\",\n \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_PIN\",\n \"TOP_SITES_PREFS_UPDATED\",\n \"TOP_SITES_UNPIN\",\n \"TOP_SITES_UPDATED\",\n \"TOTAL_BOOKMARKS_REQUEST\",\n \"TOTAL_BOOKMARKS_RESPONSE\",\n \"UNINIT\",\n \"UPDATE_SECTION_PREFS\",\n \"WEBEXT_CLICK\",\n \"WEBEXT_DISMISS\"\n]) {\n actionTypes[type] = type;\n}\n\n// These are acceptable actions for AS Router messages to have. They can show up\n// as call-to-action buttons in snippets, onboarding tour, etc.\nconst ASRouterActions = {};\nfor (const type of [\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\"\n]) {\n ASRouterActions[type] = type;\n}\n\n// Helper function for creating routed actions between content and main\n// Not intended to be used by consumers\nfunction _RouteMessage(action, options) {\n const meta = action.meta ? {...action.meta} : {};\n if (!options || !options.from || !options.to) {\n throw new Error(\"Routed Messages must have options as the second parameter, and must at least include a .from and .to property.\");\n }\n // For each of these fields, if they are passed as an option,\n // add them to the action. If they are not defined, remove them.\n [\"from\", \"to\", \"toTarget\", \"fromTarget\", \"skipMain\", \"skipLocal\"].forEach(o => {\n if (typeof options[o] !== \"undefined\") {\n meta[o] = options[o];\n } else if (meta[o]) {\n delete meta[o];\n }\n });\n return {...action, meta};\n}\n\n/**\n * AlsoToMain - Creates a message that will be dispatched locally and also sent to the Main process.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {bool} skipLocal Used by OnlyToMain to skip the main reducer\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToMain(action, fromTarget, skipLocal) {\n return _RouteMessage(action, {\n from: CONTENT_MESSAGE_TYPE,\n to: MAIN_MESSAGE_TYPE,\n fromTarget,\n skipLocal\n });\n}\n\n/**\n * OnlyToMain - Creates a message that will be sent to the Main process and skip the local reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {object} options\n * @param {string} fromTarget The id of the content port from which the action originated. (optional)\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToMain(action, fromTarget) {\n return AlsoToMain(action, fromTarget, true);\n}\n\n/**\n * BroadcastToContent - Creates a message that will be dispatched to main and sent to ALL content processes.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction BroadcastToContent(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE\n });\n}\n\n/**\n * AlsoToOneContent - Creates a message that will be will be dispatched to the main store\n * and also sent to a particular Content process.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @param {bool} skipMain Used by OnlyToOneContent to skip the main process\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToOneContent(action, target, skipMain) {\n if (!target) {\n throw new Error(\"You must provide a target ID as the second parameter of AlsoToOneContent. If you want to send to all content processes, use BroadcastToContent\");\n }\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: CONTENT_MESSAGE_TYPE,\n toTarget: target,\n skipMain\n });\n}\n\n/**\n * OnlyToOneContent - Creates a message that will be sent to a particular Content process\n * and skip the main reducer.\n *\n * @param {object} action Any redux action (required)\n * @param {string} target The id of a content port\n * @return {object} An action with added .meta properties\n */\nfunction OnlyToOneContent(action, target) {\n return AlsoToOneContent(action, target, true);\n}\n\n/**\n * AlsoToPreloaded - Creates a message that dispatched to the main reducer and also sent to the preloaded tab.\n *\n * @param {object} action Any redux action (required)\n * @return {object} An action with added .meta properties\n */\nfunction AlsoToPreloaded(action) {\n return _RouteMessage(action, {\n from: MAIN_MESSAGE_TYPE,\n to: PRELOAD_MESSAGE_TYPE\n });\n}\n\n/**\n * UserEvent - A telemetry ping indicating a user action. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction UserEvent(data) {\n return AlsoToMain({\n type: actionTypes.TELEMETRY_USER_EVENT,\n data\n });\n}\n\n/**\n * ASRouterUserEvent - A telemetry ping indicating a user action from AS router. This should only\n * be sent from the UI during a user session.\n *\n * @param {object} data Fields to include in the ping (source, etc.)\n * @return {object} An AlsoToMain action\n */\nfunction ASRouterUserEvent(data) {\n return AlsoToMain({\n type: actionTypes.AS_ROUTER_TELEMETRY_USER_EVENT,\n data\n });\n}\n\n/**\n * UndesiredEvent - A telemetry ping indicating an undesired state.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction UndesiredEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_UNDESIRED_EVENT,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * PerfEvent - A telemetry ping indicating a performance-related event.\n *\n * @param {object} data Fields to include in the ping (value, etc.)\n * @param {int} importContext (For testing) Override the import context for testing.\n * @return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction PerfEvent(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_PERFORMANCE_EVENT,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\n/**\n * ImpressionStats - A telemetry ping indicating an impression stats.\n *\n * @param {object} data Fields to include in the ping\n * @param {int} importContext (For testing) Override the import context for testing.\n * #return {object} An action. For UI code, a AlsoToMain action.\n */\nfunction ImpressionStats(data, importContext = globalImportContext) {\n const action = {\n type: actionTypes.TELEMETRY_IMPRESSION_STATS,\n data\n };\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction SetPref(name, value, importContext = globalImportContext) {\n const action = {type: actionTypes.SET_PREF, data: {name, value}};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nfunction WebExtEvent(type, data, importContext = globalImportContext) {\n if (!data || !data.source) {\n throw new Error(\"WebExtEvent actions should include a property \\\"source\\\", the id of the webextension that should receive the event.\");\n }\n const action = {type, data};\n return importContext === UI_CODE ? AlsoToMain(action) : action;\n}\n\nthis.actionTypes = actionTypes;\nthis.ASRouterActions = ASRouterActions;\n\nthis.actionCreators = {\n BroadcastToContent,\n UserEvent,\n ASRouterUserEvent,\n UndesiredEvent,\n PerfEvent,\n ImpressionStats,\n AlsoToOneContent,\n OnlyToOneContent,\n AlsoToMain,\n OnlyToMain,\n AlsoToPreloaded,\n SetPref,\n WebExtEvent\n};\n\n// These are helpers to test for certain kinds of actions\nthis.actionUtils = {\n isSendToMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === MAIN_MESSAGE_TYPE && action.meta.from === CONTENT_MESSAGE_TYPE;\n },\n isBroadcastToContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && !action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToOneContent(action) {\n if (!action.meta) {\n return false;\n }\n if (action.meta.to === CONTENT_MESSAGE_TYPE && action.meta.toTarget) {\n return true;\n }\n return false;\n },\n isSendToPreloaded(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.to === PRELOAD_MESSAGE_TYPE &&\n action.meta.from === MAIN_MESSAGE_TYPE;\n },\n isFromMain(action) {\n if (!action.meta) {\n return false;\n }\n return action.meta.from === MAIN_MESSAGE_TYPE &&\n action.meta.to === CONTENT_MESSAGE_TYPE;\n },\n getPortIdOfSender(action) {\n return (action.meta && action.meta.fromTarget) || null;\n },\n _RouteMessage\n};\n\nconst EXPORTED_SYMBOLS = [\n \"actionTypes\",\n \"actionCreators\",\n \"actionUtils\",\n \"ASRouterActions\",\n \"globalImportContext\",\n \"UI_CODE\",\n \"BACKGROUND_PROCESS\",\n \"MAIN_MESSAGE_TYPE\",\n \"CONTENT_MESSAGE_TYPE\",\n \"PRELOAD_MESSAGE_TYPE\"\n];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Actions.jsm","module.exports = ReactIntl;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactIntl\"\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","module.exports = ReactRedux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactRedux\"\n// module id = 4\n// module chunks = 0","export function safeURI(url) {\n if (!url) {\n return \"\";\n }\n const {protocol} = new URL(url);\n const isAllowed = [\n \"http:\",\n \"https:\",\n \"data:\",\n \"resource:\",\n \"chrome:\"\n ].includes(protocol);\n if (!isAllowed) {\n console.warn(`The protocol ${protocol} is not allowed for template URLs.`); // eslint-disable-line no-console\n }\n return isAllowed ? url : \"\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/template-utils.js","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// minimum size necessary to show a rich icon instead of a screenshot\nexport const MIN_RICH_FAVICON_SIZE = 96;\n// minimum size necessary to show any icon in the top left corner with a screenshot\nexport const MIN_CORNER_FAVICON_SIZE = 16;\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSitesConstants.js","this.Dedupe = class Dedupe {\n constructor(createKey) {\n this.createKey = createKey || this.defaultCreateKey;\n }\n\n defaultCreateKey(item) {\n return item;\n }\n\n /**\n * Dedupe any number of grouped elements favoring those from earlier groups.\n *\n * @param {Array} groups Contains an arbitrary number of arrays of elements.\n * @returns {Array} A matching array of each provided group deduped.\n */\n group(...groups) {\n const globalKeys = new Set();\n const result = [];\n for (const values of groups) {\n const valueMap = new Map();\n for (const value of values) {\n const key = this.createKey(value);\n if (!globalKeys.has(key) && !valueMap.has(key)) {\n valueMap.set(key, value);\n }\n }\n result.push(valueMap);\n valueMap.forEach((value, key) => globalKeys.add(key));\n }\n return result.map(m => Array.from(m.values()));\n }\n};\n\nconst EXPORTED_SYMBOLS = [\"Dedupe\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Dedupe.jsm","/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\"use strict\";\n\nconst {actionTypes: at} = ChromeUtils.import(\"resource://activity-stream/common/Actions.jsm\", {});\nconst {Dedupe} = ChromeUtils.import(\"resource://activity-stream/common/Dedupe.jsm\", {});\n\nconst TOP_SITES_DEFAULT_ROWS = 1;\nconst TOP_SITES_MAX_SITES_PER_ROW = 8;\n\nconst dedupe = new Dedupe(site => site && site.url);\n\nconst INITIAL_STATE = {\n App: {\n // Have we received real data from the app yet?\n initialized: false,\n // The version of the system-addon\n version: null\n },\n Snippets: {initialized: false},\n TopSites: {\n // Have we received real data from history yet?\n initialized: false,\n // The history (and possibly default) links\n rows: [],\n // Used in content only to dispatch action to TopSiteForm.\n editForm: null\n },\n Prefs: {\n initialized: false,\n values: {}\n },\n Theme: {className: \"\"},\n Dialog: {\n visible: false,\n data: {}\n },\n Sections: []\n};\n\nfunction App(prevState = INITIAL_STATE.App, action) {\n switch (action.type) {\n case at.INIT:\n return Object.assign({}, prevState, action.data || {}, {initialized: true});\n default:\n return prevState;\n }\n}\n\n/**\n * insertPinned - Inserts pinned links in their specified slots\n *\n * @param {array} a list of links\n * @param {array} a list of pinned links\n * @return {array} resulting list of links with pinned links inserted\n */\nfunction insertPinned(links, pinned) {\n // Remove any pinned links\n const pinnedUrls = pinned.map(link => link && link.url);\n let newLinks = links.filter(link => (link ? !pinnedUrls.includes(link.url) : false));\n newLinks = newLinks.map(link => {\n if (link && link.isPinned) {\n delete link.isPinned;\n delete link.pinIndex;\n }\n return link;\n });\n\n // Then insert them in their specified location\n pinned.forEach((val, index) => {\n if (!val) { return; }\n let link = Object.assign({}, val, {isPinned: true, pinIndex: index});\n if (index > newLinks.length) {\n newLinks[index] = link;\n } else {\n newLinks.splice(index, 0, link);\n }\n });\n\n return newLinks;\n}\n\nfunction TopSites(prevState = INITIAL_STATE.TopSites, action) {\n let hasMatch;\n let newRows;\n switch (action.type) {\n case at.TOP_SITES_UPDATED:\n if (!action.data || !action.data.links) {\n return prevState;\n }\n return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});\n case at.TOP_SITES_PREFS_UPDATED:\n return Object.assign({}, prevState, {pref: action.data.pref});\n case at.TOP_SITES_EDIT:\n return Object.assign({}, prevState, {\n editForm: {\n index: action.data.index,\n previewResponse: null\n }\n });\n case at.TOP_SITES_CANCEL_EDIT:\n return Object.assign({}, prevState, {editForm: null});\n case at.PREVIEW_RESPONSE:\n if (!prevState.editForm || action.data.url !== prevState.editForm.previewUrl) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: action.data.preview,\n previewUrl: action.data.url\n }\n });\n case at.PREVIEW_REQUEST:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null,\n previewUrl: action.data.url\n }\n });\n case at.PREVIEW_REQUEST_CANCEL:\n if (!prevState.editForm) {\n return prevState;\n }\n return Object.assign({}, prevState, {\n editForm: {\n index: prevState.editForm.index,\n previewResponse: null\n }\n });\n case at.SCREENSHOT_UPDATED:\n newRows = prevState.rows.map(row => {\n if (row && row.url === action.data.url) {\n hasMatch = true;\n return Object.assign({}, row, {screenshot: action.data.screenshot});\n }\n return row;\n });\n return hasMatch ? Object.assign({}, prevState, {rows: newRows}) : prevState;\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, site, {bookmarkGuid, bookmarkTitle, bookmarkDateCreated: dateAdded});\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.map(site => {\n if (site && site.url === action.data.url) {\n const newSite = Object.assign({}, site);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n return newSite;\n }\n return site;\n });\n return Object.assign({}, prevState, {rows: newRows});\n case at.PLACES_LINK_DELETED:\n if (!action.data) {\n return prevState;\n }\n newRows = prevState.rows.filter(site => action.data.url !== site.url);\n return Object.assign({}, prevState, {rows: newRows});\n default:\n return prevState;\n }\n}\n\nfunction Dialog(prevState = INITIAL_STATE.Dialog, action) {\n switch (action.type) {\n case at.DIALOG_OPEN:\n return Object.assign({}, prevState, {visible: true, data: action.data});\n case at.DIALOG_CANCEL:\n return Object.assign({}, prevState, {visible: false});\n case at.DELETE_HISTORY_URL:\n return Object.assign({}, INITIAL_STATE.Dialog);\n default:\n return prevState;\n }\n}\n\nfunction Prefs(prevState = INITIAL_STATE.Prefs, action) {\n let newValues;\n switch (action.type) {\n case at.PREFS_INITIAL_VALUES:\n return Object.assign({}, prevState, {initialized: true, values: action.data});\n case at.PREF_CHANGED:\n newValues = Object.assign({}, prevState.values);\n newValues[action.data.name] = action.data.value;\n return Object.assign({}, prevState, {values: newValues});\n default:\n return prevState;\n }\n}\n\nfunction Sections(prevState = INITIAL_STATE.Sections, action) {\n let hasMatch;\n let newState;\n switch (action.type) {\n case at.SECTION_DEREGISTER:\n return prevState.filter(section => section.id !== action.data);\n case at.SECTION_REGISTER:\n // If section exists in prevState, update it\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n hasMatch = true;\n return Object.assign({}, section, action.data);\n }\n return section;\n });\n // Otherwise, append it\n if (!hasMatch) {\n const initialized = !!(action.data.rows && action.data.rows.length > 0);\n const section = Object.assign({title: \"\", rows: [], enabled: false}, action.data, {initialized});\n newState.push(section);\n }\n return newState;\n case at.SECTION_UPDATE:\n newState = prevState.map(section => {\n if (section && section.id === action.data.id) {\n // If the action is updating rows, we should consider initialized to be true.\n // This can be overridden if initialized is defined in the action.data\n const initialized = action.data.rows ? {initialized: true} : {};\n\n // Make sure pinned cards stay at their current position when rows are updated.\n // Disabling a section (SECTION_UPDATE with empty rows) does not retain pinned cards.\n if (action.data.rows && action.data.rows.length > 0 && section.rows.find(card => card.pinned)) {\n const rows = Array.from(action.data.rows);\n section.rows.forEach((card, index) => {\n if (card.pinned) {\n rows.splice(index, 0, card);\n }\n });\n return Object.assign({}, section, initialized, Object.assign({}, action.data, {rows}));\n }\n\n return Object.assign({}, section, initialized, action.data);\n }\n return section;\n });\n\n if (!action.data.dedupeConfigurations) {\n return newState;\n }\n\n action.data.dedupeConfigurations.forEach(dedupeConf => {\n newState = newState.map(section => {\n if (section.id === dedupeConf.id) {\n const dedupedRows = dedupeConf.dedupeFrom.reduce((rows, dedupeSectionId) => {\n const dedupeSection = newState.find(s => s.id === dedupeSectionId);\n const [, newRows] = dedupe.group(dedupeSection.rows, rows);\n return newRows;\n }, section.rows);\n\n return Object.assign({}, section, {rows: dedupedRows});\n }\n\n return section;\n });\n });\n\n return newState;\n case at.SECTION_UPDATE_CARD:\n return prevState.map(section => {\n if (section && section.id === action.data.id && section.rows) {\n const newRows = section.rows.map(card => {\n if (card.url === action.data.url) {\n return Object.assign({}, card, action.data.options);\n }\n return card;\n });\n return Object.assign({}, section, {rows: newRows});\n }\n return section;\n });\n case at.PLACES_BOOKMARK_ADDED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the item within the rows that is attempted to be bookmarked\n if (item.url === action.data.url) {\n const {bookmarkGuid, bookmarkTitle, dateAdded} = action.data;\n return Object.assign({}, item, {\n bookmarkGuid,\n bookmarkTitle,\n bookmarkDateCreated: dateAdded,\n type: \"bookmark\"\n });\n }\n return item;\n })\n }));\n case at.PLACES_SAVED_TO_POCKET:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n if (item.url === action.data.url) {\n return Object.assign({}, item, {\n open_url: action.data.open_url,\n pocket_id: action.data.pocket_id,\n title: action.data.title,\n type: \"pocket\"\n });\n }\n return item;\n })\n }));\n case at.PLACES_BOOKMARK_REMOVED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section => Object.assign({}, section, {\n rows: section.rows.map(item => {\n // find the bookmark within the rows that is attempted to be removed\n if (item.url === action.data.url) {\n const newSite = Object.assign({}, item);\n delete newSite.bookmarkGuid;\n delete newSite.bookmarkTitle;\n delete newSite.bookmarkDateCreated;\n if (!newSite.type || newSite.type === \"bookmark\") {\n newSite.type = \"history\";\n }\n return newSite;\n }\n return item;\n })\n }));\n case at.PLACES_LINK_DELETED:\n case at.PLACES_LINK_BLOCKED:\n if (!action.data) {\n return prevState;\n }\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));\n case at.DELETE_FROM_POCKET:\n case at.ARCHIVE_FROM_POCKET:\n return prevState.map(section =>\n Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));\n default:\n return prevState;\n }\n}\n\nfunction Snippets(prevState = INITIAL_STATE.Snippets, action) {\n switch (action.type) {\n case at.SNIPPETS_DATA:\n return Object.assign({}, prevState, {initialized: true}, action.data);\n case at.SNIPPET_BLOCKED:\n return Object.assign({}, prevState, {blockList: prevState.blockList.concat(action.data)});\n case at.SNIPPETS_BLOCKLIST_CLEARED:\n return Object.assign({}, prevState, {blockList: []});\n case at.SNIPPETS_RESET:\n return INITIAL_STATE.Snippets;\n default:\n return prevState;\n }\n}\n\nfunction Theme(prevState = INITIAL_STATE.Theme, action) {\n switch (action.type) {\n case at.THEME_UPDATE:\n return Object.assign({}, prevState, action.data);\n default:\n return prevState;\n }\n}\n\nthis.INITIAL_STATE = INITIAL_STATE;\nthis.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;\nthis.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;\n\nthis.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/Reducers.jsm","import {actionCreators as ac, ASRouterActions as ra} from \"common/Actions.jsm\";\nimport {LocalizationProvider, Localized} from \"fluent-react\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {MessageContext} from \"fluent\";\nimport {OnboardingMessage} from \"./templates/OnboardingMessage/OnboardingMessage\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {safeURI} from \"./template-utils\";\nimport {SimpleSnippet} from \"./templates/SimpleSnippet/SimpleSnippet\";\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.addMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.removeMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction({button_action, button_action_params}) {\n if (button_action in ra) {\n ASRouterUtils.sendMessage({type: button_action, data: {button_action_params}});\n }\n },\n unblockById(id) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_MESSAGE_BY_ID\", data: {id}});\n },\n unblockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"UNBLOCK_BUNDLE\", data: {bundle}});\n },\n getNextMessage() {\n ASRouterUtils.sendMessage({type: \"GET_NEXT_MESSAGE\"});\n },\n overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.sendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n }\n};\n\n// Note: nextProps/prevProps refer to props passed to <ImpressionsWrapper />, not <ASRouterUISurface />\nfunction shouldSendImpressionOnUpdate(nextProps, prevProps) {\n return (nextProps.message.id && (!prevProps.message || prevProps.message.id !== nextProps.message.id));\n}\n\nfunction generateMessages(content) {\n const cx = new MessageContext(\"en-US\");\n cx.addMessages(`RichTextSnippet = ${content}`);\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: <b />,\n i: <i />,\n u: <u />,\n strong: <strong />,\n em: <em />,\n br: <br />\n};\n\n/**\n * Transform an object (tag name: {url}) into (tag name: anchor) where the url\n * is used as href, in order to render links inside a Fluent.Localized component.\n */\nexport function convertLinks(links, sendClick) {\n if (links) {\n return Object.keys(links).reduce((acc, linkTag) => {\n acc[linkTag] = <a href={safeURI(links[linkTag].url)} data-metric={links[linkTag].metric} onClick={sendClick} />;\n return acc;\n }, {});\n }\n\n return null;\n}\n\n/**\n * Message wrapper used to sanitize markup and render HTML.\n */\nfunction RichText(props) {\n return (\n <Localized id=\"RichTextSnippet\" {...ALLOWED_TAGS} {...convertLinks(props.links, props.sendClick)}>\n <span>{props.text}</span>\n </Localized>\n );\n}\n\nexport class ASRouterUISurface extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessageFromParent = this.onMessageFromParent.bind(this);\n this.sendClick = this.sendClick.bind(this);\n this.sendImpression = this.sendImpression.bind(this);\n this.sendUserActionTelemetry = this.sendUserActionTelemetry.bind(this);\n this.state = {message: {}, bundle: {}};\n }\n\n sendUserActionTelemetry(extraProps = {}) {\n const {message, bundle} = this.state;\n if (!message && !extraProps.message_id) {\n throw new Error(`You must provide a message_id for bundled messages`);\n }\n const eventType = `${message.provider || bundle.provider}_user_event`;\n ASRouterUtils.sendTelemetry({\n message_id: message.id || extraProps.message_id,\n source: extraProps.id,\n action: eventType,\n ...extraProps\n });\n }\n\n sendImpression(extraProps) {\n this.sendUserActionTelemetry({event: \"IMPRESSION\", ...extraProps});\n }\n\n // If link has a `metric` data attribute send it as part of the `value`\n // telemetry field which can have arbitrary values.\n // Used for router messages with links as part of the content.\n sendClick(event) {\n const metric = {\n value: event.target.dataset.metric,\n // Used for the `source` of the event. Needed to differentiate\n // from other snippet or onboarding events that may occur.\n id: \"NEWTAB_FOOTER_BAR_CONTENT\"\n };\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n\n onBlockById(id) {\n return () => ASRouterUtils.blockById(id);\n }\n\n clearBundle(bundle) {\n return () => ASRouterUtils.blockBundle(bundle);\n }\n\n onMessageFromParent({data: action}) {\n switch (action.type) {\n case \"SET_MESSAGE\":\n this.setState({message: action.data});\n break;\n case \"SET_BUNDLED_MESSAGES\":\n this.setState({bundle: action.data});\n break;\n case \"CLEAR_MESSAGE\":\n if (action.data.id === this.state.message.id) {\n this.setState({message: {}});\n }\n break;\n case \"CLEAR_BUNDLE\":\n if (this.state.bundle.bundle) {\n this.setState({bundle: {}});\n }\n break;\n case \"CLEAR_ALL\":\n this.setState({message: {}, bundle: {}});\n }\n }\n\n componentWillMount() {\n ASRouterUtils.addListener(this.onMessageFromParent);\n ASRouterUtils.sendMessage({type: \"CONNECT_UI_REQUEST\"});\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n return (\n <ImpressionsWrapper\n id=\"NEWTAB_FOOTER_BAR\"\n message={this.state.message}\n sendImpression={this.sendImpression}\n shouldSendImpressionOnUpdate={shouldSendImpressionOnUpdate}\n // This helps with testing\n document={this.props.document}>\n <LocalizationProvider messages={generateMessages(this.state.message.content.text)}>\n <SimpleSnippet\n {...this.state.message}\n richText={<RichText text={this.state.message.content.text}\n links={this.state.message.content.links}\n sendClick={this.sendClick} />}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n getNextMessage={ASRouterUtils.getNextMessage}\n onBlock={this.onBlockById(this.state.message.id)}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n </LocalizationProvider>\n </ImpressionsWrapper>);\n }\n\n renderOnboarding() {\n return (\n <OnboardingMessage\n {...this.state.bundle}\n UISurface=\"NEWTAB_OVERLAY\"\n onAction={ASRouterUtils.executeAction}\n onDoneButton={this.clearBundle(this.state.bundle.bundle)}\n getNextMessage={ASRouterUtils.getNextMessage}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />);\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n if (bundle.template === \"onboarding\") { return this.renderOnboarding(); }\n return this.renderSnippets();\n }\n}\n\nASRouterUISurface.defaultProps = {document: global.document};\n\nexport class ASRouterContent {\n constructor() {\n this.initialized = false;\n this.containerElement = null;\n }\n\n _mount() {\n this.containerElement = global.document.getElementById(\"snippets-container\");\n ReactDOM.render(<ASRouterUISurface />, this.containerElement);\n }\n\n _unmount() {\n ReactDOM.unmountComponentAtNode(this.containerElement);\n }\n\n init() {\n this._mount();\n this.initialized = true;\n }\n\n uninit() {\n if (this.initialized) {\n this._unmount();\n this.initialized = false;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/asrouter-content.jsx","module.exports = PropTypes;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"PropTypes\"\n// module id = 9\n// module chunks = 0","/* eslint no-magic-numbers: [0] */\n\nconst MAX_PLACEABLES = 100;\n\nconst entryIdentifierRe = /-?[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst identifierRe = /[a-zA-Z][a-zA-Z0-9_-]*/y;\nconst functionIdentifierRe = /^[A-Z][A-Z_?-]*$/;\n\n/**\n * The `Parser` class is responsible for parsing FTL resources.\n *\n * It's only public method is `getResource(source)` which takes an FTL string\n * and returns a two element Array with an Object of entries generated from the\n * source as the first element and an array of SyntaxError objects as the\n * second.\n *\n * This parser is optimized for runtime performance.\n *\n * There is an equivalent of this parser in syntax/parser which is\n * generating full AST which is useful for FTL tools.\n */\nclass RuntimeParser {\n /**\n * Parse FTL code into entries formattable by the MessageContext.\n *\n * Given a string of FTL syntax, return a map of entries that can be passed\n * to MessageContext.format and a list of errors encountered during parsing.\n *\n * @param {String} string\n * @returns {Array<Object, Array>}\n */\n getResource(string) {\n this._source = string;\n this._index = 0;\n this._length = string.length;\n this.entries = {};\n\n const errors = [];\n\n this.skipWS();\n while (this._index < this._length) {\n try {\n this.getEntry();\n } catch (e) {\n if (e instanceof SyntaxError) {\n errors.push(e);\n\n this.skipToNextEntryStart();\n } else {\n throw e;\n }\n }\n this.skipWS();\n }\n\n return [this.entries, errors];\n }\n\n /**\n * Parse the source string from the current index as an FTL entry\n * and add it to object's entries property.\n *\n * @private\n */\n getEntry() {\n // The index here should either be at the beginning of the file\n // or right after new line.\n if (this._index !== 0 &&\n this._source[this._index - 1] !== \"\\n\") {\n throw this.error(`Expected an entry to start\n at the beginning of the file or on a new line.`);\n }\n\n const ch = this._source[this._index];\n\n // We don't care about comments or sections at runtime\n if (ch === \"/\" ||\n (ch === \"#\" &&\n [\" \", \"#\", \"\\n\"].includes(this._source[this._index + 1]))) {\n this.skipComment();\n return;\n }\n\n if (ch === \"[\") {\n this.skipSection();\n return;\n }\n\n this.getMessage();\n }\n\n /**\n * Skip the section entry from the current index.\n *\n * @private\n */\n skipSection() {\n this._index += 1;\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[[\" to open a section');\n }\n\n this._index += 1;\n\n this.skipInlineWS();\n this.getVariantName();\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"]\" ||\n this._source[this._index + 1] !== \"]\") {\n throw this.error('Expected \"]]\" to close a section');\n }\n\n this._index += 2;\n }\n\n /**\n * Parse the source string from the current index as an FTL message\n * and add it to the entries property on the Parser.\n *\n * @private\n */\n getMessage() {\n const id = this.getEntryIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"=\") {\n this._index++;\n }\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (id.startsWith(\"-\") && val === null) {\n throw this.error(\"Expected term to have a value\");\n }\n\n let attrs = null;\n\n if (this._source[this._index] === \" \") {\n const lineStart = this._index;\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n this._index = lineStart;\n attrs = this.getAttributes();\n }\n }\n\n if (attrs === null && typeof val === \"string\") {\n this.entries[id] = val;\n } else {\n if (val === null && attrs === null) {\n throw this.error(\"Expected message to have a value or attributes\");\n }\n\n this.entries[id] = {};\n\n if (val !== null) {\n this.entries[id].val = val;\n }\n\n if (attrs !== null) {\n this.entries[id].attrs = attrs;\n }\n }\n }\n\n /**\n * Skip whitespace.\n *\n * @private\n */\n skipWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\n\" || ch === \"\\t\" || ch === \"\\r\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip inline whitespace (space and \\t).\n *\n * @private\n */\n skipInlineWS() {\n let ch = this._source[this._index];\n while (ch === \" \" || ch === \"\\t\") {\n ch = this._source[++this._index];\n }\n }\n\n /**\n * Skip blank lines.\n *\n * @private\n */\n skipBlankLines() {\n while (true) {\n const ptr = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \"\\n\") {\n this._index += 1;\n } else {\n this._index = ptr;\n break;\n }\n }\n }\n\n /**\n * Get identifier using the provided regex.\n *\n * By default this will get identifiers of public messages, attributes and\n * external arguments (without the $).\n *\n * @returns {String}\n * @private\n */\n getIdentifier(re = identifierRe) {\n re.lastIndex = this._index;\n const result = re.exec(this._source);\n\n if (result === null) {\n this._index += 1;\n throw this.error(`Expected an identifier [${re.toString()}]`);\n }\n\n this._index = re.lastIndex;\n return result[0];\n }\n\n /**\n * Get identifier of a Message or a Term (staring with a dash).\n *\n * @returns {String}\n * @private\n */\n getEntryIdentifier() {\n return this.getIdentifier(entryIdentifierRe);\n }\n\n /**\n * Get Variant name.\n *\n * @returns {Object}\n * @private\n */\n getVariantName() {\n let name = \"\";\n\n const start = this._index;\n let cc = this._source.charCodeAt(this._index);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 || cc === 32) { // _ <space>\n cc = this._source.charCodeAt(++this._index);\n } else {\n throw this.error(\"Expected a keyword (starting with [a-zA-Z_])\");\n }\n\n while ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || cc === 45 || cc === 32) { // _- <space>\n cc = this._source.charCodeAt(++this._index);\n }\n\n // If we encountered the end of name, we want to test if the last\n // collected character is a space.\n // If it is, we will backtrack to the last non-space character because\n // the keyword cannot end with a space character.\n while (this._source.charCodeAt(this._index - 1) === 32) {\n this._index--;\n }\n\n name += this._source.slice(start, this._index);\n\n return { type: \"varname\", name };\n }\n\n /**\n * Get simple string argument enclosed in `\"`.\n *\n * @returns {String}\n * @private\n */\n getString() {\n const start = this._index + 1;\n\n while (++this._index < this._length) {\n const ch = this._source[this._index];\n\n if (ch === '\"') {\n break;\n }\n\n if (ch === \"\\n\") {\n throw this.error(\"Unterminated string expression\");\n }\n }\n\n return this._source.substring(start, this._index++);\n }\n\n /**\n * Parses a Message pattern.\n * Message Pattern may be a simple string or an array of strings\n * and placeable expressions.\n *\n * @returns {String|Array}\n * @private\n */\n getPattern() {\n // We're going to first try to see if the pattern is simple.\n // If it is we can just look for the end of the line and read the string.\n //\n // Then, if either the line contains a placeable opening `{` or the\n // next line starts an indentation, we switch to complex pattern.\n const start = this._index;\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n eol = this._length;\n }\n\n const firstLineContent = start !== eol ?\n this._source.slice(start, eol) : null;\n\n if (firstLineContent && firstLineContent.includes(\"{\")) {\n return this.getComplexPattern();\n }\n\n this._index = eol + 1;\n\n this.skipBlankLines();\n\n if (this._source[this._index] !== \" \") {\n // No indentation means we're done with this message. Callers should check\n // if the return value here is null. It may be OK for messages, but not OK\n // for terms, attributes and variants.\n return firstLineContent;\n }\n\n const lineStart = this._index;\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \".\") {\n // The pattern is followed by an attribute. Rewind _index to the first\n // column of the current line as expected by getAttributes.\n this._index = lineStart;\n return firstLineContent;\n }\n\n if (firstLineContent) {\n // It's a multiline pattern which started on the same line as the\n // identifier. Reparse the whole pattern to make sure we get all of it.\n this._index = start;\n }\n\n return this.getComplexPattern();\n }\n\n /**\n * Parses a complex Message pattern.\n * This function is called by getPattern when the message is multiline,\n * or contains escape chars or placeables.\n * It does full parsing of complex patterns.\n *\n * @returns {Array}\n * @private\n */\n /* eslint-disable complexity */\n getComplexPattern() {\n let buffer = \"\";\n const content = [];\n let placeables = 0;\n\n let ch = this._source[this._index];\n\n while (this._index < this._length) {\n // This block handles multi-line strings combining strings separated\n // by new line.\n if (ch === \"\\n\") {\n this._index++;\n\n // We want to capture the start and end pointers\n // around blank lines and add them to the buffer\n // but only if the blank lines are in the middle\n // of the string.\n const blankLinesStart = this._index;\n this.skipBlankLines();\n const blankLinesEnd = this._index;\n\n\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] === \"}\" ||\n this._source[this._index] === \"[\" ||\n this._source[this._index] === \"*\" ||\n this._source[this._index] === \".\") {\n this._index = blankLinesEnd;\n break;\n }\n\n buffer += this._source.substring(blankLinesStart, blankLinesEnd);\n\n if (buffer.length || content.length) {\n buffer += \"\\n\";\n }\n ch = this._source[this._index];\n continue;\n } else if (ch === \"\\\\\") {\n const ch2 = this._source[this._index + 1];\n if (ch2 === '\"' || ch2 === \"{\" || ch2 === \"\\\\\") {\n ch = ch2;\n this._index++;\n }\n } else if (ch === \"{\") {\n // Push the buffer to content array right before placeable\n if (buffer.length) {\n content.push(buffer);\n }\n if (placeables > MAX_PLACEABLES - 1) {\n throw this.error(\n `Too many placeables, maximum allowed is ${MAX_PLACEABLES}`);\n }\n buffer = \"\";\n content.push(this.getPlaceable());\n\n this._index++;\n\n ch = this._source[this._index];\n placeables++;\n continue;\n }\n\n if (ch) {\n buffer += ch;\n }\n this._index++;\n ch = this._source[this._index];\n }\n\n if (content.length === 0) {\n return buffer.length ? buffer : null;\n }\n\n if (buffer.length) {\n content.push(buffer);\n }\n\n return content;\n }\n /* eslint-enable complexity */\n\n /**\n * Parses a single placeable in a Message pattern and returns its\n * expression.\n *\n * @returns {Object}\n * @private\n */\n getPlaceable() {\n const start = ++this._index;\n\n this.skipWS();\n\n if (this._source[this._index] === \"*\" ||\n (this._source[this._index] === \"[\" &&\n this._source[this._index + 1] !== \"]\")) {\n const variants = this.getVariants();\n\n return {\n type: \"sel\",\n exp: null,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n // Rewind the index and only support in-line white-space now.\n this._index = start;\n this.skipInlineWS();\n\n const selector = this.getSelectorExpression();\n\n this.skipWS();\n\n const ch = this._source[this._index];\n\n if (ch === \"}\") {\n if (selector.type === \"attr\" && selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of private messages cannot be interpolated.\"\n );\n }\n\n return selector;\n }\n\n if (ch !== \"-\" || this._source[this._index + 1] !== \">\") {\n throw this.error('Expected \"}\" or \"->\"');\n }\n\n if (selector.type === \"ref\") {\n throw this.error(\"Message references cannot be used as selectors.\");\n }\n\n if (selector.type === \"var\") {\n throw this.error(\"Variants cannot be used as selectors.\");\n }\n\n if (selector.type === \"attr\" && !selector.id.name.startsWith(\"-\")) {\n throw this.error(\n \"Attributes of public messages cannot be used as selectors.\"\n );\n }\n\n\n this._index += 2; // ->\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"\\n\") {\n throw this.error(\"Variants should be listed in a new line\");\n }\n\n this.skipWS();\n\n const variants = this.getVariants();\n\n if (variants[0].length === 0) {\n throw this.error(\"Expected members for the select expression\");\n }\n\n return {\n type: \"sel\",\n exp: selector,\n vars: variants[0],\n def: variants[1]\n };\n }\n\n /**\n * Parses a selector expression.\n *\n * @returns {Object}\n * @private\n */\n getSelectorExpression() {\n const literal = this.getLiteral();\n\n if (literal.type !== \"ref\") {\n return literal;\n }\n\n if (this._source[this._index] === \".\") {\n this._index++;\n\n const name = this.getIdentifier();\n this._index++;\n return {\n type: \"attr\",\n id: literal,\n name\n };\n }\n\n if (this._source[this._index] === \"[\") {\n this._index++;\n\n const key = this.getVariantKey();\n this._index++;\n return {\n type: \"var\",\n id: literal,\n key\n };\n }\n\n if (this._source[this._index] === \"(\") {\n this._index++;\n const args = this.getCallArgs();\n\n if (!functionIdentifierRe.test(literal.name)) {\n throw this.error(\"Function names must be all upper-case\");\n }\n\n this._index++;\n\n literal.type = \"fun\";\n\n return {\n type: \"call\",\n fun: literal,\n args\n };\n }\n\n return literal;\n }\n\n /**\n * Parses call arguments for a CallExpression.\n *\n * @returns {Array}\n * @private\n */\n getCallArgs() {\n const args = [];\n\n while (this._index < this._length) {\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n return args;\n }\n\n const exp = this.getSelectorExpression();\n\n // MessageReference in this place may be an entity reference, like:\n // `call(foo)`, or, if it's followed by `:` it will be a key-value pair.\n if (exp.type !== \"ref\") {\n args.push(exp);\n } else {\n this.skipInlineWS();\n\n if (this._source[this._index] === \":\") {\n this._index++;\n this.skipInlineWS();\n\n const val = this.getSelectorExpression();\n\n // If the expression returned as a value of the argument\n // is not a quote delimited string or number, throw.\n //\n // We don't have to check here if the pattern is quote delimited\n // because that's the only type of string allowed in expressions.\n if (typeof val === \"string\" ||\n Array.isArray(val) ||\n val.type === \"num\") {\n args.push({\n type: \"narg\",\n name: exp.name,\n val\n });\n } else {\n this._index = this._source.lastIndexOf(\":\", this._index) + 1;\n throw this.error(\n \"Expected string in quotes, number.\");\n }\n\n } else {\n args.push(exp);\n }\n }\n\n this.skipInlineWS();\n\n if (this._source[this._index] === \")\") {\n break;\n } else if (this._source[this._index] === \",\") {\n this._index++;\n } else {\n throw this.error('Expected \",\" or \")\"');\n }\n }\n\n return args;\n }\n\n /**\n * Parses an FTL Number.\n *\n * @returns {Object}\n * @private\n */\n getNumber() {\n let num = \"\";\n let cc = this._source.charCodeAt(this._index);\n\n // The number literal may start with negative sign `-`.\n if (cc === 45) {\n num += \"-\";\n cc = this._source.charCodeAt(++this._index);\n }\n\n // next, we expect at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // followed by potentially more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n\n // followed by an optional decimal separator `.`\n if (cc === 46) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n\n // followed by at least one digit\n if (cc < 48 || cc > 57) {\n throw this.error(`Unknown literal \"${num}\"`);\n }\n\n // and optionally more digits\n while (cc >= 48 && cc <= 57) {\n num += this._source[this._index++];\n cc = this._source.charCodeAt(this._index);\n }\n }\n\n return {\n type: \"num\",\n val: num\n };\n }\n\n /**\n * Parses a list of Message attributes.\n *\n * @returns {Object}\n * @private\n */\n getAttributes() {\n const attrs = {};\n\n while (this._index < this._length) {\n if (this._source[this._index] !== \" \") {\n break;\n }\n this.skipInlineWS();\n\n if (this._source[this._index] !== \".\") {\n break;\n }\n this._index++;\n\n const key = this.getIdentifier();\n\n this.skipInlineWS();\n\n if (this._source[this._index] !== \"=\") {\n throw this.error('Expected \"=\"');\n }\n this._index++;\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected attribute to have a value\");\n }\n\n if (typeof val === \"string\") {\n attrs[key] = val;\n } else {\n attrs[key] = {\n val\n };\n }\n\n this.skipBlankLines();\n }\n\n return attrs;\n }\n\n /**\n * Parses a list of Selector variants.\n *\n * @returns {Array}\n * @private\n */\n getVariants() {\n const variants = [];\n let index = 0;\n let defaultIndex;\n\n while (this._index < this._length) {\n const ch = this._source[this._index];\n\n if ((ch !== \"[\" || this._source[this._index + 1] === \"[\") &&\n ch !== \"*\") {\n break;\n }\n if (ch === \"*\") {\n this._index++;\n defaultIndex = index;\n }\n\n if (this._source[this._index] !== \"[\") {\n throw this.error('Expected \"[\"');\n }\n\n this._index++;\n\n const key = this.getVariantKey();\n\n this.skipInlineWS();\n\n const val = this.getPattern();\n\n if (val === null) {\n throw this.error(\"Expected variant to have a value\");\n }\n\n variants[index++] = {key, val};\n\n this.skipWS();\n }\n\n return [variants, defaultIndex];\n }\n\n /**\n * Parses a Variant key.\n *\n * @returns {String}\n * @private\n */\n getVariantKey() {\n // VariantKey may be a Keyword or Number\n\n const cc = this._source.charCodeAt(this._index);\n let literal;\n\n if ((cc >= 48 && cc <= 57) || cc === 45) {\n literal = this.getNumber();\n } else {\n literal = this.getVariantName();\n }\n\n if (this._source[this._index] !== \"]\") {\n throw this.error('Expected \"]\"');\n }\n\n this._index++;\n return literal;\n }\n\n /**\n * Parses an FTL literal.\n *\n * @returns {Object}\n * @private\n */\n getLiteral() {\n const cc0 = this._source.charCodeAt(this._index);\n\n if (cc0 === 36) { // $\n this._index++;\n return {\n type: \"ext\",\n name: this.getIdentifier()\n };\n }\n\n const cc1 = cc0 === 45 // -\n // Peek at the next character after the dash.\n ? this._source.charCodeAt(this._index + 1)\n // Or keep using the character at the current index.\n : cc0;\n\n if ((cc1 >= 97 && cc1 <= 122) || // a-z\n (cc1 >= 65 && cc1 <= 90)) { // A-Z\n return {\n type: \"ref\",\n name: this.getEntryIdentifier()\n };\n }\n\n if ((cc1 >= 48 && cc1 <= 57)) { // 0-9\n return this.getNumber();\n }\n\n if (cc0 === 34) { // \"\n return this.getString();\n }\n\n throw this.error(\"Expected literal\");\n }\n\n /**\n * Skips an FTL comment.\n *\n * @private\n */\n skipComment() {\n // At runtime, we don't care about comments so we just have\n // to parse them properly and skip their content.\n let eol = this._source.indexOf(\"\\n\", this._index);\n\n while (eol !== -1 &&\n ((this._source[eol + 1] === \"/\" && this._source[eol + 2] === \"/\") ||\n (this._source[eol + 1] === \"#\" &&\n [\" \", \"#\"].includes(this._source[eol + 2])))) {\n this._index = eol + 3;\n\n eol = this._source.indexOf(\"\\n\", this._index);\n\n if (eol === -1) {\n break;\n }\n }\n\n if (eol === -1) {\n this._index = this._length;\n } else {\n this._index = eol + 1;\n }\n }\n\n /**\n * Creates a new SyntaxError object with a given message.\n *\n * @param {String} message\n * @returns {Object}\n * @private\n */\n error(message) {\n return new SyntaxError(message);\n }\n\n /**\n * Skips to the beginning of a next entry after the current position.\n * This is used to mark the boundary of junk entry in case of error,\n * and recover from the returned position.\n *\n * @private\n */\n skipToNextEntryStart() {\n let start = this._index;\n\n while (true) {\n if (start === 0 || this._source[start - 1] === \"\\n\") {\n const cc = this._source.charCodeAt(start);\n\n if ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 47 || cc === 91) { // /[\n this._index = start;\n return;\n }\n }\n\n start = this._source.indexOf(\"\\n\", start);\n\n if (start === -1) {\n this._index = this._length;\n return;\n }\n start++;\n }\n }\n}\n\n/**\n * Parses an FTL string using RuntimeParser and returns the generated\n * object with entries and a list of errors.\n *\n * @param {String} string\n * @returns {Array<Object, Array>}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/parser.js","/* global Intl */\n\n/**\n * The `FluentType` class is the base of Fluent's type system.\n *\n * Fluent types wrap JavaScript values and store additional configuration for\n * them, which can then be used in the `toString` method together with a proper\n * `Intl` formatter.\n */\nexport class FluentType {\n\n /**\n * Create an `FluentType` instance.\n *\n * @param {Any} value - JavaScript value to wrap.\n * @param {Object} opts - Configuration.\n * @returns {FluentType}\n */\n constructor(value, opts) {\n this.value = value;\n this.opts = opts;\n }\n\n /**\n * Unwrap the raw value stored by this `FluentType`.\n *\n * @returns {Any}\n */\n valueOf() {\n return this.value;\n }\n\n /**\n * Format this instance of `FluentType` to a string.\n *\n * Formatted values are suitable for use outside of the `MessageContext`.\n * This method can use `Intl` formatters memoized by the `MessageContext`\n * instance passed as an argument.\n *\n * @param {MessageContext} [ctx]\n * @returns {string}\n */\n toString() {\n throw new Error(\"Subclasses of FluentType must implement toString.\");\n }\n}\n\nexport class FluentNone extends FluentType {\n toString() {\n return this.value || \"???\";\n }\n}\n\nexport class FluentNumber extends FluentType {\n constructor(value, opts) {\n super(parseFloat(value), opts);\n }\n\n toString(ctx) {\n try {\n const nf = ctx._memoizeIntlObject(\n Intl.NumberFormat, this.opts\n );\n return nf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentNumber) {\n return this.value === other.value;\n }\n return false;\n }\n}\n\nexport class FluentDateTime extends FluentType {\n constructor(value, opts) {\n super(new Date(value), opts);\n }\n\n toString(ctx) {\n try {\n const dtf = ctx._memoizeIntlObject(\n Intl.DateTimeFormat, this.opts\n );\n return dtf.format(this.value);\n } catch (e) {\n // XXX Report the error.\n return this.value;\n }\n }\n}\n\nexport class FluentSymbol extends FluentType {\n toString() {\n return this.value;\n }\n\n /**\n * Compare the object with another instance of a FluentType.\n *\n * @param {MessageContext} ctx\n * @param {FluentType} other\n * @returns {bool}\n */\n match(ctx, other) {\n if (other instanceof FluentSymbol) {\n return this.value === other.value;\n } else if (typeof other === \"string\") {\n return this.value === other;\n } else if (other instanceof FluentNumber) {\n const pr = ctx._memoizeIntlObject(\n Intl.PluralRules, other.opts\n );\n return this.value === pr.select(other.value);\n }\n return false;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/types.js","/**\n * @overview\n *\n * The FTL resolver ships with a number of functions built-in.\n *\n * Each function take two arguments:\n * - args - an array of positional args\n * - opts - an object of key-value args\n *\n * Arguments to functions are guaranteed to already be instances of\n * `FluentType`. Functions must return `FluentType` objects as well.\n */\n\nimport { FluentNumber, FluentDateTime } from \"./types\";\n\nexport default {\n \"NUMBER\": ([arg], opts) =>\n new FluentNumber(arg.valueOf(), merge(arg.opts, opts)),\n \"DATETIME\": ([arg], opts) =>\n new FluentDateTime(arg.valueOf(), merge(arg.opts, opts)),\n};\n\nfunction merge(argopts, opts) {\n return Object.assign({}, argopts, values(opts));\n}\n\nfunction values(opts) {\n const unwrapped = {};\n for (const [name, opt] of Object.entries(opts)) {\n unwrapped[name] = opt.valueOf();\n }\n return unwrapped;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/builtins.js","/**\n * @overview\n *\n * The role of the Fluent resolver is to format a translation object to an\n * instance of `FluentType` or an array of instances.\n *\n * Translations can contain references to other messages or external arguments,\n * conditional logic in form of select expressions, traits which describe their\n * grammatical features, and can use Fluent builtins which make use of the\n * `Intl` formatters to format numbers, dates, lists and more into the\n * context's language. See the documentation of the Fluent syntax for more\n * information.\n *\n * In case of errors the resolver will try to salvage as much of the\n * translation as possible. In rare situations where the resolver didn't know\n * how to recover from an error it will return an instance of `FluentNone`.\n *\n * `MessageReference`, `VariantExpression`, `AttributeExpression` and\n * `SelectExpression` resolve to raw Runtime Entries objects and the result of\n * the resolution needs to be passed into `Type` to get their real value.\n * This is useful for composing expressions. Consider:\n *\n * brand-name[nominative]\n *\n * which is a `VariantExpression` with properties `id: MessageReference` and\n * `key: Keyword`. If `MessageReference` was resolved eagerly, it would\n * instantly resolve to the value of the `brand-name` message. Instead, we\n * want to get the message object and look for its `nominative` variant.\n *\n * All other expressions (except for `FunctionReference` which is only used in\n * `CallExpression`) resolve to an instance of `FluentType`. The caller should\n * use the `toString` method to convert the instance to a native value.\n *\n *\n * All functions in this file pass around a special object called `env`.\n * This object stores a set of elements used by all resolve functions:\n *\n * * {MessageContext} ctx\n * context for which the given resolution is happening\n * * {Object} args\n * list of developer provided arguments that can be used\n * * {Array} errors\n * list of errors collected while resolving\n * * {WeakSet} dirty\n * Set of patterns already encountered during this resolution.\n * This is used to prevent cyclic resolutions.\n */\n\n\nimport { FluentType, FluentNone, FluentNumber, FluentDateTime, FluentSymbol }\n from \"./types\";\nimport builtins from \"./builtins\";\n\n// Prevent expansion of too long placeables.\nconst MAX_PLACEABLE_LENGTH = 2500;\n\n// Unicode bidi isolation characters.\nconst FSI = \"\\u2068\";\nconst PDI = \"\\u2069\";\n\n\n/**\n * Helper for choosing the default value from a set of members.\n *\n * Used in SelectExpressions and Type.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} members\n * Hash map of variants from which the default value is to be selected.\n * @param {Number} def\n * The index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction DefaultMember(env, members, def) {\n if (members[def]) {\n return members[def];\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No default\"));\n return new FluentNone();\n}\n\n\n/**\n * Resolve a reference to another message.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} id\n * The identifier of the message to be resolved.\n * @param {String} id.name\n * The name of the identifier.\n * @returns {FluentType}\n * @private\n */\nfunction MessageReference(env, {name}) {\n const { ctx, errors } = env;\n const message = name.startsWith(\"-\")\n ? ctx._terms.get(name)\n : ctx._messages.get(name);\n\n if (!message) {\n const err = name.startsWith(\"-\")\n ? new ReferenceError(`Unknown term: ${name}`)\n : new ReferenceError(`Unknown message: ${name}`);\n errors.push(err);\n return new FluentNone(name);\n }\n\n return message;\n}\n\n/**\n * Resolve a variant expression to the variant object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.id\n * An Identifier of a message for which the variant is resolved.\n * @param {Object} expr.id.name\n * Name a message for which the variant is resolved.\n * @param {Object} expr.key\n * Variant key to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction VariantExpression(env, {id, key}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n const { ctx, errors } = env;\n const keyword = Type(env, key);\n\n function isVariantList(node) {\n return Array.isArray(node) &&\n node[0].type === \"sel\" &&\n node[0].exp === null;\n }\n\n if (isVariantList(message.val)) {\n // Match the specified key against keys of each variant, in order.\n for (const variant of message.val[0].vars) {\n const variantKey = Type(env, variant.key);\n if (keyword.match(ctx, variantKey)) {\n return variant;\n }\n }\n }\n\n errors.push(new ReferenceError(`Unknown variant: ${keyword.toString(ctx)}`));\n return Type(env, message);\n}\n\n\n/**\n * Resolve an attribute expression to the attribute object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.id\n * An ID of a message for which the attribute is resolved.\n * @param {String} expr.name\n * Name of the attribute to be resolved.\n * @returns {FluentType}\n * @private\n */\nfunction AttributeExpression(env, {id, name}) {\n const message = MessageReference(env, id);\n if (message instanceof FluentNone) {\n return message;\n }\n\n if (message.attrs) {\n // Match the specified name against keys of each attribute.\n for (const attrName in message.attrs) {\n if (name === attrName) {\n return message.attrs[name];\n }\n }\n }\n\n const { errors } = env;\n errors.push(new ReferenceError(`Unknown attribute: ${name}`));\n return Type(env, message);\n}\n\n/**\n * Resolve a select expression to the member object.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.exp\n * Selector expression\n * @param {Array} expr.vars\n * List of variants for the select expression.\n * @param {Number} expr.def\n * Index of the default variant.\n * @returns {FluentType}\n * @private\n */\nfunction SelectExpression(env, {exp, vars, def}) {\n if (exp === null) {\n return DefaultMember(env, vars, def);\n }\n\n const selector = Type(env, exp);\n if (selector instanceof FluentNone) {\n return DefaultMember(env, vars, def);\n }\n\n // Match the selector against keys of each variant, in order.\n for (const variant of vars) {\n const key = Type(env, variant.key);\n const keyCanMatch =\n key instanceof FluentNumber || key instanceof FluentSymbol;\n\n if (!keyCanMatch) {\n continue;\n }\n\n const { ctx } = env;\n\n if (key.match(ctx, selector)) {\n return variant;\n }\n }\n\n return DefaultMember(env, vars, def);\n}\n\n\n/**\n * Resolve expression to a Fluent type.\n *\n * JavaScript strings are a special case. Since they natively have the\n * `toString` method they can be used as if they were a Fluent type without\n * paying the cost of creating a instance of one.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression object to be resolved into a Fluent type.\n * @returns {FluentType}\n * @private\n */\nfunction Type(env, expr) {\n // A fast-path for strings which are the most common case, and for\n // `FluentNone` which doesn't require any additional logic.\n if (typeof expr === \"string\" || expr instanceof FluentNone) {\n return expr;\n }\n\n // The Runtime AST (Entries) encodes patterns (complex strings with\n // placeables) as Arrays.\n if (Array.isArray(expr)) {\n return Pattern(env, expr);\n }\n\n\n switch (expr.type) {\n case \"varname\":\n return new FluentSymbol(expr.name);\n case \"num\":\n return new FluentNumber(expr.val);\n case \"ext\":\n return ExternalArgument(env, expr);\n case \"fun\":\n return FunctionReference(env, expr);\n case \"call\":\n return CallExpression(env, expr);\n case \"ref\": {\n const message = MessageReference(env, expr);\n return Type(env, message);\n }\n case \"attr\": {\n const attr = AttributeExpression(env, expr);\n return Type(env, attr);\n }\n case \"var\": {\n const variant = VariantExpression(env, expr);\n return Type(env, variant);\n }\n case \"sel\": {\n const member = SelectExpression(env, expr);\n return Type(env, member);\n }\n case undefined: {\n // If it's a node with a value, resolve the value.\n if (expr.val !== null && expr.val !== undefined) {\n return Type(env, expr.val);\n }\n\n const { errors } = env;\n errors.push(new RangeError(\"No value\"));\n return new FluentNone();\n }\n default:\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a reference to an external argument.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of an argument to be returned.\n * @returns {FluentType}\n * @private\n */\nfunction ExternalArgument(env, {name}) {\n const { args, errors } = env;\n\n if (!args || !args.hasOwnProperty(name)) {\n errors.push(new ReferenceError(`Unknown external: ${name}`));\n return new FluentNone(name);\n }\n\n const arg = args[name];\n\n // Return early if the argument already is an instance of FluentType.\n if (arg instanceof FluentType) {\n return arg;\n }\n\n // Convert the argument to a Fluent type.\n switch (typeof arg) {\n case \"string\":\n return arg;\n case \"number\":\n return new FluentNumber(arg);\n case \"object\":\n if (arg instanceof Date) {\n return new FluentDateTime(arg);\n }\n default:\n errors.push(\n new TypeError(`Unsupported external type: ${name}, ${typeof arg}`)\n );\n return new FluentNone(name);\n }\n}\n\n/**\n * Resolve a reference to a function.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {String} expr.name\n * Name of the function to be returned.\n * @returns {Function}\n * @private\n */\nfunction FunctionReference(env, {name}) {\n // Some functions are built-in. Others may be provided by the runtime via\n // the `MessageContext` constructor.\n const { ctx: { _functions }, errors } = env;\n const func = _functions[name] || builtins[name];\n\n if (!func) {\n errors.push(new ReferenceError(`Unknown function: ${name}()`));\n return new FluentNone(`${name}()`);\n }\n\n if (typeof func !== \"function\") {\n errors.push(new TypeError(`Function ${name}() is not callable`));\n return new FluentNone(`${name}()`);\n }\n\n return func;\n}\n\n/**\n * Resolve a call to a Function with positional and key-value arguments.\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Object} expr\n * An expression to be resolved.\n * @param {Object} expr.fun\n * FTL Function object.\n * @param {Array} expr.args\n * FTL Function argument list.\n * @returns {FluentType}\n * @private\n */\nfunction CallExpression(env, {fun, args}) {\n const callee = FunctionReference(env, fun);\n\n if (callee instanceof FluentNone) {\n return callee;\n }\n\n const posargs = [];\n const keyargs = {};\n\n for (const arg of args) {\n if (arg.type === \"narg\") {\n keyargs[arg.name] = Type(env, arg.val);\n } else {\n posargs.push(Type(env, arg));\n }\n }\n\n try {\n return callee(posargs, keyargs);\n } catch (e) {\n // XXX Report errors.\n return new FluentNone();\n }\n}\n\n/**\n * Resolve a pattern (a complex string with placeables).\n *\n * @param {Object} env\n * Resolver environment object.\n * @param {Array} ptn\n * Array of pattern elements.\n * @returns {Array}\n * @private\n */\nfunction Pattern(env, ptn) {\n const { ctx, dirty, errors } = env;\n\n if (dirty.has(ptn)) {\n errors.push(new RangeError(\"Cyclic reference\"));\n return new FluentNone();\n }\n\n // Tag the pattern as dirty for the purpose of the current resolution.\n dirty.add(ptn);\n const result = [];\n\n // Wrap interpolations with Directional Isolate Formatting characters\n // only when the pattern has more than one element.\n const useIsolating = ctx._useIsolating && ptn.length > 1;\n\n for (const elem of ptn) {\n if (typeof elem === \"string\") {\n result.push(elem);\n continue;\n }\n\n const part = Type(env, elem).toString(ctx);\n\n if (useIsolating) {\n result.push(FSI);\n }\n\n if (part.length > MAX_PLACEABLE_LENGTH) {\n errors.push(\n new RangeError(\n \"Too many characters in placeable \" +\n `(${part.length}, max allowed is ${MAX_PLACEABLE_LENGTH})`\n )\n );\n result.push(part.slice(MAX_PLACEABLE_LENGTH));\n } else {\n result.push(part);\n }\n\n if (useIsolating) {\n result.push(PDI);\n }\n }\n\n dirty.delete(ptn);\n return result.join(\"\");\n}\n\n/**\n * Format a translation into a string.\n *\n * @param {MessageContext} ctx\n * A MessageContext instance which will be used to resolve the\n * contextual information of the message.\n * @param {Object} args\n * List of arguments provided by the developer which can be accessed\n * from the message.\n * @param {Object} message\n * An object with the Message to be resolved.\n * @param {Array} errors\n * An error array that any encountered errors will be appended to.\n * @returns {FluentType}\n */\nexport default function resolve(ctx, args, message, errors = []) {\n const env = {\n ctx, args, errors, dirty: new WeakSet()\n };\n return Type(env, message).toString(ctx);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/resolver.js","import resolve from \"./resolver\";\nimport parse from \"./parser\";\n\n/**\n * Message contexts are single-language stores of translations. They are\n * responsible for parsing translation resources in the Fluent syntax and can\n * format translation units (entities) to strings.\n *\n * Always use `MessageContext.format` to retrieve translation units from\n * a context. Translations can contain references to other entities or\n * external arguments, conditional logic in form of select expressions, traits\n * which describe their grammatical features, and can use Fluent builtins which\n * make use of the `Intl` formatters to format numbers, dates, lists and more\n * into the context's language. See the documentation of the Fluent syntax for\n * more information.\n */\nexport class MessageContext {\n\n /**\n * Create an instance of `MessageContext`.\n *\n * The `locales` argument is used to instantiate `Intl` formatters used by\n * translations. The `options` object can be used to configure the context.\n *\n * Examples:\n *\n * const ctx = new MessageContext(locales);\n *\n * const ctx = new MessageContext(locales, { useIsolating: false });\n *\n * const ctx = new MessageContext(locales, {\n * useIsolating: true,\n * functions: {\n * NODE_ENV: () => process.env.NODE_ENV\n * }\n * });\n *\n * Available options:\n *\n * - `functions` - an object of additional functions available to\n * translations as builtins.\n *\n * - `useIsolating` - boolean specifying whether to use Unicode isolation\n * marks (FSI, PDI) for bidi interpolations.\n *\n * @param {string|Array<string>} locales - Locale or locales of the context\n * @param {Object} [options]\n * @returns {MessageContext}\n */\n constructor(locales, { functions = {}, useIsolating = true } = {}) {\n this.locales = Array.isArray(locales) ? locales : [locales];\n\n this._terms = new Map();\n this._messages = new Map();\n this._functions = functions;\n this._useIsolating = useIsolating;\n this._intls = new WeakMap();\n }\n\n /*\n * Return an iterator over public `[id, message]` pairs.\n *\n * @returns {Iterator}\n */\n get messages() {\n return this._messages[Symbol.iterator]();\n }\n\n /*\n * Check if a message is present in the context.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {bool}\n */\n hasMessage(id) {\n return this._messages.has(id);\n }\n\n /*\n * Return the internal representation of a message.\n *\n * The internal representation should only be used as an argument to\n * `MessageContext.format`.\n *\n * @param {string} id - The identifier of the message to check.\n * @returns {Any}\n */\n getMessage(id) {\n return this._messages.get(id);\n }\n\n /**\n * Add a translation resource to the context.\n *\n * The translation resource must use the Fluent syntax. It will be parsed by\n * the context and each translation unit (message) will be available in the\n * context by its identifier.\n *\n * ctx.addMessages('foo = Foo');\n * ctx.getMessage('foo');\n *\n * // Returns a raw representation of the 'foo' message.\n *\n * Parsed entities should be formatted with the `format` method in case they\n * contain logic (references, select expressions etc.).\n *\n * @param {string} source - Text resource with translations.\n * @returns {Array<Error>}\n */\n addMessages(source) {\n const [entries, errors] = parse(source);\n for (const id in entries) {\n if (id.startsWith(\"-\")) {\n // Identifiers starting with a dash (-) define terms. Terms are private\n // and cannot be retrieved from MessageContext.\n if (this._terms.has(id)) {\n errors.push(`Attempt to override an existing term: \"${id}\"`);\n continue;\n }\n this._terms.set(id, entries[id]);\n } else {\n if (this._messages.has(id)) {\n errors.push(`Attempt to override an existing message: \"${id}\"`);\n continue;\n }\n this._messages.set(id, entries[id]);\n }\n }\n\n return errors;\n }\n\n /**\n * Format a message to a string or null.\n *\n * Format a raw `message` from the context into a string (or a null if it has\n * a null value). `args` will be used to resolve references to external\n * arguments inside of the translation.\n *\n * In case of errors `format` will try to salvage as much of the translation\n * as possible and will still return a string. For performance reasons, the\n * encountered errors are not returned but instead are appended to the\n * `errors` array passed as the third argument.\n *\n * const errors = [];\n * ctx.addMessages('hello = Hello, { $name }!');\n * const hello = ctx.getMessage('hello');\n * ctx.format(hello, { name: 'Jane' }, errors);\n *\n * // Returns 'Hello, Jane!' and `errors` is empty.\n *\n * ctx.format(hello, undefined, errors);\n *\n * // Returns 'Hello, name!' and `errors` is now:\n *\n * [<ReferenceError: Unknown external: name>]\n *\n * @param {Object | string} message\n * @param {Object | undefined} args\n * @param {Array} errors\n * @returns {?string}\n */\n format(message, args, errors) {\n // optimize entities which are simple strings with no attributes\n if (typeof message === \"string\") {\n return message;\n }\n\n // optimize simple-string entities with attributes\n if (typeof message.val === \"string\") {\n return message.val;\n }\n\n // optimize entities with null values\n if (message.val === undefined) {\n return null;\n }\n\n return resolve(this, args, message, errors);\n }\n\n _memoizeIntlObject(ctor, opts) {\n const cache = this._intls.get(ctor) || {};\n const id = JSON.stringify(opts);\n\n if (!cache[id]) {\n cache[id] = new ctor(this.locales, opts);\n this._intls.set(ctor, cache);\n }\n\n return cache[id];\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/context.js","/*\n * CachedIterable caches the elements yielded by an iterable.\n *\n * It can be used to iterate over an iterable many times without depleting the\n * iterable.\n */\nexport default class CachedIterable {\n /**\n * Create an `CachedIterable` instance.\n *\n * @param {Iterable} iterable\n * @returns {CachedIterable}\n */\n constructor(iterable) {\n if (Symbol.asyncIterator in Object(iterable)) {\n this.iterator = iterable[Symbol.asyncIterator]();\n } else if (Symbol.iterator in Object(iterable)) {\n this.iterator = iterable[Symbol.iterator]();\n } else {\n throw new TypeError(\"Argument must implement the iteration protocol.\");\n }\n\n this.seen = [];\n }\n\n [Symbol.iterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n next() {\n if (seen.length <= cur) {\n seen.push(iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n [Symbol.asyncIterator]() {\n const { seen, iterator } = this;\n let cur = 0;\n\n return {\n async next() {\n if (seen.length <= cur) {\n seen.push(await iterator.next());\n }\n return seen[cur++];\n }\n };\n }\n\n /**\n * This method allows user to consume the next element from the iterator\n * into the cache.\n */\n touchNext() {\n const { seen, iterator } = this;\n if (seen.length === 0 || seen[seen.length - 1].done === false) {\n seen.push(iterator.next());\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/cached_iterable.js","/*\n * @overview\n *\n * Functions for managing ordered sequences of MessageContexts.\n *\n * An ordered iterable of MessageContext instances can represent the current\n * negotiated fallback chain of languages. This iterable can be used to find\n * the best existing translation for a given identifier.\n *\n * The mapContext* methods can be used to find the first MessageContext in the\n * given iterable which contains the translation with the given identifier. If\n * the iterable is ordered according to the result of a language negotiation\n * the returned MessageContext contains the best available translation.\n *\n * A simple function which formats translations based on the identifier might\n * be implemented as follows:\n *\n * formatString(id, args) {\n * const ctx = mapContextSync(contexts, id);\n *\n * if (ctx === null) {\n * return id;\n * }\n *\n * const msg = ctx.getMessage(id);\n * return ctx.format(msg, args);\n * }\n *\n * In order to pass an iterator to mapContext*, wrap it in CachedIterable.\n * This allows multiple calls to mapContext* without advancing and eventually\n * depleting the iterator.\n *\n * function *generateMessages() {\n * // Some lazy logic for yielding MessageContexts.\n * yield *[ctx1, ctx2];\n * }\n *\n * const contexts = new CachedIterable(generateMessages());\n * const ctx = mapContextSync(contexts, id);\n *\n */\n\n/*\n * Synchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {Iterable} iterable\n * @param {string|Array<string>} ids\n * @returns {MessageContext|Array<MessageContext>}\n */\nexport function mapContextSync(iterable, ids) {\n if (!Array.isArray(ids)) {\n return getContextForId(iterable, ids);\n }\n\n return ids.map(\n id => getContextForId(iterable, id)\n );\n}\n\n/*\n * Find the best `MessageContext` with the translation for `id`.\n */\nfunction getContextForId(iterable, id) {\n for (const context of iterable) {\n if (context.hasMessage(id)) {\n return context;\n }\n }\n\n return null;\n}\n\n/*\n * Asynchronously map an identifier or an array of identifiers to the best\n * `MessageContext` instance(s).\n *\n * @param {AsyncIterable} iterable\n * @param {string|Array<string>} ids\n * @returns {Promise<MessageContext|Array<MessageContext>>}\n */\nexport async function mapContextAsync(iterable, ids) {\n if (!Array.isArray(ids)) {\n for await (const context of iterable) {\n if (context.hasMessage(ids)) {\n return context;\n }\n }\n }\n\n let remainingCount = ids.length;\n const foundContexts = new Array(remainingCount).fill(null);\n\n for await (const context of iterable) {\n // XXX Switch to const [index, id] of id.entries() when we move to Babel 7.\n // See https://github.com/babel/babel/issues/5880.\n for (let index = 0; index < ids.length; index++) {\n const id = ids[index];\n if (!foundContexts[index] && context.hasMessage(id)) {\n foundContexts[index] = context;\n remainingCount--;\n }\n\n // Return early when all ids have been mapped to contexts.\n if (remainingCount === 0) {\n return foundContexts;\n }\n }\n }\n\n return foundContexts;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/fallback.js","function nonBlank(line) {\n return !/^\\s*$/.test(line);\n}\n\nfunction countIndent(line) {\n const [indent] = line.match(/^\\s*/);\n return indent.length;\n}\n\n/**\n * Template literal tag for dedenting FTL code.\n *\n * Strip the common indent of non-blank lines. Remove blank lines.\n *\n * @param {Array<string>} strings\n */\nexport function ftl(strings) {\n const [code] = strings;\n const lines = code.split(\"\\n\").filter(nonBlank);\n const indents = lines.map(countIndent);\n const common = Math.min(...indents);\n const indent = new RegExp(`^\\\\s{${common}}`);\n\n return lines.map(\n line => line.replace(indent, \"\")\n ).join(\"\\n\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/util.js","/*\n * @module fluent\n * @overview\n *\n * `fluent` is a JavaScript implementation of Project Fluent, a localization\n * framework designed to unleash the expressive power of the natural language.\n *\n */\n\nexport { default as _parse } from \"./parser\";\n\nexport { MessageContext } from \"./context\";\nexport {\n FluentType as MessageArgument,\n FluentNumber as MessageNumberArgument,\n FluentDateTime as MessageDateTimeArgument,\n} from \"./types\";\n\nexport { default as CachedIterable } from \"./cached_iterable\";\nexport { mapContextSync, mapContextAsync } from \"./fallback\";\n\nexport { ftl } from \"./util\";\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent/src/index.js","/* eslint-env mozilla/frame-script */\n\nimport {actionCreators as ac, actionTypes as at, actionUtils as au} from \"common/Actions.jsm\";\nimport {applyMiddleware, combineReducers, createStore} from \"redux\";\n\nexport const MERGE_STORE_ACTION = \"NEW_TAB_INITIAL_STATE\";\nexport const OUTGOING_MESSAGE_NAME = \"ActivityStream:ContentToMain\";\nexport const INCOMING_MESSAGE_NAME = \"ActivityStream:MainToContent\";\nexport const EARLY_QUEUED_ACTIONS = [at.SAVE_SESSION_PERF_DATA, at.PAGE_PRERENDERED];\n\n/**\n * A higher-order function which returns a reducer that, on MERGE_STORE action,\n * will return the action.data object merged into the previous state.\n *\n * For all other actions, it merely calls mainReducer.\n *\n * Because we want this to merge the entire state object, it's written as a\n * higher order function which takes the main reducer (itself often a call to\n * combineReducers) as a parameter.\n *\n * @param {function} mainReducer reducer to call if action != MERGE_STORE_ACTION\n * @return {function} a reducer that, on MERGE_STORE_ACTION action,\n * will return the action.data object merged\n * into the previous state, and the result\n * of calling mainReducer otherwise.\n */\nfunction mergeStateReducer(mainReducer) {\n return (prevState, action) => {\n if (action.type === MERGE_STORE_ACTION) {\n return {...prevState, ...action.data};\n }\n\n return mainReducer(prevState, action);\n };\n}\n\n/**\n * messageMiddleware - Middleware that looks for SentToMain type actions, and sends them if necessary\n */\nconst messageMiddleware = store => next => action => {\n const skipLocal = action.meta && action.meta.skipLocal;\n if (au.isSendToMain(action)) {\n sendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n }\n if (!skipLocal) {\n next(action);\n }\n};\n\nexport const rehydrationMiddleware = store => next => action => {\n if (store._didRehydrate) {\n return next(action);\n }\n\n const isMergeStoreAction = action.type === MERGE_STORE_ACTION;\n const isRehydrationRequest = action.type === at.NEW_TAB_STATE_REQUEST;\n\n if (isRehydrationRequest) {\n store._didRequestInitialState = true;\n return next(action);\n }\n\n if (isMergeStoreAction) {\n store._didRehydrate = true;\n return next(action);\n }\n\n // If init happened after our request was made, we need to re-request\n if (store._didRequestInitialState && action.type === at.INIT) {\n return next(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n }\n\n if (au.isBroadcastToContent(action) || au.isSendToOneContent(action) || au.isSendToPreloaded(action)) {\n // Note that actions received before didRehydrate will not be dispatched\n // because this could negatively affect preloading and the the state\n // will be replaced by rehydration anyway.\n return null;\n }\n\n return next(action);\n};\n\n/**\n * This middleware queues up all the EARLY_QUEUED_ACTIONS until it receives\n * the first action from main. This is useful for those actions for main which\n * require higher reliability, i.e. the action will not be lost in the case\n * that it gets sent before the main is ready to receive it. Conversely, any\n * actions allowed early are accepted to be ignorable or re-sendable.\n */\nexport const queueEarlyMessageMiddleware = store => next => action => {\n if (store._receivedFromMain) {\n next(action);\n } else if (au.isFromMain(action)) {\n next(action);\n store._receivedFromMain = true;\n // Sending out all the early actions as main is ready now\n if (store._earlyActionQueue) {\n store._earlyActionQueue.forEach(next);\n store._earlyActionQueue = [];\n }\n } else if (EARLY_QUEUED_ACTIONS.includes(action.type)) {\n store._earlyActionQueue = store._earlyActionQueue || [];\n store._earlyActionQueue.push(action);\n } else {\n // Let any other type of action go through\n next(action);\n }\n};\n\n/**\n * initStore - Create a store and listen for incoming actions\n *\n * @param {object} reducers An object containing Redux reducers\n * @param {object} intialState (optional) The initial state of the store, if desired\n * @return {object} A redux store\n */\nexport function initStore(reducers, initialState) {\n const store = createStore(\n mergeStateReducer(combineReducers(reducers)),\n initialState,\n global.addMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.addMessageListener) {\n global.addMessageListener(INCOMING_MESSAGE_NAME, msg => {\n try {\n store.dispatch(msg.data);\n } catch (ex) {\n console.error(\"Content msg:\", msg, \"Dispatch error: \", ex); // eslint-disable-line no-console\n dump(`Content msg: ${JSON.stringify(msg)}\\nDispatch error: ${ex}\\n${ex.stack}`);\n }\n });\n }\n\n return store;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/init-store.js","module.exports = ReactDOM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ReactDOM\"\n// module id = 12\n// module chunks = 0","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class ErrorBoundaryFallback extends React.PureComponent {\n constructor(props) {\n super(props);\n this.windowObj = this.props.windowObj || window;\n this.onClick = this.onClick.bind(this);\n }\n\n /**\n * Since we only get here if part of the page has crashed, do a\n * forced reload to give us the best chance at recovering.\n */\n onClick() {\n this.windowObj.location.reload(true);\n }\n\n render() {\n const defaultClass = \"as-error-fallback\";\n let className;\n if (\"className\" in this.props) {\n className = `${this.props.className} ${defaultClass}`;\n } else {\n className = defaultClass;\n }\n\n // href=\"#\" to force normal link styling stuff (eg cursor on hover)\n return (\n <div className={className}>\n <div>\n <FormattedMessage\n defaultMessage=\"Oops, something went wrong loading this content.\"\n id=\"error_fallback_default_info\" />\n </div>\n <span>\n <a href=\"#\" className=\"reload-button\" onClick={this.onClick}>\n <FormattedMessage\n defaultMessage=\"Refresh page to try again.\"\n id=\"error_fallback_default_refresh_suggestion\" />\n </a>\n </span>\n </div>\n );\n }\n}\nErrorBoundaryFallback.defaultProps = {className: \"as-error-fallback\"};\n\nexport class ErrorBoundary extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {hasError: false};\n }\n\n componentDidCatch(error, info) {\n this.setState({hasError: true});\n }\n\n render() {\n if (!this.state.hasError) {\n return (this.props.children);\n }\n\n return <this.props.FallbackComponent className={this.props.className} />;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ErrorBoundary/ErrorBoundary.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\nconst _OpenInPrivateWindow = site => ({\n id: \"menu_action_open_private_window\",\n icon: \"new-window-private\",\n action: ac.OnlyToMain({\n type: at.OPEN_PRIVATE_WINDOW,\n data: {url: site.url, referrer: site.referrer}\n }),\n userEvent: \"OPEN_PRIVATE_WINDOW\"\n});\n\nexport const GetPlatformString = platform => {\n switch (platform) {\n case \"win\":\n return \"menu_action_show_file_windows\";\n case \"macosx\":\n return \"menu_action_show_file_mac_os\";\n case \"linux\":\n return \"menu_action_show_file_linux\";\n default:\n return \"menu_action_show_file_default\";\n }\n};\n\n/**\n * List of functions that return items that can be included as menu options in a\n * LinkMenu. All functions take the site as the first parameter, and optionally\n * the index of the site.\n */\nexport const LinkMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n EmptyItem: () => ({type: \"empty\"}),\n RemoveBookmark: site => ({\n id: \"menu_action_remove_bookmark\",\n icon: \"bookmark-added\",\n action: ac.AlsoToMain({\n type: at.DELETE_BOOKMARK_BY_ID,\n data: site.bookmarkGuid\n }),\n userEvent: \"BOOKMARK_DELETE\"\n }),\n AddBookmark: site => ({\n id: \"menu_action_bookmark\",\n icon: \"bookmark-hollow\",\n action: ac.AlsoToMain({\n type: at.BOOKMARK_URL,\n data: {url: site.url, title: site.title, type: site.type}\n }),\n userEvent: \"BOOKMARK_ADD\"\n }),\n OpenInNewWindow: site => ({\n id: \"menu_action_open_new_window\",\n icon: \"new-window\",\n action: ac.AlsoToMain({\n type: at.OPEN_NEW_WINDOW,\n data: {\n referrer: site.referrer,\n typedBonus: site.typedBonus,\n url: site.url\n }\n }),\n userEvent: \"OPEN_NEW_WINDOW\"\n }),\n BlockUrl: (site, index, eventSource) => ({\n id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.AlsoToMain({\n type: at.BLOCK_URL,\n data: {url: site.url, pocket_id: site.pocket_id}\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n block: 0,\n tiles: [{id: site.guid, pos: index}]\n }),\n userEvent: \"BLOCK\"\n }),\n\n // This is an option for web extentions which will result in remove items from\n // memory and notify the web extenion, rather than using the built-in block list.\n WebExtDismiss: (site, index, eventSource) => ({\n id: \"menu_action_webext_dismiss\",\n string_id: \"menu_action_dismiss\",\n icon: \"dismiss\",\n action: ac.WebExtEvent(at.WEBEXT_DISMISS, {\n source: eventSource,\n url: site.url,\n action_position: index\n })\n }),\n DeleteUrl: (site, index, eventSource, isEnabled, siteInfo) => ({\n id: \"menu_action_delete\",\n icon: \"delete\",\n action: {\n type: at.DIALOG_OPEN,\n data: {\n onConfirm: [\n ac.AlsoToMain({type: at.DELETE_HISTORY_URL, data: {url: site.url, pocket_id: site.pocket_id, forceBlock: site.bookmarkGuid}}),\n ac.UserEvent(Object.assign({event: \"DELETE\", source: eventSource, action_position: index}, siteInfo))\n ],\n eventSource,\n body_string_id: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n confirm_button_string_id: \"menu_action_delete\",\n cancel_button_string_id: \"topsites_form_cancel_button\",\n icon: \"modal-delete\"\n }\n },\n userEvent: \"DIALOG_OPEN\"\n }),\n ShowFile: (site, index, eventSource, isEnabled, siteInfo, platform) => ({\n id: GetPlatformString(platform),\n icon: \"search\",\n action: ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n OpenFile: site => ({\n id: \"menu_action_open_file\",\n icon: \"open-file\",\n action: ac.OnlyToMain({\n type: at.OPEN_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n CopyDownloadLink: site => ({\n id: \"menu_action_copy_download_link\",\n icon: \"copy\",\n action: ac.OnlyToMain({\n type: at.COPY_DOWNLOAD_LINK,\n data: {url: site.url}\n })\n }),\n GoToDownloadPage: site => ({\n id: \"menu_action_go_to_download_page\",\n icon: \"download\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: site.referrer}\n }),\n disabled: !site.referrer\n }),\n RemoveDownload: site => ({\n id: \"menu_action_remove_download\",\n icon: \"delete\",\n action: ac.OnlyToMain({\n type: at.REMOVE_DOWNLOAD_FILE,\n data: {url: site.url}\n })\n }),\n PinTopSite: (site, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site: {url: site.url}, index}\n }),\n userEvent: \"PIN\"\n }),\n UnpinTopSite: site => ({\n id: \"menu_action_unpin\",\n icon: \"unpin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_UNPIN,\n data: {site: {url: site.url}}\n }),\n userEvent: \"UNPIN\"\n }),\n SaveToPocket: (site, index, eventSource) => ({\n id: \"menu_action_save_to_pocket\",\n icon: \"pocket\",\n action: ac.AlsoToMain({\n type: at.SAVE_TO_POCKET,\n data: {site: {url: site.url, title: site.title}}\n }),\n impression: ac.ImpressionStats({\n source: eventSource,\n pocket: 0,\n tiles: [{id: site.guid, pos: index}]\n }),\n userEvent: \"SAVE_TO_POCKET\"\n }),\n DeleteFromPocket: site => ({\n id: \"menu_action_delete_pocket\",\n icon: \"delete\",\n action: ac.AlsoToMain({\n type: at.DELETE_FROM_POCKET,\n data: {pocket_id: site.pocket_id}\n }),\n userEvent: \"DELETE_FROM_POCKET\"\n }),\n ArchiveFromPocket: site => ({\n id: \"menu_action_archive_pocket\",\n icon: \"check\",\n action: ac.AlsoToMain({\n type: at.ARCHIVE_FROM_POCKET,\n data: {pocket_id: site.pocket_id}\n }),\n userEvent: \"ARCHIVE_FROM_POCKET\"\n }),\n EditTopSite: (site, index) => ({\n id: \"edit_topsites_button_text\",\n icon: \"edit\",\n action: {\n type: at.TOP_SITES_EDIT,\n data: {index}\n }\n }),\n CheckBookmark: site => (site.bookmarkGuid ? LinkMenuOptions.RemoveBookmark(site) : LinkMenuOptions.AddBookmark(site)),\n CheckPinTopSite: (site, index) => (site.isPinned ? LinkMenuOptions.UnpinTopSite(site) : LinkMenuOptions.PinTopSite(site, index)),\n CheckSavedToPocket: (site, index) => (site.pocket_id ? LinkMenuOptions.DeleteFromPocket(site) : LinkMenuOptions.SaveToPocket(site, index)),\n CheckBookmarkOrArchive: site => (site.pocket_id ? LinkMenuOptions.ArchiveFromPocket(site) : LinkMenuOptions.CheckBookmark(site)),\n OpenInPrivateWindow: (site, index, eventSource, isEnabled) => (isEnabled ? _OpenInPrivateWindow(site) : LinkMenuOptions.EmptyItem())\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/link-menu-options.js","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport {LinkMenuOptions} from \"content-src/lib/link-menu-options\";\nimport React from \"react\";\n\nconst DEFAULT_SITE_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\", \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\"];\n\nexport class _LinkMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n const {site, index, source, isPrivateBrowsingEnabled, siteInfo, platform} = props;\n\n // Handle special case of default site\n const propOptions = !site.isDefault ? props.options : DEFAULT_SITE_MENU_OPTIONS;\n\n const options = propOptions.map(o => LinkMenuOptions[o](site, index, source, isPrivateBrowsingEnabled, siteInfo, platform)).map(option => {\n const {action, impression, id, string_id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id: string_id || id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n const userEventData = Object.assign({\n event: userEvent,\n source,\n action_position: index\n }, siteInfo);\n props.dispatch(ac.UserEvent(userEventData));\n }\n if (impression && props.shouldSendImpressionStats) {\n props.dispatch(impression);\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return (<ContextMenu\n onUpdate={this.props.onUpdate}\n options={this.getOptions()} />);\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/LinkMenu/LinkMenu.jsx","import React from \"react\";\n\nexport class ContextMenu extends React.PureComponent {\n constructor(props) {\n super(props);\n this.hideContext = this.hideContext.bind(this);\n this.onClick = this.onClick.bind(this);\n }\n\n hideContext() {\n this.props.onUpdate(false);\n }\n\n componentDidMount() {\n setTimeout(() => {\n global.addEventListener(\"click\", this.hideContext);\n }, 0);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"click\", this.hideContext);\n }\n\n onClick(event) {\n // Eat all clicks on the context menu so they don't bubble up to window.\n // This prevents the context menu from closing when clicking disabled items\n // or the separators.\n event.stopPropagation();\n }\n\n render() {\n return (<span className=\"context-menu\" onClick={this.onClick}>\n <ul role=\"menu\" className=\"context-menu-list\">\n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n (<li key={i} className=\"separator\" />) :\n (option.type !== \"empty\" && <ContextMenuItem key={i} option={option} hideContext={this.hideContext} />)\n ))}\n </ul>\n </span>);\n }\n}\n\nexport class ContextMenuItem extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n }\n\n onClick() {\n this.props.hideContext();\n this.props.option.onClick();\n }\n\n onKeyDown(event) {\n const {option} = this.props;\n switch (event.key) {\n case \"Tab\":\n // tab goes down in context menu, shift + tab goes up in context menu\n // if we're on the last item, one more tab will close the context menu\n // similarly, if we're on the first item, one more shift + tab will close it\n if ((event.shiftKey && option.first) || (!event.shiftKey && option.last)) {\n this.props.hideContext();\n }\n break;\n case \"Enter\":\n this.props.hideContext();\n option.onClick();\n break;\n }\n }\n\n render() {\n const {option} = this.props;\n return (\n <li role=\"menuitem\" className=\"context-menu-item\">\n <a onClick={this.onClick} onKeyDown={this.onKeyDown} tabIndex=\"0\" className={option.disabled ? \"disabled\" : \"\"}>\n {option.icon && <span className={`icon icon-spacer icon-${option.icon}`} />}\n {option.label}\n </a>\n </li>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ContextMenu/ContextMenu.jsx","/**\n * List of helper functions for screenshot-based images.\n *\n * There are two kinds of images:\n * 1. Remote Image: This is the image from the main process and it refers to\n * the image in the React props. This can either be an object with the `data`\n * and `path` properties, if it is a blob, or a string, if it is a normal image.\n * 2. Local Image: This is the image object in the content process and it refers\n * to the image *object* in the React component's state. All local image\n * objects have the `url` property, and an additional property `path`, if they\n * are blobs.\n */\nexport const ScreenshotUtils = {\n isBlob(isLocal, image) {\n return !!(image && image.path && ((!isLocal && image.data) || (isLocal && image.url)));\n },\n\n // This should always be called with a remote image and not a local image.\n createLocalImageObject(remoteImage) {\n if (!remoteImage) {\n return null;\n }\n if (this.isBlob(false, remoteImage)) {\n return {url: global.URL.createObjectURL(remoteImage.data), path: remoteImage.path};\n }\n return {url: remoteImage};\n },\n\n // Revokes the object URL of the image if the local image is a blob.\n // This should always be called with a local image and not a remote image.\n maybeRevokeBlobObjectURL(localImage) {\n if (this.isBlob(true, localImage)) {\n global.URL.revokeObjectURL(localImage.url);\n }\n },\n\n // Checks if remoteImage and localImage are the same.\n isRemoteImageLocal(localImage, remoteImage) {\n // Both remoteImage and localImage are present.\n if (remoteImage && localImage) {\n return this.isBlob(false, remoteImage) ?\n localImage.path === remoteImage.path :\n localImage.url === remoteImage;\n }\n\n // This will only handle the remaining three possible outcomes.\n // (i.e. everything except when both image and localImage are present)\n return !remoteImage && !localImage;\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/screenshot-utils.js","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport React from \"react\";\nimport {SectionMenu} from \"content-src/components/SectionMenu/SectionMenu\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Disclaimer extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onAcknowledge = this.onAcknowledge.bind(this);\n }\n\n onAcknowledge() {\n this.props.dispatch(ac.SetPref(this.props.disclaimerPref, false));\n this.props.dispatch(ac.UserEvent({event: \"DISCLAIMER_ACKED\", source: this.props.eventSource}));\n }\n\n render() {\n const {disclaimer} = this.props;\n return (\n <div className=\"section-disclaimer\">\n <div className=\"section-disclaimer-text\">\n {getFormattedMessage(disclaimer.text)}\n {disclaimer.link &&\n <a href={disclaimer.link.href} target=\"_blank\" rel=\"noopener noreferrer\">\n {getFormattedMessage(disclaimer.link.title || disclaimer.link)}\n </a>\n }\n </div>\n\n <button onClick={this.onAcknowledge}>\n {getFormattedMessage(disclaimer.button)}\n </button>\n </div>\n );\n }\n}\n\nexport const DisclaimerIntl = injectIntl(Disclaimer);\n\nexport class _CollapsibleSection extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBodyMount = this.onBodyMount.bind(this);\n this.onHeaderClick = this.onHeaderClick.bind(this);\n this.onTransitionEnd = this.onTransitionEnd.bind(this);\n this.enableOrDisableAnimation = this.enableOrDisableAnimation.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuButtonMouseEnter = this.onMenuButtonMouseEnter.bind(this);\n this.onMenuButtonMouseLeave = this.onMenuButtonMouseLeave.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.state = {enableAnimation: true, isAnimating: false, menuButtonHover: false, showContextMenu: false};\n }\n\n componentWillMount() {\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n componentWillUpdate(nextProps) {\n // Check if we're about to go from expanded to collapsed\n if (!this.props.collapsed && nextProps.collapsed) {\n // This next line forces a layout flush of the section body, which has a\n // max-height style set, so that the upcoming collapse animation can\n // animate from that height to the collapsed height. Without this, the\n // update is coalesced and there's no animation from no-max-height to 0.\n this.sectionBody.scrollHeight; // eslint-disable-line no-unused-expressions\n }\n }\n\n componentWillUnmount() {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this.enableOrDisableAnimation);\n }\n\n enableOrDisableAnimation() {\n // Only animate the collapse/expand for visible tabs.\n const visible = this.props.document.visibilityState === VISIBLE;\n if (this.state.enableAnimation !== visible) {\n this.setState({enableAnimation: visible});\n }\n }\n\n onBodyMount(node) {\n this.sectionBody = node;\n }\n\n onHeaderClick() {\n // If this.sectionBody is unset, it means that we're in some sort of error\n // state, probably displaying the error fallback, so we won't be able to\n // compute the height, and we don't want to persist the preference.\n // If props.collapsed is undefined handler shouldn't do anything.\n if (!this.sectionBody || this.props.collapsed === undefined) {\n return;\n }\n\n // Get the current height of the body so max-height transitions can work\n this.setState({\n isAnimating: true,\n maxHeight: `${this.sectionBody.scrollHeight}px`\n });\n const {action, userEvent} = SectionMenuOptions.CheckCollapsed(this.props);\n this.props.dispatch(action);\n this.props.dispatch(ac.UserEvent({\n event: userEvent,\n source: this.props.source\n }));\n }\n\n onTransitionEnd(event) {\n // Only update the animating state for our own transition (not a child's)\n if (event.target === event.currentTarget) {\n this.setState({isAnimating: false});\n }\n }\n\n renderIcon() {\n const {icon} = this.props;\n if (icon && icon.startsWith(\"moz-extension://\")) {\n return <span className=\"icon icon-small-spacer\" style={{backgroundImage: `url('${icon}')`}} />;\n }\n return <span className={`icon icon-small-spacer icon-${icon || \"webextension\"}`} />;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({showContextMenu: true});\n }\n\n onMenuButtonMouseEnter() {\n this.setState({menuButtonHover: true});\n }\n\n onMenuButtonMouseLeave() {\n this.setState({menuButtonHover: false});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const isCollapsible = this.props.collapsed !== undefined;\n const {enableAnimation, isAnimating, maxHeight, menuButtonHover, showContextMenu} = this.state;\n const {id, eventSource, collapsed, disclaimer, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const disclaimerPref = `section.${id}.showDisclaimer`;\n const needsDisclaimer = disclaimer && this.props.Prefs.values[disclaimerPref];\n const active = menuButtonHover || showContextMenu;\n return (\n <section\n className={`collapsible-section ${this.props.className}${enableAnimation ? \" animation-enabled\" : \"\"}${collapsed ? \" collapsed\" : \"\"}${active ? \" active\" : \"\"}`}\n // Note: data-section-id is used for web extension api tests in mozilla central\n data-section-id={id}>\n <div className=\"section-top-bar\">\n <h3 className=\"section-title\">\n <span className=\"click-target\" onClick={this.onHeaderClick}>\n {this.renderIcon()}\n {getFormattedMessage(title)}\n {isCollapsible && <span className={`collapsible-arrow icon ${collapsed ? \"icon-arrowhead-forward-small\" : \"icon-arrowhead-down-small\"}`} />}\n </span>\n </h3>\n <div>\n <button\n className=\"context-menu-button icon\"\n onClick={this.onMenuButtonClick}\n onMouseEnter={this.onMenuButtonMouseEnter}\n onMouseLeave={this.onMenuButtonMouseLeave}>\n <span className=\"sr-only\">\n <FormattedMessage id=\"section_context_menu_button_sr\" />\n </span>\n </button>\n {showContextMenu &&\n <SectionMenu\n id={id}\n extraOptions={extraMenuOptions}\n eventSource={eventSource}\n showPrefName={showPrefName}\n privacyNoticeURL={privacyNoticeURL}\n collapsed={collapsed}\n onUpdate={this.onMenuUpdate}\n isFirst={isFirst}\n isLast={isLast}\n dispatch={dispatch}\n isWebExtension={isWebExtension} />\n }\n </div>\n </div>\n <ErrorBoundary className=\"section-body-fallback\">\n <div\n className={`section-body${isAnimating ? \" animating\" : \"\"}`}\n onTransitionEnd={this.onTransitionEnd}\n ref={this.onBodyMount}\n style={isAnimating && !collapsed ? {maxHeight} : null}>\n {needsDisclaimer && <DisclaimerIntl disclaimerPref={disclaimerPref} disclaimer={disclaimer} eventSource={eventSource} dispatch={this.props.dispatch} />}\n {this.props.children}\n </div>\n </ErrorBoundary>\n </section>\n );\n }\n}\n\n_CollapsibleSection.defaultProps = {\n document: global.document || {\n addEventListener: () => {},\n removeEventListener: () => {},\n visibilityState: \"hidden\"\n },\n Prefs: {values: {}}\n};\n\nexport const CollapsibleSection = injectIntl(_CollapsibleSection);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/CollapsibleSection/CollapsibleSection.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\n\n/**\n * List of functions that return items that can be included as menu options in a\n * SectionMenu. All functions take the section as the only parameter.\n */\nexport const SectionMenuOptions = {\n Separator: () => ({type: \"separator\"}),\n MoveUp: section => ({\n id: \"section_menu_action_move_up\",\n icon: \"arrowhead-up\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: -1}\n }),\n userEvent: \"MENU_MOVE_UP\",\n disabled: !!section.isFirst\n }),\n MoveDown: section => ({\n id: \"section_menu_action_move_down\",\n icon: \"arrowhead-down\",\n action: ac.OnlyToMain({\n type: at.SECTION_MOVE,\n data: {id: section.id, direction: +1}\n }),\n userEvent: \"MENU_MOVE_DOWN\",\n disabled: !!section.isLast\n }),\n RemoveSection: section => ({\n id: \"section_menu_action_remove_section\",\n icon: \"dismiss\",\n action: ac.SetPref(section.showPrefName, false),\n userEvent: \"MENU_REMOVE\"\n }),\n CollapseSection: section => ({\n id: \"section_menu_action_collapse_section\",\n icon: \"minimize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: true}}}),\n userEvent: \"MENU_COLLAPSE\"\n }),\n ExpandSection: section => ({\n id: \"section_menu_action_expand_section\",\n icon: \"maximize\",\n action: ac.OnlyToMain({type: at.UPDATE_SECTION_PREFS, data: {id: section.id, value: {collapsed: false}}}),\n userEvent: \"MENU_EXPAND\"\n }),\n ManageSection: section => ({\n id: \"section_menu_action_manage_section\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.SETTINGS_OPEN}),\n userEvent: \"MENU_MANAGE\"\n }),\n ManageWebExtension: section => ({\n id: \"section_menu_action_manage_webext\",\n icon: \"settings\",\n action: ac.OnlyToMain({type: at.OPEN_WEBEXT_SETTINGS, data: section.id})\n }),\n AddTopSite: section => ({\n id: \"section_menu_action_add_topsite\",\n icon: \"add\",\n action: {type: at.TOP_SITES_EDIT, data: {index: -1}},\n userEvent: \"MENU_ADD_TOPSITE\"\n }),\n PrivacyNotice: section => ({\n id: \"section_menu_action_privacy_notice\",\n icon: \"info\",\n action: ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: {url: section.privacyNoticeURL}\n }),\n userEvent: \"MENU_PRIVACY_NOTICE\"\n }),\n CheckCollapsed: section => (section.collapsed ? SectionMenuOptions.ExpandSection(section) : SectionMenuOptions.CollapseSection(section))\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/section-menu-options.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\nimport React from \"react\";\n\n// Currently record only a fixed set of sections. This will prevent data\n// from custom sections from showing up or from topstories.\nconst RECORDED_SECTIONS = [\"highlights\", \"topsites\"];\n\nexport class ComponentPerfTimer extends React.Component {\n constructor(props) {\n super(props);\n // Just for test dependency injection:\n this.perfSvc = this.props.perfSvc || perfSvc;\n\n this._sendBadStateEvent = this._sendBadStateEvent.bind(this);\n this._sendPaintedEvent = this._sendPaintedEvent.bind(this);\n this._reportMissingData = false;\n this._timestampHandled = false;\n this._recordedFirstRender = false;\n }\n\n componentDidMount() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n componentDidUpdate() {\n if (!RECORDED_SECTIONS.includes(this.props.id)) {\n return;\n }\n\n this._maybeSendPaintedEvent();\n }\n\n /**\n * Call the given callback after the upcoming frame paints.\n *\n * @note Both setTimeout and requestAnimationFrame are throttled when the page\n * is hidden, so this callback may get called up to a second or so after the\n * requestAnimationFrame \"paint\" for hidden tabs.\n *\n * Newtabs hidden while loading will presumably be fairly rare (other than\n * preloaded tabs, which we will be filtering out on the server side), so such\n * cases should get lost in the noise.\n *\n * If we decide that it's important to find out when something that's hidden\n * has \"painted\", however, another option is to post a message to this window.\n * That should happen even faster than setTimeout, and, at least as of this\n * writing, it's not throttled in hidden windows in Firefox.\n *\n * @param {Function} callback\n *\n * @returns void\n */\n _afterFramePaint(callback) {\n requestAnimationFrame(() => setTimeout(callback, 0));\n }\n\n _maybeSendBadStateEvent() {\n // Follow up bugs:\n // https://github.com/mozilla/activity-stream/issues/3691\n if (!this.props.initialized) {\n // Remember to report back when data is available.\n this._reportMissingData = true;\n } else if (this._reportMissingData) {\n this._reportMissingData = false;\n // Report how long it took for component to become initialized.\n this._sendBadStateEvent();\n }\n }\n\n _maybeSendPaintedEvent() {\n // If we've already handled a timestamp, don't do it again.\n if (this._timestampHandled || !this.props.initialized) {\n return;\n }\n\n // And if we haven't, we're doing so now, so remember that. Even if\n // something goes wrong in the callback, we can't try again, as we'd be\n // sending back the wrong data, and we have to do it here, so that other\n // calls to this method while waiting for the next frame won't also try to\n // handle it.\n this._timestampHandled = true;\n this._afterFramePaint(this._sendPaintedEvent);\n }\n\n /**\n * Triggered by call to render. Only first call goes through due to\n * `_recordedFirstRender`.\n */\n _ensureFirstRenderTsRecorded() {\n // Used as t0 for recording how long component took to initialize.\n if (!this._recordedFirstRender) {\n this._recordedFirstRender = true;\n // topsites_first_render_ts, highlights_first_render_ts.\n const key = `${this.props.id}_first_render_ts`;\n this.perfSvc.mark(key);\n }\n }\n\n /**\n * Creates `TELEMETRY_UNDESIRED_EVENT` with timestamp in ms\n * of how much longer the data took to be ready for display than it would\n * have been the ideal case.\n * https://github.com/mozilla/ping-centre/issues/98\n */\n _sendBadStateEvent() {\n // highlights_data_ready_ts, topsites_data_ready_ts.\n const dataReadyKey = `${this.props.id}_data_ready_ts`;\n this.perfSvc.mark(dataReadyKey);\n\n try {\n const firstRenderKey = `${this.props.id}_first_render_ts`;\n // value has to be Int32.\n const value = parseInt(this.perfSvc.getMostRecentAbsMarkStartByName(dataReadyKey) -\n this.perfSvc.getMostRecentAbsMarkStartByName(firstRenderKey), 10);\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n // highlights_data_late_by_ms, topsites_data_late_by_ms.\n data: {[`${this.props.id}_data_late_by_ms`]: value}\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true.\n }\n }\n\n _sendPaintedEvent() {\n // Record first_painted event but only send if topsites.\n if (this.props.id !== \"topsites\") {\n return;\n }\n\n // topsites_first_painted_ts.\n const key = `${this.props.id}_first_painted_ts`;\n this.perfSvc.mark(key);\n\n try {\n const data = {};\n data[key] = this.perfSvc.getMostRecentAbsMarkStartByName(key);\n\n this.props.dispatch(ac.OnlyToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up, and should continue\n // to set this._timestampHandled to avoid going through this again.\n }\n }\n\n render() {\n if (RECORDED_SECTIONS.includes(this.props.id)) {\n this._ensureFirstRenderTsRecorded();\n this._maybeSendBadStateEvent();\n }\n return this.props.children;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","/* globals Services */\n\"use strict\";\n\n/* istanbul ignore if */\nif (typeof ChromeUtils !== \"undefined\") {\n ChromeUtils.import(\"resource://gre/modules/Services.jsm\");\n}\n\nlet usablePerfObj;\n\n/* istanbul ignore if */\n/* istanbul ignore else */\nif (typeof Services !== \"undefined\") {\n // Borrow the high-resolution timer from the hidden window....\n usablePerfObj = Services.appShell.hiddenDOMWindow.performance;\n} else if (typeof performance !== \"undefined\") {\n // we must be running in content space\n // eslint-disable-next-line no-undef\n usablePerfObj = performance;\n} else {\n // This is a dummy object so this file doesn't crash in the node prerendering\n // task.\n usablePerfObj = {\n now() {},\n mark() {}\n };\n}\n\nfunction _PerfService(options) {\n // For testing, so that we can use a fake Window.performance object with\n // known state.\n if (options && options.performanceObj) {\n this._perf = options.performanceObj;\n } else {\n this._perf = usablePerfObj;\n }\n}\n\n_PerfService.prototype = {\n /**\n * Calls the underlying mark() method on the appropriate Window.performance\n * object to add a mark with the given name to the appropriate performance\n * timeline.\n *\n * @param {String} name the name to give the current mark\n * @return {void}\n */\n mark: function mark(str) {\n this._perf.mark(str);\n },\n\n /**\n * Calls the underlying getEntriesByName on the appropriate Window.performance\n * object.\n *\n * @param {String} name\n * @param {String} type eg \"mark\"\n * @return {Array} Performance* objects\n */\n getEntriesByName: function getEntriesByName(name, type) {\n return this._perf.getEntriesByName(name, type);\n },\n\n /**\n * The timeOrigin property from the appropriate performance object.\n * Used to ensure that timestamps from the add-on code and the content code\n * are comparable.\n *\n * @note If this is called from a context without a window\n * (eg a JSM in chrome), it will return the timeOrigin of the XUL hidden\n * window, which appears to be the first created window (and thus\n * timeOrigin) in the browser. Note also, however, there is also a private\n * hidden window, presumably for private browsing, which appears to be\n * created dynamically later. Exactly how/when that shows up needs to be\n * investigated.\n *\n * @return {Number} A double of milliseconds with a precision of 0.5us.\n */\n get timeOrigin() {\n return this._perf.timeOrigin;\n },\n\n /**\n * Returns the \"absolute\" version of performance.now(), i.e. one that\n * should ([bug 1401406](https://bugzilla.mozilla.org/show_bug.cgi?id=1401406)\n * be comparable across both chrome and content.\n *\n * @return {Number}\n */\n absNow: function absNow() {\n return this.timeOrigin + this._perf.now();\n },\n\n /**\n * This returns the absolute startTime from the most recent performance.mark()\n * with the given name.\n *\n * @param {String} name the name to lookup the start time for\n *\n * @return {Number} the returned start time, as a DOMHighResTimeStamp\n *\n * @throws {Error} \"No Marks with the name ...\" if none are available\n *\n * @note Always surround calls to this by try/catch. Otherwise your code\n * may fail when the `privacy.resistFingerprinting` pref is true. When\n * this pref is set, all attempts to get marks will likely fail, which will\n * cause this method to throw.\n *\n * See [bug 1369303](https://bugzilla.mozilla.org/show_bug.cgi?id=1369303)\n * for more info.\n */\n getMostRecentAbsMarkStartByName(name) {\n let entries = this.getEntriesByName(name, \"mark\");\n\n if (!entries.length) {\n throw new Error(`No marks with the name ${name}`);\n }\n\n let mostRecentEntry = entries[entries.length - 1];\n return this._perf.timeOrigin + mostRecentEntry.startTime;\n }\n};\n\nthis.perfService = new _PerfService();\nconst EXPORTED_SYMBOLS = [\"_PerfService\", \"perfService\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/PerfService.jsm","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {\n MIN_CORNER_FAVICON_SIZE,\n MIN_RICH_FAVICON_SIZE,\n TOP_SITES_CONTEXT_MENU_OPTIONS,\n TOP_SITES_SOURCE\n} from \"./TopSitesConstants\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\n\nexport class TopSiteLink extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {screenshotImage: null};\n this.onDragEvent = this.onDragEvent.bind(this);\n }\n\n /*\n * Helper to determine whether the drop zone should allow a drop. We only allow\n * dropping top sites for now.\n */\n _allowDrop(e) {\n return e.dataTransfer.types.includes(\"text/topsite-index\");\n }\n\n onDragEvent(event) {\n switch (event.type) {\n case \"click\":\n // Stop any link clicks if we started any dragging\n if (this.dragged) {\n event.preventDefault();\n }\n break;\n case \"dragstart\":\n this.dragged = true;\n event.dataTransfer.effectAllowed = \"move\";\n event.dataTransfer.setData(\"text/topsite-index\", this.props.index);\n event.target.blur();\n this.props.onDragEvent(event, this.props.index, this.props.link, this.props.title);\n break;\n case \"dragend\":\n this.props.onDragEvent(event);\n break;\n case \"dragenter\":\n case \"dragover\":\n case \"drop\":\n if (this._allowDrop(event)) {\n event.preventDefault();\n this.props.onDragEvent(event, this.props.index);\n }\n break;\n case \"mousedown\":\n // Reset at the first mouse event of a potential drag\n this.dragged = false;\n break;\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {screenshot} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.screenshotImage, screenshot);\n if (imageInState) {\n return null;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.screenshotImage);\n\n return {screenshotImage: ScreenshotUtils.createLocalImageObject(screenshot)};\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = TopSiteLink.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = TopSiteLink.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.screenshotImage);\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}`;\n const {tippyTopIcon, faviconSize} = link;\n const [letterFallback] = title;\n let imageClassName;\n let imageStyle;\n let showSmallFavicon = false;\n let smallFaviconStyle;\n let smallFaviconFallback;\n let hasScreenshotImage = this.state.screenshotImage && this.state.screenshotImage.url;\n if (defaultStyle) { // force no styles (letter fallback) even if the link has imagery\n smallFaviconFallback = false;\n } else if (link.customScreenshotURL) {\n // assume high quality custom screenshot and use rich icon styles and class names\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"\n };\n } else if (tippyTopIcon || faviconSize >= MIN_RICH_FAVICON_SIZE) {\n // styles and class names for top sites with rich icons\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon || link.favicon})`\n };\n } else {\n // styles and class names for top sites with screenshot + small icon in top left corner\n imageClassName = `screenshot${hasScreenshotImage ? \" active\" : \"\"}`;\n imageStyle = {backgroundImage: hasScreenshotImage ? `url(${this.state.screenshotImage.url})` : \"none\"};\n\n // only show a favicon in top left if it's greater than 16x16\n if (faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n showSmallFavicon = true;\n smallFaviconStyle = {backgroundImage: `url(${link.favicon})`};\n } else if (hasScreenshotImage) {\n // Don't show a small favicon if there is no screenshot, because that\n // would result in two fallback icons\n showSmallFavicon = true;\n smallFaviconFallback = true;\n }\n }\n let draggableProps = {};\n if (isDraggable) {\n draggableProps = {\n onClick: this.onDragEvent,\n onDragEnd: this.onDragEvent,\n onDragStart: this.onDragEvent,\n onMouseDown: this.onDragEvent\n };\n }\n return (<li className={topSiteOuterClassName} onDrop={this.onDragEvent} onDragOver={this.onDragEvent} onDragEnter={this.onDragEvent} onDragLeave={this.onDragEvent} {...draggableProps}>\n <div className=\"top-site-inner\">\n <a href={link.url} onClick={onClick}>\n <div className=\"tile\" aria-hidden={true} data-fallback={letterFallback}>\n <div className={imageClassName} style={imageStyle} />\n {showSmallFavicon && <div\n className=\"top-site-icon default-icon\"\n data-fallback={smallFaviconFallback && letterFallback}\n style={smallFaviconStyle} />}\n </div>\n <div className={`title ${link.isPinned ? \"pinned\" : \"\"}`}>\n {link.isPinned && <div className=\"icon icon-pin-small\" />}\n <span dir=\"auto\">{title}</span>\n </div>\n </a>\n {children}\n </div>\n </li>);\n }\n}\nTopSiteLink.defaultProps = {\n title: \"\",\n link: {},\n isDraggable: true\n};\n\nexport class TopSite extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {showContextMenu: false};\n this.onLinkClick = this.onLinkClick.bind(this);\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n const value = {icon_type: this.props.link.iconType};\n // Filter out \"not_pinned\" type for being the default\n if (this.props.link.isPinned) {\n value.card_type = \"pinned\";\n }\n return {value};\n }\n\n userEvent(event) {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event,\n source: TOP_SITES_SOURCE,\n action_position: this.props.index\n }, this._getTelemetryInfo())));\n }\n\n onLinkClick(event) {\n this.userEvent(\"CLICK\");\n\n // Specially handle a top site link click for \"typed\" frecency bonus as\n // specified as a property on the link.\n event.preventDefault();\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n }));\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.props.onActivate(this.props.index);\n this.setState({showContextMenu: true});\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n render() {\n const {props} = this;\n const {link} = props;\n const isContextMenuOpen = this.state.showContextMenu && props.activeIndex === props.index;\n const title = link.label || link.hostname;\n return (<TopSiteLink {...props} onClick={this.onLinkClick} onDragEvent={this.props.onDragEvent} className={`${props.className || \"\"}${isContextMenuOpen ? \" active\" : \"\"}`} title={title}>\n <div>\n <button className=\"context-menu-button icon\" onClick={this.onMenuButtonClick}>\n <span className=\"sr-only\">\n <FormattedMessage id=\"context_menu_button_sr\" values={{title}} />\n </span>\n </button>\n {isContextMenuOpen &&\n <LinkMenu\n dispatch={props.dispatch}\n index={props.index}\n onUpdate={this.onMenuUpdate}\n options={TOP_SITES_CONTEXT_MENU_OPTIONS}\n site={link}\n siteInfo={this._getTelemetryInfo()}\n source={TOP_SITES_SOURCE} />\n }\n </div>\n </TopSiteLink>);\n }\n}\nTopSite.defaultProps = {\n link: {},\n onActivate() {}\n};\n\nexport class TopSitePlaceholder extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onEditButtonClick = this.onEditButtonClick.bind(this);\n }\n\n onEditButtonClick() {\n this.props.dispatch(\n {type: at.TOP_SITES_EDIT, data: {index: this.props.index}});\n }\n\n render() {\n return (<TopSiteLink {...this.props} className={`placeholder ${this.props.className || \"\"}`} isDraggable={false}>\n <button className=\"context-menu-button edit-button icon\"\n title={this.props.intl.formatMessage({id: \"edit_topsites_edit_button\"})}\n onClick={this.onEditButtonClick} />\n </TopSiteLink>);\n }\n}\n\nexport class _TopSiteList extends React.PureComponent {\n static get DEFAULT_STATE() {\n return {\n activeIndex: null,\n draggedIndex: null,\n draggedSite: null,\n draggedTitle: null,\n topSitesPreview: null\n };\n }\n\n constructor(props) {\n super(props);\n this.state = _TopSiteList.DEFAULT_STATE;\n this.onDragEvent = this.onDragEvent.bind(this);\n this.onActivate = this.onActivate.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.state.draggedSite) {\n const prevTopSites = this.props.TopSites && this.props.TopSites.rows;\n const newTopSites = nextProps.TopSites && nextProps.TopSites.rows;\n if (prevTopSites && prevTopSites[this.state.draggedIndex] &&\n prevTopSites[this.state.draggedIndex].url === this.state.draggedSite.url &&\n (!newTopSites[this.state.draggedIndex] || newTopSites[this.state.draggedIndex].url !== this.state.draggedSite.url)) {\n // We got the new order from the redux store via props. We can clear state now.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n }\n }\n\n userEvent(event, index) {\n this.props.dispatch(ac.UserEvent({\n event,\n source: TOP_SITES_SOURCE,\n action_position: index\n }));\n }\n\n onDragEvent(event, index, link, title) {\n switch (event.type) {\n case \"dragstart\":\n this.dropped = false;\n this.setState({\n draggedIndex: index,\n draggedSite: link,\n draggedTitle: title,\n activeIndex: null\n });\n this.userEvent(\"DRAG\", index);\n break;\n case \"dragend\":\n if (!this.dropped) {\n // If there was no drop event, reset the state to the default.\n this.setState(_TopSiteList.DEFAULT_STATE);\n }\n break;\n case \"dragenter\":\n if (index === this.state.draggedIndex) {\n this.setState({topSitesPreview: null});\n } else {\n this.setState({topSitesPreview: this._makeTopSitesPreview(index)});\n }\n break;\n case \"drop\":\n if (index !== this.state.draggedIndex) {\n this.dropped = true;\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_INSERT,\n data: {\n site: {\n url: this.state.draggedSite.url,\n label: this.state.draggedTitle,\n customScreenshotURL: this.state.draggedSite.customScreenshotURL\n },\n index,\n draggedFromIndex: this.state.draggedIndex\n }\n }));\n this.userEvent(\"DROP\", index);\n }\n break;\n }\n }\n\n _getTopSites() {\n // Make a copy of the sites to truncate or extend to desired length\n let topSites = this.props.TopSites.rows.slice();\n topSites.length = this.props.TopSitesRows * TOP_SITES_MAX_SITES_PER_ROW;\n return topSites;\n }\n\n /**\n * Make a preview of the topsites that will be the result of dropping the currently\n * dragged site at the specified index.\n */\n _makeTopSitesPreview(index) {\n const topSites = this._getTopSites();\n topSites[this.state.draggedIndex] = null;\n const pinnedOnly = topSites.map(site => ((site && site.isPinned) ? site : null));\n const unpinned = topSites.filter(site => site && !site.isPinned);\n const siteToInsert = Object.assign({}, this.state.draggedSite, {isPinned: true, isDragged: true});\n if (!pinnedOnly[index]) {\n pinnedOnly[index] = siteToInsert;\n } else {\n // Find the hole to shift the pinned site(s) towards. We shift towards the\n // hole left by the site being dragged.\n let holeIndex = index;\n const indexStep = index > this.state.draggedIndex ? -1 : 1;\n while (pinnedOnly[holeIndex]) {\n holeIndex += indexStep;\n }\n\n // Shift towards the hole.\n const shiftingStep = index > this.state.draggedIndex ? 1 : -1;\n while (holeIndex !== index) {\n const nextIndex = holeIndex + shiftingStep;\n pinnedOnly[holeIndex] = pinnedOnly[nextIndex];\n holeIndex = nextIndex;\n }\n pinnedOnly[index] = siteToInsert;\n }\n\n // Fill in the remaining holes with unpinned sites.\n const preview = pinnedOnly;\n for (let i = 0; i < preview.length; i++) {\n if (!preview[i]) {\n preview[i] = unpinned.shift() || null;\n }\n }\n\n return preview;\n }\n\n onActivate(index) {\n this.setState({activeIndex: index});\n }\n\n render() {\n const {props} = this;\n const topSites = this.state.topSitesPreview || this._getTopSites();\n const topSitesUI = [];\n const commonProps = {\n onDragEvent: this.onDragEvent,\n dispatch: props.dispatch,\n intl: props.intl\n };\n // We assign a key to each placeholder slot. We need it to be independent\n // of the slot index (i below) so that the keys used stay the same during\n // drag and drop reordering and the underlying DOM nodes are reused.\n // This mostly (only?) affects linux so be sure to test on linux before changing.\n let holeIndex = 0;\n\n // On narrow viewports, we only show 6 sites per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const maxNarrowVisibleIndex = props.TopSitesRows * 6;\n\n for (let i = 0, l = topSites.length; i < l; i++) {\n const link = topSites[i] && Object.assign({}, topSites[i], {iconType: this.props.topSiteIconType(topSites[i])});\n const slotProps = {\n key: link ? link.url : holeIndex++,\n index: i\n };\n if (i >= maxNarrowVisibleIndex) {\n slotProps.className = \"hide-for-narrow\";\n }\n topSitesUI.push(!link ? (\n <TopSitePlaceholder\n {...slotProps}\n {...commonProps} />\n ) : (\n <TopSite\n link={link}\n activeIndex={this.state.activeIndex}\n onActivate={this.onActivate}\n {...slotProps}\n {...commonProps} />\n ));\n }\n return (<ul className={`top-sites-list${this.state.draggedSite ? \" dnd-active\" : \"\"}`}>\n {topSitesUI}\n </ul>);\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSite.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {initStore} from \"content-src/lib/init-store\";\nimport {Provider} from \"react-redux\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {reducers} from \"common/Reducers.jsm\";\n\nconst store = initStore(reducers, global.gActivityStreamPrerenderedState);\n\nnew DetectUserSessionStart(store).sendEventOrAddListener();\n\n// If we are starting in a prerendered state, we must wait until the first render\n// to request state rehydration (see Base.jsx). If we are NOT in a prerendered state,\n// we can request it immedately.\nif (!global.gActivityStreamPrerenderedState) {\n store.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n}\n\nReactDOM.hydrate(<Provider store={store}>\n <Base\n isFirstrun={global.document.location.href === \"about:welcome\"}\n isPrerendered={!!global.gActivityStreamPrerenderedState}\n locale={global.document.documentElement.lang}\n strings={global.gActivityStreamStrings} />\n</Provider>, document.getElementById(\"root\"));\n\naddSnippetsSubscriber(store);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/activity-stream.jsx","const DATABASE_NAME = \"snippets_db\";\nconst DATABASE_VERSION = 1;\nconst SNIPPETS_OBJECTSTORE_NAME = \"snippets\";\nexport const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours.\n\nconst SNIPPETS_ENABLED_EVENT = \"Snippets:Enabled\";\nconst SNIPPETS_DISABLED_EVENT = \"Snippets:Disabled\";\n\nimport {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\n\n/**\n * SnippetsMap - A utility for cacheing values related to the snippet. It has\n * the same interface as a Map, but is optionally backed by\n * indexedDB for persistent storage.\n * Call .connect() to open a database connection and restore any\n * previously cached data, if necessary.\n *\n */\nexport class SnippetsMap extends Map {\n constructor(dispatch) {\n super();\n this._db = null;\n this._dispatch = dispatch;\n }\n\n set(key, value) {\n super.set(key, value);\n return this._dbTransaction(db => db.put(value, key));\n }\n\n delete(key) {\n super.delete(key);\n return this._dbTransaction(db => db.delete(key));\n }\n\n clear() {\n super.clear();\n this._dispatch(ac.OnlyToMain({type: at.SNIPPETS_BLOCKLIST_CLEARED}));\n return this._dbTransaction(db => db.clear());\n }\n\n get blockList() {\n return this.get(\"blockList\") || [];\n }\n\n /**\n * blockSnippetById - Blocks a snippet given an id\n *\n * @param {str|int} id The id of the snippet\n * @return {Promise} Resolves when the id has been written to indexedDB,\n * or immediately if the snippetMap is not connected\n */\n async blockSnippetById(id) {\n if (!id) {\n return;\n }\n const {blockList} = this;\n if (!blockList.includes(id)) {\n blockList.push(id);\n this._dispatch(ac.AlsoToMain({type: at.SNIPPETS_BLOCKLIST_UPDATED, data: id}));\n await this.set(\"blockList\", blockList);\n }\n }\n\n disableOnboarding() {\n this._dispatch(ac.AlsoToMain({type: at.DISABLE_ONBOARDING}));\n }\n\n showFirefoxAccounts() {\n this._dispatch(ac.AlsoToMain({type: at.SHOW_FIREFOX_ACCOUNTS}));\n }\n\n getTotalBookmarksCount() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.TOTAL_BOOKMARKS_REQUEST}));\n global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n getAddonsInfo() {\n return new Promise(resolve => {\n this._dispatch(ac.OnlyToMain({type: at.ADDONS_INFO_REQUEST}));\n global.addMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.removeMessageListener(\"ActivityStream:MainToContent\", onMessage);\n }\n });\n });\n }\n\n /**\n * connect - Attaches an indexedDB back-end to the Map so that any set values\n * are also cached in a store. It also restores any existing values\n * that are already stored in the indexedDB store.\n *\n * @return {type} description\n */\n async connect() {\n // Open the connection\n const db = await this._openDB();\n\n // Restore any existing values\n await this._restoreFromDb(db);\n\n // Attach a reference to the db\n this._db = db;\n }\n\n /**\n * _dbTransaction - Returns a db transaction wrapped with the given modifier\n * function as a Promise. If the db has not been connected,\n * it resolves immediately.\n *\n * @param {func} modifier A function to call with the transaction\n * @return {obj} A Promise that resolves when the transaction has\n * completed or errored\n */\n _dbTransaction(modifier) {\n if (!this._db) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const transaction = modifier(\n this._db\n .transaction(SNIPPETS_OBJECTSTORE_NAME, \"readwrite\")\n .objectStore(SNIPPETS_OBJECTSTORE_NAME)\n );\n transaction.onsuccess = event => resolve();\n\n /* istanbul ignore next */\n transaction.onerror = event => reject(transaction.error);\n });\n }\n\n _openDB() {\n return new Promise((resolve, reject) => {\n const openRequest = indexedDB.open(DATABASE_NAME, DATABASE_VERSION);\n\n /* istanbul ignore next */\n openRequest.onerror = event => {\n // Try to delete the old database so that we can start this process over\n // next time.\n indexedDB.deleteDatabase(DATABASE_NAME);\n reject(event);\n };\n\n openRequest.onupgradeneeded = event => {\n const db = event.target.result;\n if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) {\n db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME);\n }\n };\n\n openRequest.onsuccess = event => {\n let db = event.target.result;\n\n /* istanbul ignore next */\n db.onerror = err => console.error(err); // eslint-disable-line no-console\n /* istanbul ignore next */\n db.onversionchange = versionChangeEvent => versionChangeEvent.target.close();\n\n resolve(db);\n };\n });\n }\n\n _restoreFromDb(db) {\n return new Promise((resolve, reject) => {\n let cursorRequest;\n try {\n cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME)\n .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor();\n } catch (err) {\n // istanbul ignore next\n reject(err);\n // istanbul ignore next\n return;\n }\n\n /* istanbul ignore next */\n cursorRequest.onerror = event => reject(event);\n\n cursorRequest.onsuccess = event => {\n let cursor = event.target.result;\n // Populate the cache from the persistent storage.\n if (cursor) {\n if (cursor.value !== \"blockList\") {\n this.set(cursor.key, cursor.value);\n }\n cursor.continue();\n } else {\n // We are done.\n resolve();\n }\n };\n });\n }\n}\n\n/**\n * SnippetsProvider - Initializes a SnippetsMap and loads snippets from a\n * remote location, or else default snippets if the remote\n * snippets cannot be retrieved.\n */\nexport class SnippetsProvider {\n constructor(dispatch) {\n // Initialize the Snippets Map and attaches it to a global so that\n // the snippet payload can interact with it.\n global.gSnippetsMap = new SnippetsMap(dispatch);\n this._onAction = this._onAction.bind(this);\n }\n\n get snippetsMap() {\n return global.gSnippetsMap;\n }\n\n async _refreshSnippets() {\n // Check if the cached version of of the snippets in snippetsMap. If it's too\n // old, blow away the entire snippetsMap.\n const cachedVersion = this.snippetsMap.get(\"snippets-cached-version\");\n\n if (cachedVersion !== this.appData.version) {\n this.snippetsMap.clear();\n }\n\n // Has enough time passed for us to require an update?\n const lastUpdate = this.snippetsMap.get(\"snippets-last-update\");\n const needsUpdate = !(lastUpdate >= 0) || Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS;\n\n if (needsUpdate && this.appData.snippetsURL) {\n this.snippetsMap.set(\"snippets-last-update\", Date.now());\n try {\n const response = await fetch(this.appData.snippetsURL);\n if (response.status === 200) {\n const payload = await response.text();\n\n this.snippetsMap.set(\"snippets\", payload);\n this.snippetsMap.set(\"snippets-cached-version\", this.appData.version);\n }\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n }\n\n _noSnippetFallback() {\n // TODO\n }\n\n _forceOnboardingVisibility(shouldBeVisible) {\n const onboardingEl = document.getElementById(\"onboarding-notification-bar\");\n\n if (onboardingEl) {\n onboardingEl.style.display = shouldBeVisible ? \"\" : \"none\";\n }\n }\n\n _showRemoteSnippets() {\n const snippetsEl = document.getElementById(this.elementId);\n const payload = this.snippetsMap.get(\"snippets\");\n\n if (!snippetsEl) {\n throw new Error(`No element was found with id '${this.elementId}'.`);\n }\n\n // This could happen if fetching failed\n if (!payload) {\n throw new Error(\"No remote snippets were found in gSnippetsMap.\");\n }\n\n if (typeof payload !== \"string\") {\n throw new Error(\"Snippet payload was incorrectly formatted\");\n }\n\n // Note that injecting snippets can throw if they're invalid XML.\n // eslint-disable-next-line no-unsanitized/property\n snippetsEl.innerHTML = payload;\n\n // Scripts injected by innerHTML are inactive, so we have to relocate them\n // through DOM manipulation to activate their contents.\n for (const scriptEl of snippetsEl.getElementsByTagName(\"script\")) {\n const relocatedScript = document.createElement(\"script\");\n relocatedScript.text = scriptEl.text;\n scriptEl.parentNode.replaceChild(relocatedScript, scriptEl);\n }\n }\n\n _onAction(msg) {\n if (msg.data.type === at.SNIPPET_BLOCKED) {\n if (!this.snippetsMap.blockList.includes(msg.data.data)) {\n this.snippetsMap.set(\"blockList\", this.snippetsMap.blockList.concat(msg.data.data));\n document.getElementById(\"snippets-container\").style.display = \"none\";\n }\n }\n }\n\n /**\n * init - Fetch the snippet payload and show snippets\n *\n * @param {obj} options\n * @param {str} options.appData.snippetsURL The URL from which we fetch snippets\n * @param {int} options.appData.version The current snippets version\n * @param {str} options.elementId The id of the element in which to inject snippets\n * @param {bool} options.connect Should gSnippetsMap connect to indexedDB?\n */\n async init(options) {\n Object.assign(this, {\n appData: {},\n elementId: \"snippets\",\n connect: true\n }, options);\n\n // Add listener so we know when snippets are blocked on other pages\n if (global.addMessageListener) {\n global.addMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n\n // TODO: Requires enabling indexedDB on newtab\n // Restore the snippets map from indexedDB\n if (this.connect) {\n try {\n await this.snippetsMap.connect();\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n }\n }\n\n // Cache app data values so they can be accessible from gSnippetsMap\n for (const key of Object.keys(this.appData)) {\n if (key === \"blockList\") {\n this.snippetsMap.set(\"blockList\", this.appData[key]);\n } else {\n this.snippetsMap.set(`appData.${key}`, this.appData[key]);\n }\n }\n\n // Refresh snippets, if enough time has passed.\n await this._refreshSnippets();\n\n // Try showing remote snippets, falling back to defaults if necessary.\n try {\n this._showRemoteSnippets();\n } catch (e) {\n this._noSnippetFallback(e);\n }\n\n window.dispatchEvent(new Event(SNIPPETS_ENABLED_EVENT));\n\n this._forceOnboardingVisibility(true);\n this.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n this._forceOnboardingVisibility(false);\n if (global.removeMessageListener) {\n global.removeMessageListener(\"ActivityStream:MainToContent\", this._onAction);\n }\n this.initialized = false;\n }\n}\n\n/**\n * addSnippetsSubscriber - Creates a SnippetsProvider that Initializes\n * when the store has received the appropriate\n * Snippet data.\n *\n * @param {obj} store The redux store\n * @return {obj} Returns the snippets instance, asrouterContent instance and unsubscribe function\n */\nexport function addSnippetsSubscriber(store) {\n const snippets = new SnippetsProvider(store.dispatch);\n const asrouterContent = new ASRouterContent();\n\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n const isASRouterEnabled = state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort > 0;\n // state.Prefs.values[\"feeds.snippets\"]: Should snippets be shown?\n // state.Snippets.initialized Is the snippets data initialized?\n // snippets.initialized: Is SnippetsProvider currently initialised?\n if (state.Prefs.values[\"feeds.snippets\"] &&\n // If the message center experiment is enabled, don't show snippets\n !isASRouterEnabled &&\n !state.Prefs.values.disableSnippets &&\n state.Snippets.initialized &&\n !snippets.initialized &&\n // Don't call init multiple times\n !initializing &&\n location.href !== \"about:welcome\"\n ) {\n initializing = true;\n await snippets.init({appData: state.Snippets});\n initializing = false;\n } else if (\n (state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true) &&\n snippets.initialized\n ) {\n snippets.uninit();\n }\n\n // Turn on AS Router snippets if the experiment is enabled and the snippets pref is on;\n // otherwise, turn it off.\n if (\n (state.Prefs.values.asrouterExperimentEnabled || state.Prefs.values.asrouterOnboardingCohort > 0) &&\n state.Prefs.values[\"feeds.snippets\"] &&\n !asrouterContent.initialized) {\n asrouterContent.init();\n } else if (\n ((!state.Prefs.values.asrouterExperimentEnabled && state.Prefs.values.asrouterOnboardingCohort === 0) || !state.Prefs.values[\"feeds.snippets\"]) &&\n asrouterContent.initialized\n ) {\n asrouterContent.uninit();\n }\n });\n\n // These values are returned for testing purposes\n return {snippets, asrouterContent};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/snippets.js","import { CachedIterable, mapContextSync } from \"fluent\";\n\n/*\n * `ReactLocalization` handles translation formatting and fallback.\n *\n * The current negotiated fallback chain of languages is stored in the\n * `ReactLocalization` instance in form of an iterable of `MessageContext`\n * instances. This iterable is used to find the best existing translation for\n * a given identifier.\n *\n * `Localized` components must subscribe to the changes of the\n * `ReactLocalization`'s fallback chain. When the fallback chain changes (the\n * `messages` iterable is set anew), all subscribed compontent must relocalize.\n *\n * The `ReactLocalization` class instances are exposed to `Localized` elements\n * via the `LocalizationProvider` component.\n */\nexport default class ReactLocalization {\n constructor(messages) {\n this.contexts = new CachedIterable(messages);\n this.subs = new Set();\n }\n\n /*\n * Subscribe a `Localized` component to changes of `messages`.\n */\n subscribe(comp) {\n this.subs.add(comp);\n }\n\n /*\n * Unsubscribe a `Localized` component from `messages` changes.\n */\n unsubscribe(comp) {\n this.subs.delete(comp);\n }\n\n /*\n * Set a new `messages` iterable and trigger the retranslation.\n */\n setMessages(messages) {\n this.contexts = new CachedIterable(messages);\n\n // Update all subscribed Localized components.\n this.subs.forEach(comp => comp.relocalize());\n }\n\n getMessageContext(id) {\n return mapContextSync(this.contexts, id);\n }\n\n formatCompound(mcx, msg, args) {\n const value = mcx.format(msg, args);\n\n if (msg.attrs) {\n var attrs = {};\n for (const name of Object.keys(msg.attrs)) {\n attrs[name] = mcx.format(msg.attrs[name], args);\n }\n }\n\n return { value, attrs };\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const mcx = this.getMessageContext(id);\n\n if (mcx === null) {\n return fallback || id;\n }\n\n const msg = mcx.getMessage(id);\n return mcx.format(msg, args);\n }\n}\n\nexport function isReactLocalization(props, propName) {\n const prop = props[propName];\n\n if (prop instanceof ReactLocalization) {\n return null;\n }\n\n return new Error(\n `The ${propName} context field must be an instance of ReactLocalization.`\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/localization.js","import { Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport ReactLocalization, { isReactLocalization} from \"./localization\";\n\n/*\n * The Provider component for the `ReactLocalization` class.\n *\n * Exposes a `ReactLocalization` instance to all descendants via React's\n * context feature. It makes translations available to all localizable\n * elements in the descendant's render tree without the need to pass them\n * explicitly.\n *\n * <LocalizationProvider messages={…}>\n * …\n * </LocalizationProvider>\n *\n * The `LocalizationProvider` component takes one prop: `messages`. It should\n * be an iterable of `MessageContext` instances in order of the user's\n * preferred languages. The `MessageContext` instances will be used by\n * `ReactLocalization` to format translations. If a translation is missing in\n * one instance, `ReactLocalization` will fall back to the next one.\n */\nexport default class LocalizationProvider extends Component {\n constructor(props) {\n super(props);\n const { messages } = props;\n\n if (messages === undefined) {\n throw new Error(\"LocalizationProvider must receive the messages prop.\");\n }\n\n if (!messages[Symbol.iterator]) {\n throw new Error(\"The messages prop must be an iterable.\");\n }\n\n this.l10n = new ReactLocalization(messages);\n }\n\n getChildContext() {\n return {\n l10n: this.l10n\n };\n }\n\n componentWillReceiveProps(next) {\n const { messages } = next;\n\n if (messages !== this.props.messages) {\n this.l10n.setMessages(messages);\n }\n }\n\n render() {\n return Children.only(this.props.children);\n }\n}\n\nLocalizationProvider.childContextTypes = {\n l10n: isReactLocalization\n};\n\nLocalizationProvider.propTypes = {\n children: PropTypes.element.isRequired,\n messages: isIterable\n};\n\nfunction isIterable(props, propName, componentName) {\n const prop = props[propName];\n\n if (Symbol.iterator in Object(prop)) {\n return null;\n }\n\n return new Error(\n `The ${propName} prop supplied to ${componentName} must be an iterable.`\n );\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/provider.js","import { createElement, Component } from \"react\";\n\nimport { isReactLocalization } from \"./localization\";\n\nexport default function withLocalization(Inner) {\n class WithLocalization extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n /*\n * Find a translation by `id` and format it to a string using `args`.\n */\n getString(id, args, fallback) {\n const { l10n } = this.context;\n\n if (!l10n) {\n return fallback || id;\n }\n\n return l10n.getString(id, args, fallback);\n }\n\n render() {\n return createElement(\n Inner,\n Object.assign(\n // getString needs to be re-bound on updates to trigger a re-render\n { getString: (...args) => this.getString(...args) },\n this.props\n )\n );\n }\n }\n\n WithLocalization.displayName = `WithLocalization(${displayName(Inner)})`;\n\n WithLocalization.contextTypes = {\n l10n: isReactLocalization\n };\n\n return WithLocalization;\n}\n\nfunction displayName(component) {\n return component.displayName || component.name || \"Component\";\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/with_localization.js","/* eslint-env browser */\n\nconst TEMPLATE = document.createElement(\"template\");\n\nexport function parseMarkup(str) {\n TEMPLATE.innerHTML = str;\n return TEMPLATE.content;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/markup.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\nexport default omittedCloseTags;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/vendor/omittedCloseTags.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in this directory.\n */\n\nimport omittedCloseTags from './omittedCloseTags';\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = {\n menuitem: true,\n ...omittedCloseTags,\n};\n\nexport default voidElementTags;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/vendor/voidElementTags.js","import { isValidElement, cloneElement, Component, Children } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { isReactLocalization } from \"./localization\";\nimport { parseMarkup } from \"./markup\";\nimport VOID_ELEMENTS from \"../vendor/voidElementTags\";\n\n// Match the opening angle bracket (<) in HTML tags, and HTML entities like\n// &, &, &.\nconst reMarkup = /<|&#?\\w+;/;\n\n/*\n * Prepare props passed to `Localized` for formatting.\n */\nfunction toArguments(props) {\n const args = {};\n const elems = {};\n\n for (const [propname, propval] of Object.entries(props)) {\n if (propname.startsWith(\"$\")) {\n const name = propname.substr(1);\n args[name] = propval;\n } else if (isValidElement(propval)) {\n // We'll try to match localNames of elements found in the translation with\n // names of elements passed as props. localNames are always lowercase.\n const name = propname.toLowerCase();\n elems[name] = propval;\n }\n }\n\n return [args, elems];\n}\n\n/*\n * The `Localized` class renders its child with translated props and children.\n *\n * <Localized id=\"hello-world\">\n * <p>{'Hello, world!'}</p>\n * </Localized>\n *\n * The `id` prop should be the unique identifier of the translation. Any\n * attributes found in the translation will be applied to the wrapped element.\n *\n * Arguments to the translation can be passed as `$`-prefixed props on\n * `Localized`.\n *\n * <Localized id=\"hello-world\" $username={name}>\n * <p>{'Hello, { $username }!'}</p>\n * </Localized>\n *\n * It's recommended that the contents of the wrapped component be a string\n * expression. The string will be used as the ultimate fallback if no\n * translation is available. It also makes it easy to grep for strings in the\n * source code.\n */\nexport default class Localized extends Component {\n componentDidMount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.subscribe(this);\n }\n }\n\n componentWillUnmount() {\n const { l10n } = this.context;\n\n if (l10n) {\n l10n.unsubscribe(this);\n }\n }\n\n /*\n * Rerender this component in a new language.\n */\n relocalize() {\n // When the `ReactLocalization`'s fallback chain changes, update the\n // component.\n this.forceUpdate();\n }\n\n render() {\n const { l10n } = this.context;\n const { id, attrs, children } = this.props;\n const elem = Children.only(children);\n\n if (!l10n) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const mcx = l10n.getMessageContext(id);\n\n if (mcx === null) {\n // Use the wrapped component as fallback.\n return elem;\n }\n\n const msg = mcx.getMessage(id);\n const [args, elems] = toArguments(this.props);\n const {\n value: messageValue,\n attrs: messageAttrs\n } = l10n.formatCompound(mcx, msg, args);\n\n // The default is to forbid all message attributes. If the attrs prop exists\n // on the Localized instance, only set message attributes which have been\n // explicitly allowed by the developer.\n if (attrs && messageAttrs) {\n var localizedProps = {};\n\n for (const [name, value] of Object.entries(messageAttrs)) {\n if (attrs[name]) {\n localizedProps[name] = value;\n }\n }\n }\n\n // If the wrapped component is a known void element, explicitly dismiss the\n // message value and do not pass it to cloneElement in order to avoid the\n // \"void element tags must neither have `children` nor use\n // `dangerouslySetInnerHTML`\" error.\n if (elem.type in VOID_ELEMENTS) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message has a null value, we're only interested in its attributes.\n // Do not pass the null value to cloneElement as it would nuke all children\n // of the wrapped component.\n if (messageValue === null) {\n return cloneElement(elem, localizedProps);\n }\n\n // If the message value doesn't contain any markup nor any HTML entities,\n // insert it as the only child of the wrapped component.\n if (!reMarkup.test(messageValue)) {\n return cloneElement(elem, localizedProps, messageValue);\n }\n\n // If the message contains markup, parse it and try to match the children\n // found in the translation with the props passed to this Localized.\n const translationNodes = Array.from(parseMarkup(messageValue).childNodes);\n const translatedChildren = translationNodes.map(childNode => {\n if (childNode.nodeType === childNode.TEXT_NODE) {\n return childNode.textContent;\n }\n\n // If the child is not expected just take its textContent.\n if (!elems.hasOwnProperty(childNode.localName)) {\n return childNode.textContent;\n }\n\n const sourceChild = elems[childNode.localName];\n\n // If the element passed as a prop to <Localized> is a known void element,\n // explicitly dismiss any textContent which might have accidentally been\n // defined in the translation to prevent the \"void element tags must not\n // have children\" error.\n if (sourceChild.type in VOID_ELEMENTS) {\n return sourceChild;\n }\n\n // TODO Protect contents of elements wrapped in <Localized>\n // https://github.com/projectfluent/fluent.js/issues/184\n // TODO Control localizable attributes on elements passed as props\n // https://github.com/projectfluent/fluent.js/issues/185\n return cloneElement(sourceChild, null, childNode.textContent);\n });\n\n return cloneElement(elem, localizedProps, ...translatedChildren);\n }\n}\n\nLocalized.contextTypes = {\n l10n: isReactLocalization\n};\n\nLocalized.propTypes = {\n children: PropTypes.element.isRequired,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/localized.js","/*\n * @module fluent-react\n * @overview\n *\n\n * `fluent-react` provides React bindings for Fluent. It takes advantage of\n * React's Components system and the virtual DOM. Translations are exposed to\n * components via the provider pattern.\n *\n * <LocalizationProvider messages={…}>\n * <Localized id=\"hello-world\">\n * <p>{'Hello, world!'}</p>\n * </Localized>\n * </LocalizationProvider>\n *\n * Consult the documentation of the `LocalizationProvider` and the `Localized`\n * components for more information.\n */\n\nexport { default as LocalizationProvider } from \"./provider\";\nexport { default as withLocalization } from \"./with_localization\";\nexport { default as Localized } from \"./localized\";\nexport { default as ReactLocalization, isReactLocalization }\n from \"./localization\";\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/fluent-react/src/index.js","module.exports = Redux;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Redux\"\n// module id = 26\n// module chunks = 0","import React from \"react\";\n\nexport const VISIBLE = \"visible\";\nexport const VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\n/**\n * Component wrapper used to send telemetry pings on every impression.\n */\nexport class ImpressionsWrapper extends React.PureComponent {\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionOrAddListener() {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (this.props.document.visibilityState === VISIBLE) {\n this.props.sendImpression({id: this.props.id});\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n this.props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.sendOnMount) {\n this.sendImpressionOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.shouldSendImpressionOnUpdate(this.props, prevProps)) {\n this.sendImpressionOrAddListener();\n }\n }\n\n render() {\n return this.props.children;\n }\n}\n\nImpressionsWrapper.defaultProps = {\n document: global.document,\n sendOnMount: true\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","import React from \"react\";\n\nexport class ModalOverlay extends React.PureComponent {\n componentWillMount() {\n this.setState({active: true});\n document.body.classList.add(\"modal-open\");\n }\n\n componentWillUnmount() {\n document.body.classList.remove(\"modal-open\");\n this.setState({active: false});\n }\n\n render() {\n const {active} = this.state;\n const {title, button_label} = this.props;\n return (\n <div>\n <div className={`modalOverlayOuter ${active ? \"active\" : \"\"}`} />\n <div className={`modalOverlayInner ${active ? \"active\" : \"\"}`}>\n <h2> {title} </h2>\n {this.props.children}\n <div className=\"footer\">\n <button onClick={this.props.onDoneButton} className=\"button primary modalButton\"> {button_label} </button>\n </div>\n </div>\n </div>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","import {ModalOverlay} from \"../../components/ModalOverlay/ModalOverlay\";\nimport React from \"react\";\n\nclass OnboardingCard extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n }\n\n onClick() {\n const {props} = this;\n props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", message_id: props.id, id: props.UISurface});\n props.onAction(props.content);\n }\n\n render() {\n const {content} = this.props;\n return (\n <div className=\"onboardingMessage\">\n <div className={`onboardingMessageImage ${content.icon}`} />\n <div className=\"onboardingContent\">\n <span>\n <h3> {content.title} </h3>\n <p> {content.text} </p>\n </span>\n <span>\n <button className=\"button onboardingButton\" onClick={this.onClick}> {content.button_label} </button>\n </span>\n </div>\n </div>\n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n return (\n <ModalOverlay {...props} button_label={\"Start Browsing\"} title={\"Welcome to Firefox\"}>\n <div className=\"onboardingMessageContainer\">\n {props.bundle.map(message => (\n <OnboardingCard key={message.id}\n sendUserActionTelemetry={props.sendUserActionTelemetry}\n onAction={props.onAction}\n UISurface={props.UISurface}\n {...message} />\n ))}\n </div>\n </ModalOverlay>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","import React from \"react\";\nimport {safeURI} from \"../../template-utils\";\n\nconst ALLOWED_STYLE_TAGS = [\"color\", \"backgroundColor\"];\n\nexport const Button = props => {\n const style = {};\n\n // Add allowed style tags from props, e.g. props.color becomes style={color: props.color}\n for (const tag of ALLOWED_STYLE_TAGS) {\n if (typeof props[tag] !== \"undefined\") {\n style[tag] = props[tag];\n }\n }\n // remove border if bg is set to something custom\n if (style.backgroundColor) {\n style.border = \"0\";\n }\n\n return (<a href={safeURI(props.url)}\n onClick={props.onClick}\n className={props.className || \"ASRouterButton\"}\n style={style}>\n {props.children}\n </a>);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/Button/Button.jsx","import React from \"react\";\n\nexport class SnippetBase extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onBlockClicked = this.onBlockClicked.bind(this);\n }\n\n onBlockClicked() {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n this.props.onBlock();\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (<div className={containerClassName}>\n <div className=\"innerWrapper\">\n {props.children}\n </div>\n <button className=\"blockButton\" onClick={this.onBlockClicked} />\n </div>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","import {Button} from \"../../components/Button/Button\";\nimport React from \"react\";\nimport {safeURI} from \"../../template-utils\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nconst DEFAULT_ICON_PATH = \"chrome://branding/content/icon64.png\";\n\nexport class SimpleSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onButtonClick = this.onButtonClick.bind(this);\n }\n\n onButtonClick() {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? <h3 className=\"title\">{title}</h3> : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? <span className=\"titleIcon\" style={{backgroundImage: `url(\"${titleIcon}\")`}} /> : null;\n }\n\n renderButton(className) {\n const {props} = this;\n return (<Button\n className={className}\n onClick={this.onButtonClick}\n url={props.content.button_url}\n color={props.content.button_color}\n backgroundColor={props.content.button_background_color}>\n {props.content.button_label}\n </Button>);\n }\n\n render() {\n const {props} = this;\n const hasLink = props.content.button_url && props.content.button_type === \"anchor\";\n const hasButton = props.content.button_url && !props.content.button_type;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (<SnippetBase {...props} className={className}>\n <img src={safeURI(props.content.icon) || DEFAULT_ICON_PATH} className=\"icon\" />\n <div>\n {this.renderTitleIcon()} {this.renderTitle()} <p className=\"body\">{props.richText || props.content.text}</p> {hasLink ? this.renderButton(\"ASRouterAnchor\") : null}\n </div>\n {hasButton ? <div>{this.renderButton()}</div> : null}\n </SnippetBase>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addLocaleData, injectIntl, IntlProvider} from \"react-intl\";\nimport {ASRouterAdmin} from \"content-src/components/ASRouterAdmin/ASRouterAdmin\";\nimport {ConfirmDialog} from \"content-src/components/ConfirmDialog/ConfirmDialog\";\nimport {connect} from \"react-redux\";\nimport {ErrorBoundary} from \"content-src/components/ErrorBoundary/ErrorBoundary\";\nimport {ManualMigration} from \"content-src/components/ManualMigration/ManualMigration\";\nimport {PrerenderData} from \"common/PrerenderData.jsm\";\nimport React from \"react\";\nimport {Search} from \"content-src/components/Search/Search\";\nimport {Sections} from \"content-src/components/Sections/Sections\";\nimport {StartupOverlay} from \"content-src/components/StartupOverlay/StartupOverlay\";\n\nconst PrefsButton = injectIntl(props => (\n <div className=\"prefs-button\">\n <button className=\"icon icon-settings\" onClick={props.onClick} title={props.intl.formatMessage({id: \"settings_pane_button_label\"})} />\n </div>\n));\n\n// Add the locale data for pluralization and relative-time formatting for now,\n// this just uses english locale data. We can make this more sophisticated if\n// more features are needed.\nfunction addLocaleDataForReactIntl(locale) {\n addLocaleData([{locale, parentLocale: \"en\"}]);\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {App, locale, Theme} = this.props;\n if (Theme.className) {\n this.updateTheme(Theme);\n }\n this.sendNewTabRehydrated(App);\n addLocaleDataForReactIntl(locale);\n }\n\n componentDidMount() {\n // Request state AFTER the first render to ensure we don't cause the\n // prerendered DOM to be unmounted. Otherwise, NEW_TAB_STATE_REQUEST is\n // dispatched right after the store is ready.\n if (this.props.isPrerendered) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_STATE_REQUEST}));\n this.props.dispatch(ac.AlsoToMain({type: at.PAGE_PRERENDERED}));\n }\n }\n\n componentWillUnmount() {\n this.updateTheme({className: \"\"});\n }\n\n componentWillUpdate({App, Theme}) {\n this.updateTheme(Theme);\n this.sendNewTabRehydrated(App);\n }\n\n updateTheme(Theme) {\n const bodyClassName = [\n \"activity-stream\",\n Theme.className,\n this.props.isFirstrun ? \"welcome\" : \"\"\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\n }\n\n // The NEW_TAB_REHYDRATED event is used to inform feeds that their\n // data has been consumed e.g. for counting the number of tabs that\n // have rendered that data.\n sendNewTabRehydrated(App) {\n if (App && App.initialized && !this.renderNotified) {\n this.props.dispatch(ac.AlsoToMain({type: at.NEW_TAB_REHYDRATED, data: {}}));\n this.renderNotified = true;\n }\n }\n\n render() {\n const {props} = this;\n const {App, locale, strings} = props;\n const {initialized} = App;\n\n const prefs = props.Prefs.values;\n if ((prefs.asrouterExperimentEnabled || prefs.asrouterOnboardingCohort > 0) && window.location.hash === \"#asrouter\") {\n return (<ASRouterAdmin />);\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (<IntlProvider locale={locale} messages={strings}>\n <ErrorBoundary className=\"base-content-fallback\">\n <BaseContent {...this.props} />\n </ErrorBoundary>\n </IntlProvider>);\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n }\n\n openPreferences() {\n this.props.dispatch(ac.OnlyToMain({type: at.SETTINGS_OPEN}));\n this.props.dispatch(ac.UserEvent({event: \"OPEN_NEWTAB_PREFS\"}));\n }\n\n render() {\n const {props} = this;\n const {App} = props;\n const {initialized} = App;\n const prefs = props.Prefs.values;\n\n const shouldBeFixedToTop = PrerenderData.arePrefsValid(name => prefs[name]);\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\"\n ].filter(v => v).join(\" \");\n\n return (\n <div>\n <div className={outerClassName}>\n <main>\n {prefs.showSearch &&\n <div className=\"non-collapsible-section\">\n <ErrorBoundary>\n <Search />\n </ErrorBoundary>\n </div>\n }\n <div className={`body-wrapper${(initialized ? \" on\" : \"\")}`}>\n {!prefs.migrationExpired &&\n <div className=\"non-collapsible-section\">\n <ManualMigration />\n </div>\n }\n <Sections />\n <PrefsButton onClick={this.openPreferences} />\n </div>\n <ConfirmDialog />\n </main>\n </div>\n {this.props.isFirstrun && <StartupOverlay />}\n </div>);\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Theme: state.Theme}))(_Base);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Base/Base.jsx","import {ASRouterUtils} from \"../../asrouter/asrouter-content\";\nimport React from \"react\";\n\nexport class ASRouterAdmin extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onMessage = this.onMessage.bind(this);\n this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);\n this.state = {};\n }\n\n onMessage({data: action}) {\n if (action.type === \"ADMIN_SET_STATE\") {\n this.setState(action.data);\n }\n }\n\n componentWillMount() {\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\"});\n ASRouterUtils.addListener(this.onMessage);\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessage);\n }\n\n findOtherBundledMessagesOfSameTemplate(template) {\n return this.state.messages.filter(msg => msg.template === template && msg.bundled);\n }\n\n handleBlock(msg) {\n if (msg.bundled) {\n // If we are blocking a message that belongs to a bundle, block all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.blockBundle(bundle);\n }\n return () => ASRouterUtils.blockById(msg.id);\n }\n\n handleUnblock(msg) {\n if (msg.bundled) {\n // If we are unblocking a message that belongs to a bundle, unblock all other messages that are bundled of that same template\n let bundle = this.findOtherBundledMessagesOfSameTemplate(msg.template);\n return () => ASRouterUtils.unblockBundle(bundle);\n }\n return () => ASRouterUtils.unblockById(msg.id);\n }\n\n handleOverride(id) {\n return () => ASRouterUtils.overrideMessage(id);\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.blockList.includes(msg.id);\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (<tr className={itemClassName} key={msg.id}>\n <td className=\"message-id\"><span>{msg.id}</span></td>\n <td>\n <button className={`button ${(isBlocked ? \"\" : \" primary\")}`} onClick={isBlocked ? this.handleUnblock(msg) : this.handleBlock(msg)}>{isBlocked ? \"Unblock\" : \"Block\"}</button>\n {isBlocked ? null : <button className=\"button\" onClick={this.handleOverride(msg.id)}>Show</button>}\n </td>\n <td className=\"message-summary\">\n <pre>{JSON.stringify(msg, null, 2)}</pre>\n </td>\n </tr>);\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (<table><tbody>\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n </tbody></table>);\n }\n\n renderProviders() {\n return (<table><tbody>\n {this.state.providers.map((provider, i) => (<tr className=\"message-item\" key={i}>\n <td>{provider.id}</td>\n <td>{provider.type === \"remote\" ? <a target=\"_blank\" href={provider.url}>{provider.url}</a> : \"(local)\"}</td>\n </tr>))}\n </tbody></table>);\n }\n\n render() {\n return (<div className=\"asrouter-admin outer-wrapper\">\n <h1>AS Router Admin</h1>\n <button className=\"button primary\" onClick={ASRouterUtils.getNextMessage}>Refresh Current Message</button>\n <h2>Message Providers</h2>\n {this.state.providers ? this.renderProviders() : null}\n <h2>Messages</h2>\n {this.renderMessages()}\n </div>);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","import {actionCreators as ac, actionTypes} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * ConfirmDialog component.\n * One primary action button, one cancel button.\n *\n * Content displayed is controlled by `data` prop the component receives.\n * Example:\n * data: {\n * // Any sort of data needed to be passed around by actions.\n * payload: site.url,\n * // Primary button AlsoToMain action.\n * action: \"DELETE_HISTORY_URL\",\n * // Primary button USerEvent action.\n * userEvent: \"DELETE\",\n * // Array of locale ids to display.\n * message_body: [\"confirm_history_delete_p1\", \"confirm_history_delete_notice_p2\"],\n * // Text for primary button.\n * confirm_button_string_id: \"menu_action_delete\"\n * },\n */\nexport class _ConfirmDialog extends React.PureComponent {\n constructor(props) {\n super(props);\n this._handleCancelBtn = this._handleCancelBtn.bind(this);\n this._handleConfirmBtn = this._handleConfirmBtn.bind(this);\n }\n\n _handleCancelBtn() {\n this.props.dispatch({type: actionTypes.DIALOG_CANCEL});\n this.props.dispatch(ac.UserEvent({event: actionTypes.DIALOG_CANCEL, source: this.props.data.eventSource}));\n }\n\n _handleConfirmBtn() {\n this.props.data.onConfirm.forEach(this.props.dispatch);\n }\n\n _renderModalMessage() {\n const message_body = this.props.data.body_string_id;\n\n if (!message_body) {\n return null;\n }\n\n return (<span>\n {message_body.map(msg => <p key={msg}><FormattedMessage id={msg} /></p>)}\n </span>);\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (<div className=\"confirmation-dialog\">\n <div className=\"modal-overlay\" onClick={this._handleCancelBtn} />\n <div className=\"modal\">\n <section className=\"modal-message\">\n {this.props.data.icon && <span className={`icon icon-spacer icon-${this.props.data.icon}`} />}\n {this._renderModalMessage()}\n </section>\n <section className=\"actions\">\n <button onClick={this._handleCancelBtn}>\n <FormattedMessage id={this.props.data.cancel_button_string_id} />\n </button>\n <button className=\"done\" onClick={this._handleConfirmBtn}>\n <FormattedMessage id={this.props.data.confirm_button_string_id} />\n </button>\n </section>\n </div>\n </div>);\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ConfirmDialog/ConfirmDialog.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\n/**\n * Manual migration component used to start the profile import wizard.\n * Message is presented temporarily and will go away if:\n * 1. User clicks \"No Thanks\"\n * 2. User completed the data import\n * 3. After 3 active days\n * 4. User clicks \"Cancel\" on the import wizard (currently not implemented).\n */\nexport class _ManualMigration extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onLaunchTour = this.onLaunchTour.bind(this);\n this.onCancelTour = this.onCancelTour.bind(this);\n }\n\n onLaunchTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_START}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_START}));\n }\n\n onCancelTour() {\n this.props.dispatch(ac.AlsoToMain({type: at.MIGRATION_CANCEL}));\n this.props.dispatch(ac.UserEvent({event: at.MIGRATION_CANCEL}));\n }\n\n render() {\n return (<div className=\"manual-migration-container\">\n <p>\n <span className=\"icon icon-import\" />\n <FormattedMessage id=\"manual_migration_explanation2\" />\n </p>\n <div className=\"manual-migration-actions actions\">\n <button className=\"dismiss\" onClick={this.onCancelTour}>\n <FormattedMessage id=\"manual_migration_cancel_button\" />\n </button>\n <button onClick={this.onLaunchTour}>\n <FormattedMessage id=\"manual_migration_import_button\" />\n </button>\n </div>\n </div>);\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/ManualMigration/ManualMigration.jsx","class _PrerenderData {\n constructor(options) {\n this.initialPrefs = options.initialPrefs;\n this.initialSections = options.initialSections;\n this._setValidation(options.validation);\n }\n\n get validation() {\n return this._validation;\n }\n\n set validation(value) {\n this._setValidation(value);\n }\n\n get invalidatingPrefs() {\n return this._invalidatingPrefs;\n }\n\n // This is needed so we can use it in the constructor\n _setValidation(value = []) {\n this._validation = value;\n this._invalidatingPrefs = value.reduce((result, next) => {\n if (typeof next === \"string\") {\n result.push(next);\n return result;\n } else if (next && next.oneOf) {\n return result.concat(next.oneOf);\n } else if (next && next.indexedDB) {\n return result.concat(next.indexedDB);\n }\n throw new Error(\"Your validation configuration is not properly configured\");\n }, []);\n }\n\n arePrefsValid(getPref, indexedDBPrefs) {\n for (const prefs of this.validation) {\n // {oneOf: [\"foo\", \"bar\"]}\n if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {\n return false;\n\n // {indexedDB: [\"foo\", \"bar\"]}\n } else if (indexedDBPrefs && prefs && prefs.indexedDB) {\n const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));\n if (anyModifiedPrefs) {\n return false;\n }\n // \"foo\"\n } else if (getPref(prefs) !== this.initialPrefs[prefs]) {\n return false;\n }\n }\n return true;\n }\n}\n\nthis.PrerenderData = new _PrerenderData({\n initialPrefs: {\n \"migrationExpired\": true,\n \"feeds.topsites\": true,\n \"showSearch\": true,\n \"topSitesRows\": 1,\n \"feeds.section.topstories\": true,\n \"feeds.section.highlights\": true,\n \"sectionOrder\": \"topsites,topstories,highlights\",\n \"collapsed\": false\n },\n // Prefs listed as invalidating will prevent the prerendered version\n // of AS from being used if their value is something other than what is listed\n // here. This is required because some preferences cause the page layout to be\n // too different for the prerendered version to be used. Unfortunately, this\n // will result in users who have modified some of their preferences not being\n // able to get the benefits of prerendering.\n validation: [\n \"feeds.topsites\",\n \"showSearch\",\n \"topSitesRows\",\n \"sectionOrder\",\n // This means if either of these are set to their default values,\n // prerendering can be used.\n {oneOf: [\"feeds.section.topstories\", \"feeds.section.highlights\"]},\n // If any component has the following preference set to `true` it will\n // invalidate the prerendered version.\n {indexedDB: [\"collapsed\"]}\n ],\n initialSections: [\n {\n enabled: true,\n icon: \"pocket\",\n id: \"topstories\",\n order: 1,\n title: {id: \"header_recommended_by\", values: {provider: \"Pocket\"}}\n },\n {\n enabled: true,\n id: \"highlights\",\n icon: \"highlights\",\n order: 2,\n title: {id: \"header_highlights\"}\n }\n ]\n});\n\nthis._PrerenderData = _PrerenderData;\nconst EXPORTED_SYMBOLS = [\"PrerenderData\", \"_PrerenderData\"];\n\n\n\n// WEBPACK FOOTER //\n// ./common/PrerenderData.jsm","/* globals ContentSearchUIController */\n\"use strict\";\n\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport {IS_NEWTAB} from \"content-src/lib/constants\";\nimport React from \"react\";\n\nexport class _Search extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onClick = this.onClick.bind(this);\n this.onInputMount = this.onInputMount.bind(this);\n }\n\n handleEvent(event) {\n // Also track search events with our own telemetry\n if (event.detail.type === \"Search\") {\n this.props.dispatch(ac.UserEvent({event: \"SEARCH\"}));\n }\n }\n\n onClick(event) {\n window.gContentSearchController.search(event);\n }\n\n componentWillUnmount() {\n delete window.gContentSearchController;\n }\n\n onInputMount(input) {\n if (input) {\n // The \"healthReportKey\" and needs to be \"newtab\" or \"abouthome\" so that\n // BrowserUsageTelemetry.jsm knows to handle events with this name, and\n // can add the appropriate telemetry probes for search. Without the correct\n // name, certain tests like browser_UsageTelemetry_content.js will fail\n // (See github ticket #2348 for more details)\n const healthReportKey = IS_NEWTAB ? \"newtab\" : \"abouthome\";\n\n // The \"searchSource\" needs to be \"newtab\" or \"homepage\" and is sent with\n // the search data and acts as context for the search request (See\n // nsISearchEngine.getSubmission). It is necessary so that search engine\n // plugins can correctly atribute referrals. (See github ticket #3321 for\n // more details)\n const searchSource = IS_NEWTAB ? \"newtab\" : \"homepage\";\n\n // gContentSearchController needs to exist as a global so that tests for\n // the existing about:home can find it; and so it allows these tests to pass.\n // In the future, when activity stream is default about:home, this can be renamed\n window.gContentSearchController = new ContentSearchUIController(input, input.parentNode,\n healthReportKey, searchSource);\n addEventListener(\"ContentSearchClient\", this);\n } else {\n window.gContentSearchController = null;\n removeEventListener(\"ContentSearchClient\", this);\n }\n }\n\n /*\n * Do not change the ID on the input field, as legacy newtab code\n * specifically looks for the id 'newtab-search-text' on input fields\n * in order to execute searches in various tests\n */\n render() {\n return (<div className=\"search-wrapper\">\n <label htmlFor=\"newtab-search-text\" className=\"search-label\">\n <span className=\"sr-only\"><FormattedMessage id=\"search_web_placeholder\" /></span>\n </label>\n <input\n id=\"newtab-search-text\"\n maxLength=\"256\"\n placeholder={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n ref={this.onInputMount}\n title={this.props.intl.formatMessage({id: \"search_web_placeholder\"})}\n type=\"search\" />\n <button\n id=\"searchSubmit\"\n className=\"search-button\"\n onClick={this.onClick}\n title={this.props.intl.formatMessage({id: \"search_button\"})}>\n <span className=\"sr-only\"><FormattedMessage id=\"search_button\" /></span>\n </button>\n </div>);\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Search/Search.jsx","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/constants.js","import {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\nimport {Topics} from \"content-src/components/Topics/Topics\";\nimport {TopSites} from \"content-src/components/TopSites/TopSites\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\nconst CARDS_PER_ROW_DEFAULT = 3;\nconst CARDS_PER_ROW_COMPACT_WIDE = 4;\n\nfunction getFormattedMessage(message) {\n return typeof message === \"string\" ? <span>{message}</span> : <FormattedMessage {...message} />;\n}\n\nexport class Section extends React.PureComponent {\n get numRows() {\n const {rowsPref, maxRows, Prefs} = this.props;\n return rowsPref ? Prefs.values[rowsPref] : maxRows;\n }\n\n _dispatchImpressionStats() {\n const {props} = this;\n let cardsPerRow = CARDS_PER_ROW_DEFAULT;\n if (props.compactCards && global.matchMedia(`(min-width: 1072px)`).matches) {\n // If the section has compact cards and the viewport is wide enough, we show\n // 4 columns instead of 3.\n // $break-point-widest = 1072px (from _variables.scss)\n cardsPerRow = CARDS_PER_ROW_COMPACT_WIDE;\n }\n const maxCards = cardsPerRow * this.numRows;\n const cards = props.rows.slice(0, maxCards);\n\n if (this.needsImpressionStats(cards)) {\n props.dispatch(ac.ImpressionStats({\n source: props.eventSource,\n tiles: cards.map(link => ({id: link.guid}))\n }));\n this.impressionCardGuids = cards.map(link => link.guid);\n }\n }\n\n // This sends an event when a user sees a set of new content. If content\n // changes while the page is hidden (i.e. preloaded or on a hidden tab),\n // only send the event if the page becomes visible again.\n sendImpressionStatsOrAddListener() {\n const {props} = this;\n\n if (!props.shouldSendImpressionStats || !props.dispatch) {\n return;\n }\n\n if (props.document.visibilityState === VISIBLE) {\n this._dispatchImpressionStats();\n } else {\n // We should only ever send the latest impression stats ping, so remove any\n // older listeners.\n if (this._onVisibilityChange) {\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n\n // When the page becomes visible, send the impression stats ping if the section isn't collapsed.\n this._onVisibilityChange = () => {\n if (props.document.visibilityState === VISIBLE) {\n if (!this.props.pref.collapsed) {\n this._dispatchImpressionStats();\n }\n props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n };\n props.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n componentDidMount() {\n if (this.props.rows.length && !this.props.pref.collapsed) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentDidUpdate(prevProps) {\n const {props} = this;\n const isCollapsed = props.pref.collapsed;\n const wasCollapsed = prevProps.pref.collapsed;\n if (\n // Don't send impression stats for the empty state\n props.rows.length &&\n (\n // We only want to send impression stats if the content of the cards has changed\n // and the section is not collapsed...\n (props.rows !== prevProps.rows && !isCollapsed) ||\n // or if we are expanding a section that was collapsed.\n (wasCollapsed && !isCollapsed)\n )\n ) {\n this.sendImpressionStatsOrAddListener();\n }\n }\n\n componentWillUnmount() {\n if (this._onVisibilityChange) {\n this.props.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n needsImpressionStats(cards) {\n if (!this.impressionCardGuids || (this.impressionCardGuids.length !== cards.length)) {\n return true;\n }\n\n for (let i = 0; i < cards.length; i++) {\n if (cards[i].guid !== this.impressionCardGuids[i]) {\n return true;\n }\n }\n\n return false;\n }\n\n render() {\n const {\n id, eventSource, title, icon, rows,\n emptyState, dispatch, compactCards,\n contextMenuOptions, initialized, disclaimer,\n pref, privacyNoticeURL, isFirst, isLast\n } = this.props;\n\n const maxCardsPerRow = compactCards ? CARDS_PER_ROW_COMPACT_WIDE : CARDS_PER_ROW_DEFAULT;\n const {numRows} = this;\n const maxCards = maxCardsPerRow * numRows;\n const maxCardsOnNarrow = CARDS_PER_ROW_DEFAULT * numRows;\n\n // Show topics only for top stories and if it's not initialized yet (so\n // content doesn't shift when it is loaded) or has loaded with topics\n const shouldShowTopics = (id === \"topstories\" &&\n (!this.props.topics || this.props.topics.length > 0));\n\n const realRows = rows.slice(0, maxCards);\n\n // The empty state should only be shown after we have initialized and there is no content.\n // Otherwise, we should show placeholders.\n const shouldShowEmptyState = initialized && !rows.length;\n\n const cards = [];\n if (!shouldShowEmptyState) {\n for (let i = 0; i < maxCards; i++) {\n const link = realRows[i];\n // On narrow viewports, we only show 3 cards per row. We'll mark the rest as\n // .hide-for-narrow to hide in CSS via @media query.\n const className = (i >= maxCardsOnNarrow) ? \"hide-for-narrow\" : \"\";\n cards.push(link ? (\n <Card key={i}\n index={i}\n className={className}\n dispatch={dispatch}\n link={link}\n contextMenuOptions={contextMenuOptions}\n eventSource={eventSource}\n shouldSendImpressionStats={this.props.shouldSendImpressionStats}\n isWebExtension={this.props.isWebExtension} />\n ) : (\n <PlaceholderCard key={i} className={className} />\n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\"\n ].join(\" \");\n\n // <Section> <-- React component\n // <section> <-- HTML5 element\n return (<ComponentPerfTimer {...this.props}>\n <CollapsibleSection className={sectionClassName} icon={icon}\n title={title}\n id={id}\n eventSource={eventSource}\n disclaimer={disclaimer}\n collapsed={this.props.pref.collapsed}\n showPrefName={(pref && pref.feed) || id}\n privacyNoticeURL={privacyNoticeURL}\n Prefs={this.props.Prefs}\n isFirst={isFirst}\n isLast={isLast}\n dispatch={this.props.dispatch}\n isWebExtension={this.props.isWebExtension}>\n\n {!shouldShowEmptyState && (<ul className=\"section-list\" style={{padding: 0}}>\n {cards}\n </ul>)}\n {shouldShowEmptyState &&\n <div className=\"section-empty-state\">\n <div className=\"empty-state\">\n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n <img className=\"empty-state-icon icon\" style={{\"background-image\": `url('${emptyState.icon}')`}} /> :\n <img className={`empty-state-icon icon icon-${emptyState.icon}`} />}\n <p className=\"empty-state-message\">\n {getFormattedMessage(emptyState.message)}\n </p>\n </div>\n </div>}\n {shouldShowTopics && <Topics topics={this.props.topics} read_more_endpoint={this.props.read_more_endpoint} />}\n </CollapsibleSection>\n </ComponentPerfTimer>);\n }\n}\n\nSection.defaultProps = {\n document: global.document,\n rows: [],\n emptyState: {},\n pref: {},\n title: \"\"\n};\n\nexport const SectionIntl = connect(state => ({Prefs: state.Prefs}))(injectIntl(Section));\n\nexport class _Sections extends React.PureComponent {\n renderSections() {\n const sections = [];\n const enabledSections = this.props.Sections.filter(section => section.enabled);\n const {sectionOrder, \"feeds.topsites\": showTopSites} = this.props.Prefs.values;\n // Enabled sections doesn't include Top Sites, so we add it if enabled.\n const expectedCount = enabledSections.length + ~~showTopSites;\n\n for (const sectionId of sectionOrder.split(\",\")) {\n const commonProps = {\n key: sectionId,\n isFirst: sections.length === 0,\n isLast: sections.length === expectedCount - 1\n };\n if (sectionId === \"topsites\" && showTopSites) {\n sections.push(<TopSites {...commonProps} />);\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push(<SectionIntl {...section} {...commonProps} />);\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n <div className=\"sections-list\">\n {this.renderSections()}\n </div>\n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Sections/Sections.jsx","export const cardContextTypes = {\n history: {\n intlID: \"type_label_visited\",\n icon: \"history-item\"\n },\n bookmark: {\n intlID: \"type_label_bookmarked\",\n icon: \"bookmark-added\"\n },\n trending: {\n intlID: \"type_label_recommended\",\n icon: \"trending\"\n },\n now: {\n intlID: \"type_label_now\",\n icon: \"now\"\n },\n pocket: {\n intlID: \"type_label_pocket\",\n icon: \"pocket\"\n },\n download: {\n intlID: \"type_label_downloaded\",\n icon: \"download\"\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Card/types.js","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {cardContextTypes} from \"./types\";\nimport {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport {GetPlatformString} from \"content-src/lib/link-menu-options\";\nimport {LinkMenu} from \"content-src/components/LinkMenu/LinkMenu\";\nimport React from \"react\";\nimport {ScreenshotUtils} from \"content-src/lib/screenshot-utils\";\n\n// Keep track of pending image loads to only request once\nconst gImageLoading = new Map();\n\n/**\n * Card component.\n * Cards are found within a Section component and contain information about a link such\n * as preview image, page title, page description, and some context about if the page\n * was visited, bookmarked, trending etc...\n * Each Section can make an unordered list of Cards which will create one instane of\n * this class. Each card will then get a context menu which reflects the actions that\n * can be done on this Card.\n */\nexport class _Card extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n activeCard: null,\n imageLoaded: false,\n showContextMenu: false,\n cardImage: null\n };\n this.onMenuButtonClick = this.onMenuButtonClick.bind(this);\n this.onMenuUpdate = this.onMenuUpdate.bind(this);\n this.onLinkClick = this.onLinkClick.bind(this);\n }\n\n /**\n * Helper to conditionally load an image and update state when it loads.\n */\n async maybeLoadImage() {\n // No need to load if it's already loaded or no image\n const {cardImage} = this.state;\n if (!cardImage) {\n return;\n }\n\n const imageUrl = cardImage.url;\n if (!this.state.imageLoaded) {\n // Initialize a promise to share a load across multiple card updates\n if (!gImageLoading.has(imageUrl)) {\n const loaderPromise = new Promise((resolve, reject) => {\n const loader = new Image();\n loader.addEventListener(\"load\", resolve);\n loader.addEventListener(\"error\", reject);\n loader.src = imageUrl;\n });\n\n // Save and remove the promise only while it's pending\n gImageLoading.set(imageUrl, loaderPromise);\n loaderPromise.catch(ex => ex).then(() => gImageLoading.delete(imageUrl)).catch();\n }\n\n // Wait for the image whether just started loading or reused promise\n await gImageLoading.get(imageUrl);\n\n // Only update state if we're still waiting to load the original image\n if (ScreenshotUtils.isRemoteImageLocal(this.state.cardImage, this.props.link.image) &&\n !this.state.imageLoaded) {\n this.setState({imageLoaded: true});\n }\n }\n }\n\n /**\n * Helper to obtain the next state based on nextProps and prevState.\n *\n * NOTE: Rename this method to getDerivedStateFromProps when we update React\n * to >= 16.3. We will need to update tests as well. We cannot rename this\n * method to getDerivedStateFromProps now because there is a mismatch in\n * the React version that we are using for both testing and production.\n * (i.e. react-test-render => \"16.3.2\", react => \"16.2.0\").\n *\n * See https://github.com/airbnb/enzyme/blob/master/packages/enzyme-adapter-react-16/package.json#L43.\n */\n static getNextStateFromProps(nextProps, prevState) {\n const {image} = nextProps.link;\n const imageInState = ScreenshotUtils.isRemoteImageLocal(prevState.cardImage, image);\n let nextState = null;\n\n // Image is updating.\n if (!imageInState && nextProps.link) {\n nextState = {imageLoaded: false};\n }\n\n if (imageInState) {\n return nextState;\n }\n\n // Since image was updated, attempt to revoke old image blob URL, if it exists.\n ScreenshotUtils.maybeRevokeBlobObjectURL(prevState.cardImage);\n\n nextState = nextState || {};\n nextState.cardImage = ScreenshotUtils.createLocalImageObject(image);\n\n return nextState;\n }\n\n onMenuButtonClick(event) {\n event.preventDefault();\n this.setState({\n activeCard: this.props.index,\n showContextMenu: true\n });\n }\n\n /**\n * Report to telemetry additional information about the item.\n */\n _getTelemetryInfo() {\n // Filter out \"history\" type for being the default\n if (this.props.link.type !== \"history\") {\n return {value: {card_type: this.props.link.type}};\n }\n\n return null;\n }\n\n onLinkClick(event) {\n event.preventDefault();\n if (this.props.link.type === \"download\") {\n this.props.dispatch(ac.OnlyToMain({\n type: at.SHOW_DOWNLOAD_FILE,\n data: this.props.link\n }));\n } else {\n const {altKey, button, ctrlKey, metaKey, shiftKey} = event;\n this.props.dispatch(ac.OnlyToMain({\n type: at.OPEN_LINK,\n data: Object.assign(this.props.link, {event: {altKey, button, ctrlKey, metaKey, shiftKey}})\n }));\n }\n if (this.props.isWebExtension) {\n this.props.dispatch(ac.WebExtEvent(at.WEBEXT_CLICK, {\n source: this.props.eventSource,\n url: this.props.link.url,\n action_position: this.props.index\n }));\n } else {\n this.props.dispatch(ac.UserEvent(Object.assign({\n event: \"CLICK\",\n source: this.props.eventSource,\n action_position: this.props.index\n }, this._getTelemetryInfo())));\n\n if (this.props.shouldSendImpressionStats) {\n this.props.dispatch(ac.ImpressionStats({\n source: this.props.eventSource,\n click: 0,\n tiles: [{id: this.props.link.guid, pos: this.props.index}]\n }));\n }\n }\n }\n\n onMenuUpdate(showContextMenu) {\n this.setState({showContextMenu});\n }\n\n componentDidMount() {\n this.maybeLoadImage();\n }\n\n componentDidUpdate() {\n this.maybeLoadImage();\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillMount() {\n const nextState = _Card.getNextStateFromProps(this.props, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n // NOTE: Remove this function when we update React to >= 16.3 since React will\n // call getDerivedStateFromProps automatically. We will also need to\n // rename getNextStateFromProps to getDerivedStateFromProps.\n componentWillReceiveProps(nextProps) {\n const nextState = _Card.getNextStateFromProps(nextProps, this.state);\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n ScreenshotUtils.maybeRevokeBlobObjectURL(this.state.cardImage);\n }\n\n render() {\n const {index, className, link, dispatch, contextMenuOptions, eventSource, shouldSendImpressionStats} = this.props;\n const {props} = this;\n const isContextMenuOpen = this.state.showContextMenu && this.state.activeCard === index;\n // Display \"now\" as \"trending\" until we have new strings #3402\n const {icon, intlID} = cardContextTypes[link.type === \"now\" ? \"trending\" : link.type] || {};\n const hasImage = this.state.cardImage || link.hasImage;\n const imageStyle = {backgroundImage: this.state.cardImage ? `url(${this.state.cardImage.url})` : \"none\"};\n const outerClassName = [\n \"card-outer\",\n className,\n isContextMenuOpen && \"active\",\n props.placeholder && \"placeholder\"\n ].filter(v => v).join(\" \");\n\n return (<li className={outerClassName}>\n <a href={link.type === \"pocket\" ? link.open_url : link.url} onClick={!props.placeholder ? this.onLinkClick : undefined}>\n <div className=\"card\">\n <div className=\"card-preview-image-outer\">\n {hasImage &&\n <div className={`card-preview-image${this.state.imageLoaded ? \" loaded\" : \"\"}`} style={imageStyle} />\n }\n </div>\n <div className=\"card-details\">\n {link.type === \"download\" && <div className=\"card-host-name alternate\"><FormattedMessage id={GetPlatformString(this.props.platform)} /></div>}\n {link.hostname &&\n <div className=\"card-host-name\">\n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n </div>\n }\n <div className={[\n \"card-text\",\n icon ? \"\" : \"no-context\",\n link.description ? \"\" : \"no-description\",\n link.hostname ? \"\" : \"no-host-name\"\n ].join(\" \")}>\n <h4 className=\"card-title\" dir=\"auto\">{link.title}</h4>\n <p className=\"card-description\" dir=\"auto\">{link.description}</p>\n </div>\n <div className=\"card-context\">\n {icon && !link.context && <span className={`card-context-icon icon icon-${icon}`} />}\n {link.icon && link.context && <span className=\"card-context-icon icon\" style={{backgroundImage: `url('${link.icon}')`}} />}\n {intlID && !link.context && <div className=\"card-context-label\"><FormattedMessage id={intlID} defaultMessage=\"Visited\" /></div>}\n {link.context && <div className=\"card-context-label\">{link.context}</div>}\n </div>\n </div>\n </div>\n </a>\n {!props.placeholder && <button className=\"context-menu-button icon\"\n onClick={this.onMenuButtonClick}>\n <span className=\"sr-only\">{`Open context menu for ${link.title}`}</span>\n </button>}\n {isContextMenuOpen &&\n <LinkMenu\n dispatch={dispatch}\n index={index}\n source={eventSource}\n onUpdate={this.onMenuUpdate}\n options={link.contextMenuOptions || contextMenuOptions}\n site={link}\n siteInfo={this._getTelemetryInfo()}\n shouldSendImpressionStats={shouldSendImpressionStats} />\n }\n </li>);\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => <Card placeholder={true} className={props.className} />;\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Card/Card.jsx","import {actionCreators as ac} from \"common/Actions.jsm\";\nimport {ContextMenu} from \"content-src/components/ContextMenu/ContextMenu\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {SectionMenuOptions} from \"content-src/lib/section-menu-options\";\n\nconst DEFAULT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"RemoveSection\", \"CheckCollapsed\", \"Separator\", \"ManageSection\"];\nconst WEBEXT_SECTION_MENU_OPTIONS = [\"MoveUp\", \"MoveDown\", \"Separator\", \"CheckCollapsed\", \"Separator\", \"ManageWebExtension\"];\n\nexport class _SectionMenu extends React.PureComponent {\n getOptions() {\n const {props} = this;\n\n const propOptions = props.isWebExtension ? [...WEBEXT_SECTION_MENU_OPTIONS] : [...DEFAULT_SECTION_MENU_OPTIONS];\n // Prepend custom options and a separator\n if (props.extraOptions) {\n propOptions.splice(0, 0, ...props.extraOptions, \"Separator\");\n }\n // Insert privacy notice before the last option (\"ManageSection\")\n if (props.privacyNoticeURL) {\n propOptions.splice(-1, 0, \"PrivacyNotice\");\n }\n\n const options = propOptions.map(o => SectionMenuOptions[o](props)).map(option => {\n const {action, id, type, userEvent} = option;\n if (!type && id) {\n option.label = props.intl.formatMessage({id});\n option.onClick = () => {\n props.dispatch(action);\n if (userEvent) {\n props.dispatch(ac.UserEvent({\n event: userEvent,\n source: props.source\n }));\n }\n };\n }\n return option;\n });\n\n // This is for accessibility to support making each item tabbable.\n // We want to know which item is the first and which item\n // is the last, so we can close the context menu accordingly.\n options[0].first = true;\n options[options.length - 1].last = true;\n return options;\n }\n\n render() {\n return (<ContextMenu\n onUpdate={this.props.onUpdate}\n options={this.getOptions()} />);\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/SectionMenu/SectionMenu.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class Topic extends React.PureComponent {\n render() {\n const {url, name} = this.props;\n return (<li><a key={name} className=\"topic-link\" href={url}>{name}</a></li>);\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics, read_more_endpoint} = this.props;\n return (\n <div className=\"topic\">\n <span><FormattedMessage id=\"pocket_read_more\" /></span>\n <ul>{topics && topics.map(t => <Topic key={t.name} url={t.url} name={t.name} />)}</ul>\n\n {read_more_endpoint && <a className=\"topic-read-more\" href={read_more_endpoint}>\n <FormattedMessage id=\"pocket_read_even_more\" />\n </a>}\n </div>\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/Topics/Topics.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {MIN_CORNER_FAVICON_SIZE, MIN_RICH_FAVICON_SIZE, TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {injectIntl} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_MAX_SITES_PER_ROW} from \"common/Reducers.jsm\";\nimport {TopSiteForm} from \"./TopSiteForm\";\nimport {TopSiteList} from \"./TopSite\";\n\nfunction topSiteIconType(link) {\n if (link.customScreenshotURL) {\n return \"custom_screenshot\";\n }\n if (link.tippyTopIcon || link.faviconRef === \"tippytop\") {\n return \"tippytop\";\n }\n if (link.faviconSize >= MIN_RICH_FAVICON_SIZE) {\n return \"rich_icon\";\n }\n if (link.screenshot && link.faviconSize >= MIN_CORNER_FAVICON_SIZE) {\n return \"screenshot_with_icon\";\n }\n if (link.screenshot) {\n return \"screenshot\";\n }\n return \"no_image\";\n}\n\n/**\n * Iterates through TopSites and counts types of images.\n * @param acc Accumulator for reducer.\n * @param topsite Entry in TopSites.\n */\nfunction countTopSitesIconsTypes(topSites) {\n const countTopSitesTypes = (acc, link) => {\n acc[topSiteIconType(link)]++;\n return acc;\n };\n\n return topSites.reduce(countTopSitesTypes, {\n \"custom_screenshot\": 0,\n \"screenshot_with_icon\": 0,\n \"screenshot\": 0,\n \"tippytop\": 0,\n \"rich_icon\": 0,\n \"no_image\": 0\n });\n}\n\nexport class _TopSites extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onFormClose = this.onFormClose.bind(this);\n }\n\n /**\n * Dispatch session statistics about the quality of TopSites icons and pinned count.\n */\n _dispatchTopSitesStats() {\n const topSites = this._getVisibleTopSites();\n const topSitesIconsStats = countTopSitesIconsTypes(topSites);\n const topSitesPinned = topSites.filter(site => !!site.isPinned).length;\n // Dispatch telemetry event with the count of TopSites images types.\n this.props.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {topsites_icon_stats: topSitesIconsStats, topsites_pinned: topSitesPinned}\n }));\n }\n\n /**\n * Return the TopSites that are visible based on prefs and window width.\n */\n _getVisibleTopSites() {\n // We hide 2 sites per row when not in the wide layout.\n let sitesPerRow = TOP_SITES_MAX_SITES_PER_ROW;\n // $break-point-widest = 1072px (from _variables.scss)\n if (!global.matchMedia(`(min-width: 1072px)`).matches) {\n sitesPerRow -= 2;\n }\n return this.props.TopSites.rows.slice(0, this.props.TopSitesRows * sitesPerRow);\n }\n\n componentDidUpdate() {\n this._dispatchTopSitesStats();\n }\n\n componentDidMount() {\n this._dispatchTopSitesStats();\n }\n\n onFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT_CLOSE\"\n }));\n this.props.dispatch({type: at.TOP_SITES_CANCEL_EDIT});\n }\n\n render() {\n const {props} = this;\n const {editForm} = props.TopSites;\n\n return (<ComponentPerfTimer id=\"topsites\" initialized={props.TopSites.initialized} dispatch={props.dispatch}>\n <CollapsibleSection\n className=\"top-sites\"\n icon=\"topsites\"\n id=\"topsites\"\n title={{id: \"header_top_sites\"}}\n extraMenuOptions={[\"AddTopSite\"]}\n showPrefName=\"feeds.topsites\"\n eventSource={TOP_SITES_SOURCE}\n collapsed={props.TopSites.pref ? props.TopSites.pref.collapsed : undefined}\n isFirst={props.isFirst}\n isLast={props.isLast}\n dispatch={props.dispatch}>\n <TopSiteList TopSites={props.TopSites} TopSitesRows={props.TopSitesRows} dispatch={props.dispatch} intl={props.intl} topSiteIconType={topSiteIconType} />\n <div className=\"edit-topsites-wrapper\">\n {editForm &&\n <div className=\"edit-topsites\">\n <div className=\"modal-overlay\" onClick={this.onFormClose} />\n <div className=\"modal\">\n <TopSiteForm\n site={props.TopSites.rows[editForm.index]}\n onClose={this.onFormClose}\n dispatch={this.props.dispatch}\n intl={this.props.intl}\n {...editForm} />\n </div>\n </div>\n }\n </div>\n </CollapsibleSection>\n </ComponentPerfTimer>);\n }\n}\n\nexport const TopSites = connect(state => ({\n TopSites: state.TopSites,\n Prefs: state.Prefs,\n TopSitesRows: state.Prefs.values.topSitesRows\n}))(injectIntl(_TopSites));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSites.jsx","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class TopSiteFormInput extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {validationError: this.props.validationError};\n this.onChange = this.onChange.bind(this);\n this.onMount = this.onMount.bind(this);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.shouldFocus && !this.props.shouldFocus) {\n this.input.focus();\n }\n if (nextProps.validationError && !this.props.validationError) {\n this.setState({validationError: true});\n }\n // If the component is in an error state but the value was cleared by the parent\n if (this.state.validationError && !nextProps.value) {\n this.setState({validationError: false});\n }\n }\n\n onChange(ev) {\n if (this.state.validationError) {\n this.setState({validationError: false});\n }\n this.props.onChange(ev);\n }\n\n onMount(input) {\n this.input = input;\n }\n\n render() {\n const showClearButton = this.props.value && this.props.onClear;\n const {typeUrl} = this.props;\n const {validationError} = this.state;\n\n return (<label><FormattedMessage id={this.props.titleId} />\n <div className={`field ${typeUrl ? \"url\" : \"\"}${validationError ? \" invalid\" : \"\"}`}>\n {this.props.loading ?\n <div className=\"loading-container\"><div className=\"loading-animation\" /></div> :\n showClearButton && <div className=\"icon icon-clear-input\" onClick={this.props.onClear} />}\n <input type=\"text\"\n value={this.props.value}\n ref={this.onMount}\n onChange={this.onChange}\n placeholder={this.props.intl.formatMessage({id: this.props.placeholderId})}\n autoFocus={this.props.shouldFocus}\n disabled={this.props.loading} />\n {validationError &&\n <aside className=\"error-tooltip\">\n <FormattedMessage id={this.props.errorMessageId} />\n </aside>}\n </div>\n </label>);\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSiteFormInput.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\nimport {TOP_SITES_SOURCE} from \"./TopSitesConstants\";\nimport {TopSiteFormInput} from \"./TopSiteFormInput\";\nimport {TopSiteLink} from \"./TopSite\";\n\nexport class TopSiteForm extends React.PureComponent {\n constructor(props) {\n super(props);\n const {site} = props;\n this.state = {\n label: site ? (site.label || site.hostname) : \"\",\n url: site ? site.url : \"\",\n validationError: false,\n customScreenshotUrl: site ? site.customScreenshotURL : \"\",\n showCustomScreenshotForm: site ? site.customScreenshotURL : false\n };\n this.onClearScreenshotInput = this.onClearScreenshotInput.bind(this);\n this.onLabelChange = this.onLabelChange.bind(this);\n this.onUrlChange = this.onUrlChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onClearUrlClick = this.onClearUrlClick.bind(this);\n this.onDoneButtonClick = this.onDoneButtonClick.bind(this);\n this.onCustomScreenshotUrlChange = this.onCustomScreenshotUrlChange.bind(this);\n this.onPreviewButtonClick = this.onPreviewButtonClick.bind(this);\n this.onEnableScreenshotUrlForm = this.onEnableScreenshotUrlForm.bind(this);\n this.validateUrl = this.validateUrl.bind(this);\n }\n\n onLabelChange(event) {\n this.setState({\"label\": event.target.value});\n }\n\n onUrlChange(event) {\n this.setState({\n url: event.target.value,\n validationError: false\n });\n }\n\n onClearUrlClick() {\n this.setState({\n url: \"\",\n validationError: false\n });\n }\n\n onEnableScreenshotUrlForm() {\n this.setState({showCustomScreenshotForm: true});\n }\n\n _updateCustomScreenshotInput(customScreenshotUrl) {\n this.setState({\n customScreenshotUrl,\n validationError: false\n });\n this.props.dispatch({type: at.PREVIEW_REQUEST_CANCEL});\n }\n\n onCustomScreenshotUrlChange(event) {\n this._updateCustomScreenshotInput(event.target.value);\n }\n\n onClearScreenshotInput() {\n this._updateCustomScreenshotInput(\"\");\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onDoneButtonClick(ev) {\n ev.preventDefault();\n\n if (this.validateForm()) {\n const site = {url: this.cleanUrl(this.state.url)};\n const {index} = this.props;\n if (this.state.label !== \"\") {\n site.label = this.state.label;\n }\n\n if (this.state.customScreenshotUrl) {\n site.customScreenshotURL = this.cleanUrl(this.state.customScreenshotUrl);\n } else if (this.props.site && this.props.site.customScreenshotURL) {\n // Used to flag that previously cached screenshot should be removed\n site.customScreenshotURL = null;\n }\n this.props.dispatch(ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {site, index}\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"TOP_SITES_EDIT\",\n action_position: index\n }));\n\n this.props.onClose();\n }\n }\n\n onPreviewButtonClick(event) {\n event.preventDefault();\n if (this.validateForm()) {\n this.props.dispatch(ac.AlsoToMain({\n type: at.PREVIEW_REQUEST,\n data: {url: this.cleanUrl(this.state.customScreenshotUrl)}\n }));\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"PREVIEW_REQUEST\"\n }));\n }\n }\n\n cleanUrl(url) {\n // If we are missing a protocol, prepend http://\n if (!url.startsWith(\"http:\") && !url.startsWith(\"https:\")) {\n return `http://${url}`;\n }\n return url;\n }\n\n _tryParseUrl(url) {\n try {\n return new URL(url);\n } catch (e) {\n return null;\n }\n }\n\n validateUrl(url) {\n const validProtocols = [\"http:\", \"https:\"];\n const urlObj = this._tryParseUrl(url) || this._tryParseUrl(this.cleanUrl(url));\n\n return urlObj && validProtocols.includes(urlObj.protocol);\n }\n\n validateCustomScreenshotUrl() {\n const {customScreenshotUrl} = this.state;\n return !customScreenshotUrl || this.validateUrl(customScreenshotUrl);\n }\n\n validateForm() {\n const validate = this.validateUrl(this.state.url) && this.validateCustomScreenshotUrl();\n\n if (!validate) {\n this.setState({validationError: true});\n }\n\n return validate;\n }\n\n _renderCustomScreenshotInput() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n const validationError = (this.state.validationError && !this.validateCustomScreenshotUrl()) || requestFailed;\n // Set focus on error if the url field is valid or when the input is first rendered and is empty\n const shouldFocus = (validationError && this.validateUrl(this.state.url)) || !customScreenshotUrl;\n const isLoading = this.props.previewResponse === null &&\n customScreenshotUrl && this.props.previewUrl === this.cleanUrl(customScreenshotUrl);\n\n if (!this.state.showCustomScreenshotForm) {\n return (<a className=\"enable-custom-image-input\" onClick={this.onEnableScreenshotUrlForm}>\n <FormattedMessage id=\"topsites_form_use_image_link\" />\n </a>);\n }\n return (<div className=\"custom-image-input-container\">\n <TopSiteFormInput\n errorMessageId={requestFailed ? \"topsites_form_image_validation\" : \"topsites_form_url_validation\"}\n loading={isLoading}\n onChange={this.onCustomScreenshotUrlChange}\n onClear={this.onClearScreenshotInput}\n shouldFocus={shouldFocus}\n typeUrl={true}\n value={customScreenshotUrl}\n validationError={validationError}\n titleId=\"topsites_form_image_url_label\"\n placeholderId=\"topsites_form_url_placeholder\"\n intl={this.props.intl} />\n </div>);\n }\n\n render() {\n const {customScreenshotUrl} = this.state;\n const requestFailed = this.props.previewResponse === \"\";\n // For UI purposes, editing without an existing link is \"add\"\n const showAsAdd = !this.props.site;\n const previous = (this.props.site && this.props.site.customScreenshotURL) || \"\";\n const changed = customScreenshotUrl && this.cleanUrl(customScreenshotUrl) !== previous;\n // Preview mode if changes were made to the custom screenshot URL and no preview was received yet\n // or the request failed\n const previewMode = changed && !this.props.previewResponse;\n const previewLink = Object.assign({}, this.props.site);\n if (this.props.previewResponse) {\n previewLink.screenshot = this.props.previewResponse;\n previewLink.customScreenshotURL = this.props.previewUrl;\n }\n return (\n <form className=\"topsite-form\">\n <div className=\"form-input-container\">\n <h3 className=\"section-title\">\n <FormattedMessage id={showAsAdd ? \"topsites_form_add_header\" : \"topsites_form_edit_header\"} />\n </h3>\n <div className=\"fields-and-preview\">\n <div className=\"form-wrapper\">\n <TopSiteFormInput onChange={this.onLabelChange}\n value={this.state.label}\n titleId=\"topsites_form_title_label\"\n placeholderId=\"topsites_form_title_placeholder\"\n intl={this.props.intl} />\n <TopSiteFormInput onChange={this.onUrlChange}\n shouldFocus={this.state.validationError && !this.validateUrl(this.state.url)}\n value={this.state.url}\n onClear={this.onClearUrlClick}\n validationError={this.state.validationError && !this.validateUrl(this.state.url)}\n titleId=\"topsites_form_url_label\"\n typeUrl={true}\n placeholderId=\"topsites_form_url_placeholder\"\n errorMessageId=\"topsites_form_url_validation\"\n intl={this.props.intl} />\n {this._renderCustomScreenshotInput()}\n </div>\n <TopSiteLink link={previewLink}\n defaultStyle={requestFailed}\n title={this.state.label} />\n </div>\n </div>\n <section className=\"actions\">\n <button className=\"cancel\" type=\"button\" onClick={this.onCancelButtonClick}>\n <FormattedMessage id=\"topsites_form_cancel_button\" />\n </button>\n {previewMode ?\n <button className=\"done preview\" type=\"submit\" onClick={this.onPreviewButtonClick}>\n <FormattedMessage id=\"topsites_form_preview_button\" />\n </button> :\n <button className=\"done\" type=\"submit\" onClick={this.onDoneButtonClick}>\n <FormattedMessage id={showAsAdd ? \"topsites_form_add_button\" : \"topsites_form_save_button\"} />\n </button>}\n </section>\n </form>\n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1\n};\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/TopSites/TopSiteForm.jsx","import {FormattedMessage, injectIntl} from \"react-intl\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {connect} from \"react-redux\";\nimport React from \"react\";\n\nexport class _StartupOverlay extends React.PureComponent {\n constructor(props) {\n super(props);\n this.onInputChange = this.onInputChange.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.clickSkip = this.clickSkip.bind(this);\n this.initScene = this.initScene.bind(this);\n this.removeOverlay = this.removeOverlay.bind(this);\n\n this.state = {emailInput: \"\"};\n this.initScene();\n }\n\n initScene() {\n // Timeout to allow the scene to render once before attaching the attribute\n // to trigger the animation.\n setTimeout(() => {\n this.setState({show: true});\n }, 10);\n }\n\n removeOverlay() {\n window.removeEventListener(\"visibilitychange\", this.removeOverlay);\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n }, 400);\n }\n\n onInputChange(e) {\n this.setState({emailInput: e.target.value});\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\"}));\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\"}));\n this.removeOverlay();\n }\n\n render() {\n let termsLink = (<a href=\"https://accounts.firefox.com/legal/terms\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_terms_of_service\" /></a>);\n let privacyLink = (<a href=\"https://accounts.firefox.com/legal/privacy\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_privacy_notice\" /></a>);\n return (\n <div className={`overlay-wrapper ${this.state.show ? \"show \" : \"\"}`}>\n <div className=\"background\" />\n <div className=\"firstrun-scene\">\n <div className=\"fxaccounts-container\">\n <div className=\"firstrun-left-divider\">\n <h1 className=\"firstrun-title\"><FormattedMessage id=\"firstrun_title\" /></h1>\n <p className=\"firstrun-content\"><FormattedMessage id=\"firstrun_content\" /></p>\n <a className=\"firstrun-link\" href=\"https://www.mozilla.org/firefox/features/sync/\" target=\"_blank\" rel=\"noopener noreferrer\"><FormattedMessage id=\"firstrun_learn_more_link\" /></a>\n </div>\n <div className=\"firstrun-sign-in\">\n <p className=\"form-header\"><FormattedMessage id=\"firstrun_form_header\" /><span className=\"sub-header\"><FormattedMessage id=\"firstrun_form_sub_header\" /></span></p>\n <form method=\"get\" action=\"https://accounts.firefox.com?entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun\" target=\"_blank\" rel=\"noopener noreferrer\" onSubmit={this.onSubmit}>\n <input name=\"service\" type=\"hidden\" value=\"sync\" />\n <input name=\"action\" type=\"hidden\" value=\"email\" />\n <input name=\"context\" type=\"hidden\" value=\"fx_desktop_v3\" />\n <input className=\"email-input\" name=\"email\" type=\"email\" required=\"true\" placeholder={this.props.intl.formatMessage({id: \"firstrun_email_input_placeholder\"})} onChange={this.onInputChange} />\n <div className=\"extra-links\">\n <FormattedMessage\n id=\"firstrun_extra_legal_links\"\n values={{\n terms: termsLink,\n privacy: privacyLink\n }} />\n </div>\n <button className=\"continue-button\" type=\"submit\"><FormattedMessage id=\"firstrun_continue_to_login\" /></button>\n </form>\n <button className=\"skip-button\" disabled={!!this.state.emailInput} onClick={this.clickSkip}><FormattedMessage id=\"firstrun_skip_login\" /></button>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport const StartupOverlay = connect()(injectIntl(_StartupOverlay));\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/components/StartupOverlay/StartupOverlay.jsx","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {perfService as perfSvc} from \"common/PerfService.jsm\";\n\nconst VISIBLE = \"visible\";\nconst VISIBILITY_CHANGE_EVENT = \"visibilitychange\";\n\nexport class DetectUserSessionStart {\n constructor(store, options = {}) {\n this._store = store;\n // Overrides for testing\n this.document = options.document || global.document;\n this._perfService = options.perfService || perfSvc;\n this._onVisibilityChange = this._onVisibilityChange.bind(this);\n }\n\n /**\n * sendEventOrAddListener - Notify immediately if the page is already visible,\n * or else set up a listener for when visibility changes.\n * This is needed for accurate session tracking for telemetry,\n * because tabs are pre-loaded.\n */\n sendEventOrAddListener() {\n if (this.document.visibilityState === VISIBLE) {\n // If the document is already visible, to the user, send a notification\n // immediately that a session has started.\n this._sendEvent();\n } else {\n // If the document is not visible, listen for when it does become visible.\n this.document.addEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n\n /**\n * _sendEvent - Sends a message to the main process to indicate the current\n * tab is now visible to the user, includes the\n * visibility_event_rcvd_ts time in ms from the UNIX epoch.\n */\n _sendEvent() {\n this._perfService.mark(\"visibility_event_rcvd_ts\");\n\n try {\n let visibility_event_rcvd_ts = this._perfService\n .getMostRecentAbsMarkStartByName(\"visibility_event_rcvd_ts\");\n\n this._store.dispatch(ac.AlsoToMain({\n type: at.SAVE_SESSION_PERF_DATA,\n data: {visibility_event_rcvd_ts}\n }));\n } catch (ex) {\n // If this failed, it's likely because the `privacy.resistFingerprinting`\n // pref is true. We should at least not blow up.\n }\n }\n\n /**\n * _onVisibilityChange - If the visibility has changed to visible, sends a notification\n * and removes the event listener. This should only be called once per tab.\n */\n _onVisibilityChange() {\n if (this.document.visibilityState === VISIBLE) {\n this._sendEvent();\n this.document.removeEventListener(VISIBILITY_CHANGE_EVENT, this._onVisibilityChange);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./content-src/lib/detect-user-session-start.js"],"sourceRoot":""}
\ No newline at end of file
--- a/browser/extensions/activity-stream/install.rdf.in
+++ b/browser/extensions/activity-stream/install.rdf.in
@@ -3,17 +3,17 @@
#filter substitution
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>activity-stream@mozilla.org</em:id>
<em:type>2</em:type>
<em:bootstrap>true</em:bootstrap>
<em:unpack>false</em:unpack>
- <em:version>2018.06.08.1119-0cf21c41</em:version>
+ <em:version>2018.06.21.1244-eca5e987</em:version>
<em:name>Activity Stream</em:name>
<em:description>A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox.</em:description>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>@MOZ_APP_VERSION@</em:minVersion>
--- a/browser/extensions/activity-stream/lib/ASRouter.jsm
+++ b/browser/extensions/activity-stream/lib/ASRouter.jsm
@@ -221,74 +221,93 @@ class _ASRouter {
getMessageById(id) {
return this.state.messages.find(message => message.id === id);
}
_onStateChanged(state) {
this.messageChannel.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: state});
}
- _getBundledMessages(originalMessage) {
- let bundledMessages = [];
- bundledMessages.push({content: originalMessage.content, id: originalMessage.id});
- for (const msg of this.state.messages) {
- if (msg.bundled && msg.template === originalMessage.template && msg.id !== originalMessage.id && !this.state.blockList.includes(msg.id)) {
- // Only copy the content - that's what the UI cares about
- bundledMessages.push({content: msg.content, id: msg.id});
+ async _getBundledMessages(originalMessage, target, force = false) {
+ let result = [{content: originalMessage.content, id: originalMessage.id}];
+
+ // First, find all messages of same template. These are potential matching targeting candidates
+ let bundledMessagesOfSameTemplate = this._getUnblockedMessages()
+ .filter(msg => msg.bundled && msg.template === originalMessage.template && msg.id !== originalMessage.id);
+
+ if (force) {
+ // Forcefully show the messages without targeting matching - this is for about:newtab#asrouter to show the messages
+ for (const message of bundledMessagesOfSameTemplate) {
+ result.push({content: message.content, id: message.id});
+ // Stop once we have enough messages to fill a bundle
+ if (result.length === originalMessage.bundled) {
+ break;
+ }
}
-
- // Stop once we have enough messages to fill a bundle
- if (bundledMessages.length === originalMessage.bundled) {
- break;
+ } else {
+ while (bundledMessagesOfSameTemplate.length) {
+ // Find a message that matches the targeting context - or break if there are no matching messages
+ const message = await ASRouterTargeting.findMatchingMessage(bundledMessagesOfSameTemplate, target);
+ if (!message) {
+ /* istanbul ignore next */ // Code coverage in mochitests
+ break;
+ }
+ // Only copy the content of the message (that's what the UI cares about)
+ // Also delete the message we picked so we don't pick it again
+ result.push({content: message.content, id: message.id});
+ bundledMessagesOfSameTemplate.splice(bundledMessagesOfSameTemplate.findIndex(msg => msg.id === message.id), 1);
+ // Stop once we have enough messages to fill a bundle
+ if (result.length === originalMessage.bundled) {
+ break;
+ }
}
}
// If we did not find enough messages to fill the bundle, do not send the bundle down
- if (bundledMessages.length < originalMessage.bundled) {
+ if (result.length < originalMessage.bundled) {
return null;
}
-
- return {bundle: bundledMessages, provider: originalMessage.provider, template: originalMessage.template};
+ return {bundle: result, provider: originalMessage.provider, template: originalMessage.template};
}
_getUnblockedMessages() {
let {state} = this;
return state.messages.filter(item => !state.blockList.includes(item.id));
}
- _sendMessageToTarget(message, target) {
+ async _sendMessageToTarget(message, target, force = false) {
let bundledMessages;
// If this message needs to be bundled with other messages of the same template, find them and bundle them together
if (message && message.bundled) {
- bundledMessages = this._getBundledMessages(message);
+ bundledMessages = await this._getBundledMessages(message, target, force);
}
if (message && !message.bundled) {
// If we only need to send 1 message, send the message
target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "SET_MESSAGE", data: message});
} else if (bundledMessages) {
// If the message we want is bundled with other messages, send the entire bundle
target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: bundledMessages});
} else {
target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "CLEAR_ALL"});
}
}
async sendNextMessage(target) {
const msgs = this._getUnblockedMessages();
- let message = await ASRouterTargeting.findMatchingMessage(msgs);
+ let message = await ASRouterTargeting.findMatchingMessage(msgs, target);
await this.setState({lastMessageId: message ? message.id : null});
- this._sendMessageToTarget(message, target);
+ await this._sendMessageToTarget(message, target);
}
- async setMessageById(id) {
+ async setMessageById(id, target, force = true) {
await this.setState({lastMessageId: id});
const newMessage = this.getMessageById(id);
- this._sendMessageToTarget(newMessage, this.messageChannel);
+ await this._sendMessageToTarget(newMessage, target, force);
}
async blockById(idOrIds) {
const idsToBlock = Array.isArray(idOrIds) ? idOrIds : [idOrIds];
await this.setState(state => {
const blockList = [...state.blockList, ...idsToBlock];
this._storage.set("blockList", blockList);
return {blockList};
@@ -350,17 +369,17 @@ class _ASRouter {
for (let message of action.data.bundle) {
blockList.splice(blockList.indexOf(message.id), 1);
}
this._storage.set("blockList", blockList);
return {blockList};
});
break;
case "OVERRIDE_MESSAGE":
- await this.setMessageById(action.data.id);
+ await this.setMessageById(action.data.id, target);
break;
case "ADMIN_CONNECT_STATE":
target.sendAsyncMessage(OUTGOING_MESSAGE_NAME, {type: "ADMIN_SET_STATE", data: this.state});
break;
}
}
}
this._ASRouter = _ASRouter;
--- a/browser/extensions/activity-stream/lib/ASRouterFeed.jsm
+++ b/browser/extensions/activity-stream/lib/ASRouterFeed.jsm
@@ -29,20 +29,22 @@ class ASRouterFeed {
}
/**
* enableOrDisableBasedOnPref - Check the experiment pref
* (asrouterExperimentEnabled) and enable or disable ASRouter based on
* its value.
*/
enableOrDisableBasedOnPref() {
- const isExperimentEnabled = this.store.getState().Prefs.values.asrouterExperimentEnabled;
- if (!this.router.initialized && isExperimentEnabled) {
+ const prefs = this.store.getState().Prefs.values;
+ const isExperimentEnabled = prefs.asrouterExperimentEnabled;
+ const isOnboardingExperimentEnabled = prefs.asrouterOnboardingCohort;
+ if (!this.router.initialized && (isExperimentEnabled || isOnboardingExperimentEnabled > 0)) {
this.enable();
- } else if (!isExperimentEnabled && this.router.initialized) {
+ } else if ((!isExperimentEnabled || isOnboardingExperimentEnabled === 0) && this.router.initialized) {
this.disable();
}
}
onAction(action) {
switch (action.type) {
case at.INIT:
case at.PREF_CHANGED:
--- a/browser/extensions/activity-stream/lib/ASRouterTargeting.jsm
+++ b/browser/extensions/activity-stream/lib/ASRouterTargeting.jsm
@@ -1,15 +1,16 @@
ChromeUtils.import("resource://gre/modules/components-utils/FilterExpressions.jsm");
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "ProfileAge",
"resource://gre/modules/ProfileAge.jsm");
ChromeUtils.import("resource://gre/modules/Console.jsm");
const FXA_USERNAME_PREF = "services.sync.username";
+const ONBOARDING_EXPERIMENT_PREF = "browser.newtabpage.activity-stream.asrouterOnboardingCohort";
/**
* removeRandomItemFromArray - Removes a random item from the array and returns it.
*
* @param {Array} arr An array of items
* @returns one of the items in the array
*/
function removeRandomItemFromArray(arr) {
@@ -20,41 +21,49 @@ const TargetingGetters = {
get profileAgeCreated() {
return new ProfileAge(null, null).created;
},
get profileAgeReset() {
return new ProfileAge(null, null).reset;
},
get hasFxAccount() {
return Services.prefs.prefHasUserValue(FXA_USERNAME_PREF);
+ },
+ // Temporary targeting function for the purposes of running the simplified onboarding experience
+ get isInExperimentCohort() {
+ return Services.prefs.getIntPref(ONBOARDING_EXPERIMENT_PREF, 0);
}
};
+function EnvironmentTargeting(target) {
+ return {isFirstRun: target.url === "about:welcome"};
+}
+
this.ASRouterTargeting = {
Environment: TargetingGetters,
- isMatch(filterExpression, context = this.Environment) {
- return FilterExpressions.eval(filterExpression, context);
+ isMatch(filterExpression, target, context = this.Environment) {
+ return FilterExpressions.eval(filterExpression, {...context, ...EnvironmentTargeting(target)});
},
/**
* findMatchingMessage - Given an array of messages, returns one message
* whos targeting expression evaluates to true
*
* @param {Array} messages An array of AS router messages
* @param {obj|null} context A FilterExpression context. Defaults to TargetingGetters above.
* @returns {obj} an AS router message
*/
- async findMatchingMessage(messages, context) {
+ async findMatchingMessage(messages, target, context) {
const arrayOfItems = [...messages];
let match;
let candidate;
while (!match && arrayOfItems.length) {
candidate = removeRandomItemFromArray(arrayOfItems);
- if (candidate && (!candidate.targeting || await this.isMatch(candidate.targeting, context))) {
+ if (candidate && (!candidate.targeting || await this.isMatch(candidate.targeting, target, context))) {
match = candidate;
}
}
return match;
}
};
this.EXPORTED_SYMBOLS = ["ASRouterTargeting", "removeRandomItemFromArray"];
--- a/browser/extensions/activity-stream/lib/ActivityStream.jsm
+++ b/browser/extensions/activity-stream/lib/ActivityStream.jsm
@@ -158,16 +158,20 @@ const PREFS_CONFIG = new Map([
["sectionOrder", {
title: "The rendering order for the sections",
value: "topsites,topstories,highlights"
}],
["asrouterExperimentEnabled", {
title: "Is the message center experiment on?",
value: false
}],
+ ["asrouterOnboardingCohort", {
+ title: "What cohort is the user in?",
+ value: 0
+ }],
["asrouter.snippetsUrl", {
title: "A custom URL for the AS router snippets",
value: ""
}]
]);
// Array of each feed's FEEDS_CONFIG factory and values to add to PREFS_CONFIG
const FEEDS_DATA = [
--- a/browser/extensions/activity-stream/lib/OnboardingMessageProvider.jsm
+++ b/browser/extensions/activity-stream/lib/OnboardingMessageProvider.jsm
@@ -9,56 +9,60 @@ const ONBOARDING_MESSAGES = [
template: "onboarding",
bundled: 3,
content: {
title: "Private Browsing",
text: "Browse by yourself. Private Browsing with Tracking Protection blocks online trackers that follow you around the web.",
icon: "privatebrowsing",
button_label: "Try It Now",
button_action: "OPEN_PRIVATE_BROWSER_WINDOW"
- }
+ },
+ targeting: "isFirstRun"
},
{
id: "ONBOARDING_2",
template: "onboarding",
bundled: 3,
content: {
title: "Screenshots",
text: "Take, save and share screenshots - without leaving Firefox. Capture a region or an entire page as you browse. Then save to the web for easy access and sharing.",
icon: "screenshots",
button_label: "Try It Now",
button_action: "OPEN_URL",
button_action_params: "https://screenshots.firefox.com/#tour"
- }
+ },
+ targeting: "isFirstRun"
},
{
id: "ONBOARDING_3",
template: "onboarding",
bundled: 3,
content: {
title: "Add-ons",
text: "Add even more features that make Firefox work harder for you. Compare prices, check the weather or express your personality with a custom theme.",
icon: "addons",
button_label: "Try It Now",
button_action: "OPEN_ABOUT_PAGE",
button_action_params: "addons"
- }
+ },
+ targeting: "isFirstRun && isInExperimentCohort == 1"
},
{
id: "ONBOARDING_4",
template: "onboarding",
bundled: 3,
content: {
title: "Extensions",
text: "Make browsing faster, smarter, or safer with browser apps. Protect passwords, find deals, download videos, and much more. You can even block annoying ads with extensions like Ghostery.",
icon: "gift",
button_label: "Get Ghostery",
button_action: "OPEN_URL",
button_action_params: "https://addons.mozilla.org/en-US/firefox/addon/ghostery/"
- }
+ },
+ targeting: "isFirstRun && isInExperimentCohort == 2"
}
];
const OnboardingMessageProvider = {
getMessages() {
return ONBOARDING_MESSAGES;
}
};
--- a/browser/extensions/activity-stream/locales/ar/strings.properties
+++ b/browser/extensions/activity-stream/locales/ar/strings.properties
@@ -166,12 +166,36 @@ error_fallback_default_info=أخ! حدث خطب ما أثناء تحميل المحتوى.
error_fallback_default_refresh_suggestion=أنعِش الصفحة لإعادة المحاولة.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=أزِل القسم
section_menu_action_collapse_section=اطوِ القسم
section_menu_action_expand_section=وسّع القسم
section_menu_action_manage_section=أدِر القسم
+section_menu_action_manage_webext=أدِر الامتداد
section_menu_action_add_topsite=أضف موقعًا شائعًا
section_menu_action_move_up=انقل لأعلى
section_menu_action_move_down=انقل لأسفل
section_menu_action_privacy_notice=تنويه الخصوصية
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=خذ معك فَيَرفُكس أينما ذهبت
+firstrun_content=تشارك العلامات، وتأريخ التصفح، وكلمات السر وباقي الإعدادات على جميع أجهزتك.
+firstrun_learn_more_link=اطّلع على المزيد عن حسابات فَيَرفُكس
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=أدخِل بريدك الإلكتروني
+firstrun_form_sub_header=لمواصلة استخدام «تزامُن فَيَرفُكس»
+
+firstrun_email_input_placeholder=البريد الإلكتروني
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=بمواصلة هذه العملية أنت توافق على {terms} و{privacy}.
+firstrun_terms_of_service=بنود الخدمة
+firstrun_privacy_notice=تنويه الخصوصية
+
+firstrun_continue_to_login=تابِع
+firstrun_skip_login=تجاوز هذه الخطوة
--- a/browser/extensions/activity-stream/locales/be/strings.properties
+++ b/browser/extensions/activity-stream/locales/be/strings.properties
@@ -86,51 +86,39 @@ section_disclaimer_topstories_buttontext=Зразумела
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=Хатні экран Firefox
prefs_home_description=Выберыце пажаданае змесціва для хатняга экрана Firefox.
-prefs_restore_defaults_button=Аднавіць прадвызначэнні
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} радок;{num} радкі;{num} радкоў
prefs_search_header=Пошук у сеціве
prefs_topsites_description=Сайты, якія вы наведваеце найчасцей
prefs_topstories_description2=Выдатнае змесціва з усяго інтэрнэту, выбранае спецыяльна для вас
prefs_topstories_options_sponsored_label=Артыкулы ад спонсараў
prefs_topstories_sponsored_learn_more=Даведацца больш
prefs_highlights_description=Выбраныя сайты, якія вы захавалі ці наведалі
prefs_highlights_options_visited_label=Наведаныя старонкі
prefs_highlights_options_download_label=Нядаўнія сцягванні
prefs_highlights_options_pocket_label=Захаваныя ў Pocket старонкі
prefs_snippets_description=Абнаўленні ад Mozilla і Firefox
settings_pane_button_label=Наладзіць вашу старонку новай карткі
-settings_pane_header=Налады новай карткі
-settings_pane_body2=Выберыце тое, што вы бачыце на гэтай старонцы.
-settings_pane_search_header=Пошук
-settings_pane_search_body=Пошук у Сеціве з вашай новай карткі.
settings_pane_topsites_header=Папулярныя сайты
-settings_pane_topsites_body=Доступ да сайтаў, якія вы часцей наведваеце.
-settings_pane_topsites_options_showmore=Паказваць два шэрагі
settings_pane_highlights_header=Выбранае
-settings_pane_highlights_body2=Знайдзіце зваротны шлях да цікавых рэчаў, якія вы нядаўна наведалі або дадалі ў закладкі.
settings_pane_highlights_options_bookmarks=Закладкі
-settings_pane_highlights_options_visited=Наведаныя сайты
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Урыўкі
-settings_pane_snippets_body=Чытайце кароткія і радасныя навіны ад Mozilla аб Firefox, інтэрнэт-культуру і выпадковыя мемы.
-settings_pane_done_button=Гатова
-settings_pane_topstories_options_sponsored=Паказаць артыкулы ад спонсараў
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=Правіць
edit_topsites_edit_button=Рэдагаваць гэты сайт
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Новы папулярны сайт
@@ -150,19 +138,16 @@ topsites_form_url_validation=Патрабуецца сапраўдны URL
topsites_form_image_validation=Не ўдалося атрымаць відарыс. Паспрабуйце іншы URL.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Папулярныя тэмы:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Іншыя навіны
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane
-# to provide more information about Pocket.
-pocket_description=Адкрыйце для сябе высакаякасны кантэнт, які вы маглі б прапусціць, з дапамогай Pocket, які стаў часткай Mozilla.
highlights_empty_state=Пачніце агляданне, і мы пакажам вам тут некаторыя з найлепшых артыкулаў, відэаролікаў і іншых старонак, якія вы нядаўна наведалі або дадалі ў закладкі.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Гатова. Праверце пазней, каб убачыць больш матэрыялаў ад {provider}. Не жадаеце чакаць? Выберыце папулярную тэму, каб знайсці больш цікавых матэрыялаў з усяго Інтэрнэту.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
@@ -181,12 +166,36 @@ error_fallback_default_info=Ох, нешта пайшло не так пры загрузцы гэтага змесціва.
error_fallback_default_refresh_suggestion=Абнавіць старонку, каб паўтарыць спробу.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Выдаліць раздзел
section_menu_action_collapse_section=Згарнуць раздзел
section_menu_action_expand_section=Разгарнуць раздзел
section_menu_action_manage_section=Наладзіць раздзел
+section_menu_action_manage_webext=Кіраваць пашырэннем
section_menu_action_add_topsite=Дадаць папулярны сайт
section_menu_action_move_up=Пасунуць вышэй
section_menu_action_move_down=Пасунуць ніжэй
section_menu_action_privacy_notice=Паведамленне аб прыватнасці
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Вазьміце Firefox з сабой
+firstrun_content=Атрымайце доступ да вашых закладак, гісторыі, пароляў і іншых налад на ўсіх вашых прыладах.
+firstrun_learn_more_link=Даведайцеся больш пра ўліковыя запісы Firefox
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Увядзіце сваю электронную пошту
+firstrun_form_sub_header=каб прадоўжыць з Firefox Sync.
+
+firstrun_email_input_placeholder=Эл.пошта
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Працягваючы, вы згаджаецеся з {terms} і {privacy}.
+firstrun_terms_of_service=умовамі абслугоўвання
+firstrun_privacy_notice=паведамленнем аб прыватнасці
+
+firstrun_continue_to_login=Працягнуць
+firstrun_skip_login=Прапусціць гэты крок
--- a/browser/extensions/activity-stream/locales/bg/strings.properties
+++ b/browser/extensions/activity-stream/locales/bg/strings.properties
@@ -1,11 +1,11 @@
newtab_page_title=Нов раздел
-header_top_sites=Често посещавани
+header_top_sites=Често посещавани страници
header_highlights=Акценти
# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
# of the corresponding content provider.
header_recommended_by=Препоръчано от {provider}
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
@@ -38,25 +38,34 @@ menu_action_pin=Закачане
menu_action_unpin=Откачане
confirm_history_delete_p1=Сигурни ли сте, че желаете да премахнете страницата навсякъде от историята?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
confirm_history_delete_notice_p2=Действието е необратимо.
menu_action_save_to_pocket=Запазване в Pocket
menu_action_delete_pocket=Изтриване от Pocket
+menu_action_archive_pocket=Архивиране в Pocket
# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
# found in the context menu of an item that has been downloaded. The intention behind
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
+menu_action_show_file_mac_os=Показване във Finder
+menu_action_show_file_windows=Отваряне на съдържащата папка
+menu_action_show_file_linux=Отваряне на съдържащата папка
+menu_action_show_file_default=Показване на файла
+menu_action_open_file=Отваряне на файла
# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
# link that belongs to this downloaded item"
+menu_action_copy_download_link=Копиране на препратка за изтегляне
+menu_action_go_to_download_page=Към страницата за изтегляне
+menu_action_remove_download=Премахване от историята
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
search_button=Търсене
# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
# showing search suggestions. {search_engine_name} is replaced with the name of
# the current default search engine. e.g. 'Google Search'
@@ -75,69 +84,118 @@ section_disclaimer_topstories_linktext=Разберете как работи.
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=Ясно, разбрах
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=Начална страница на Firefox
+prefs_home_description=Изберете съдържанието, което искате да виждате на началната страница на Firefox.
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_section_rows_option={num} ред;{num} реда
+prefs_search_header=Търсене в Мрежата
+prefs_topsites_description=Най-посещаваните от вас страници
+prefs_topstories_description2=Отлично съдържание от цялата Мрежа, подбрано лично за вас
+prefs_topstories_options_sponsored_label=Платени публикации
+prefs_topstories_sponsored_learn_more=Научете повече
+prefs_highlights_description=Избрани страници, които сте запазили или посетили
+prefs_highlights_options_visited_label=Посетени страници
+prefs_highlights_options_download_label=Последни изтегляния
+prefs_highlights_options_pocket_label=Страници, запазени в Pocket
+prefs_snippets_description=Новости от Mozilla и Firefox
settings_pane_button_label=Настройки на новия раздел
settings_pane_topsites_header=Често посещавани
settings_pane_highlights_header=Акценти
settings_pane_highlights_options_bookmarks=Отметки
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Изрезки
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
-edit_topsites_button_text=Редактиране
-edit_topsites_edit_button=Редактиране
+edit_topsites_button_text=Променяне
+edit_topsites_edit_button=Променяне
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
-topsites_form_add_header=Нов често посещавана страница
-topsites_form_edit_header=Редактиране на често посещавана страница
-topsites_form_title_placeholder=Заглавие
+topsites_form_add_header=Нова често посещавана страница
+topsites_form_edit_header=Променяне на често посещавана страница
+topsites_form_title_label=Заглавие
+topsites_form_title_placeholder=Въведете заглавие
+topsites_form_url_label=Адрес
+topsites_form_image_url_label=Адрес на изображение по желание
topsites_form_url_placeholder=Адрес
+topsites_form_use_image_link=Използване изображение по желание…
# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
topsites_form_preview_button=Преглед
topsites_form_add_button=Добавяне
topsites_form_save_button=Запазване
topsites_form_cancel_button=Отказ
topsites_form_url_validation=Необходим е валиден URL
+topsites_form_image_validation=Изображението не може да бъде заредено. Опитайте с друг адрес.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Популярни теми:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
-pocket_read_even_more=Повече статии
+pocket_read_even_more=Повече публикации
highlights_empty_state=Разглеждайте и тук ще ви покажем някои от най-добрите статии, видео и други страници, които сте посетили или отметнали наскоро.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
-topstories_empty_state=Разгледахте всичко. Проверете по-късно за повече истории от {provider}. Нямате търпение? Изберете популярна тема, за да откриете повече истории из цялата Мрежа.
+topstories_empty_state=Разгледахте всичко. Проверете по-късно за повече истории от {provider}. Нямате търпение? Изберете популярна тема, за да откриете повече истории от цялата Мрежа.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
-manual_migration_explanation2=Опитайте Firefox с отметките, историята и паролите от друг четец.
+manual_migration_explanation2=Опитайте Firefox с отметките, историята и паролите от друг мрежови четец.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=Не, благодаря
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
manual_migration_import_button=Внасяне
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
+error_fallback_default_info=Ааах, нещо се обърка и съдържанието не е заредено.
+error_fallback_default_refresh_suggestion=Презаредете страницата за повторен опит.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=Премахване на раздела
+section_menu_action_collapse_section=Свиване на раздела
+section_menu_action_expand_section=Разгъване на раздела
+section_menu_action_manage_section=Управление на раздела
+section_menu_action_manage_webext=Управление на добавката
+section_menu_action_add_topsite=Добавяне на често посещавана страница
section_menu_action_move_up=Преместване нагоре
section_menu_action_move_down=Преместване надолу
section_menu_action_privacy_notice=Политика за личните данни
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Вземете Firefox с вас
+firstrun_content=Вземете своите отметки, история, пароли и всички други настройки на всички ваши устройства.
+firstrun_learn_more_link=Научете повече за Firefox Accounts
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Въведете своята ел. поща,
+firstrun_form_sub_header=за да продължите към Firefox Sync
+
+firstrun_email_input_placeholder=адрес на електронна поща
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Продължавайки, вие се съгласявате с {terms} и {privacy}.
+firstrun_terms_of_service=Условията на услугата
+firstrun_privacy_notice=Политиката за лични данни
+
+firstrun_continue_to_login=Продължаване
+firstrun_skip_login=Пропускане
--- a/browser/extensions/activity-stream/locales/bn-BD/strings.properties
+++ b/browser/extensions/activity-stream/locales/bn-BD/strings.properties
@@ -166,12 +166,32 @@ error_fallback_default_info=ওহো, কনটেন্টটি লোড করতে কিছু ভুল হয়েছে।
error_fallback_default_refresh_suggestion=পুনরায় চেস্টা করার জন্য পেজটি রিফ্রেশ করুন।
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=সেকশনটি সরান
section_menu_action_collapse_section=সেকশনটি সংকোচন করুন
section_menu_action_expand_section=সেকশনটি প্রসারিত করুন
section_menu_action_manage_section=সেকশনটি পরিচালনা করুন
+section_menu_action_manage_webext=এক্সটেনসন ব্যবহার করুন
section_menu_action_add_topsite=টপ সাইট যোগ করুন
section_menu_action_move_up=উপরে উঠাও
section_menu_action_move_down=নীচে নামাও
section_menu_action_privacy_notice=গোপনীয়তা নীতি
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=অাপনি Firefox ব্যবহার করুন
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=আপনার ই-মেইল লিখুন
+
+firstrun_email_input_placeholder=ইমেইল
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_terms_of_service=সেবার শর্ত
+firstrun_privacy_notice=গোপনীয়তা নীতি
+
+firstrun_continue_to_login=চালিয়ে যান
+firstrun_skip_login=এই ধাপটি বাদ দিন
--- a/browser/extensions/activity-stream/locales/br/strings.properties
+++ b/browser/extensions/activity-stream/locales/br/strings.properties
@@ -153,44 +153,49 @@ topstories_empty_state=Aet oc'h betek penn. Distroit diwezhatoc'h evit muioc’h a istorioù digant {provider}. N’oc'h ket evit gortoz? Dibabit un danvez brudet evit klask muioc’h a bennadoù dedennus eus pep lec’h er web.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
manual_migration_explanation2=Amprouit Firefox gant sinedoù, roll istor ha gerioù-tremen ur merdeer all.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=N'am bo ket
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
-manual_migration_import_button=Emporzhiañ bremañ
+manual_migration_import_button=Enporzhiañ bremañ
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
error_fallback_default_info=Chaous, un dra bennak a zo a-dreuz en ur gargañ an endalc'had.
error_fallback_default_refresh_suggestion=Adkargit ar bajenn evit klask en-dro.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Dilemel ar gevrenn
section_menu_action_collapse_section=Bihanaat ar gevrenn
section_menu_action_expand_section=Astenn ar gevrenn
section_menu_action_manage_section=Merañ ar gevrenn
+section_menu_action_manage_webext=Merañ an askouezh
section_menu_action_add_topsite=Ouzhpennañ ul lec'hienn gwellañ din
section_menu_action_move_up=Dilec'hiañ etrezek ar c'hrec'h
section_menu_action_move_down=Dilec'hiañ etrezek an traoñ
section_menu_action_privacy_notice=Evezhiadennoù a-fet buhez prevez
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Kemerit Firefox ganeoc'h
+firstrun_content=Tizhit o sinedoù, roll-istor, gerioù-tremen hag arventennoù all war hon holl drevnadoù.
+firstrun_learn_more_link=Gouzout hiroc'h diwar-benn kontoù Firefox
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
firstrun_form_header=Enankit ho chomlec'h postel
firstrun_form_sub_header=evit kenderc'hel etrezek Firefox Sync.
firstrun_email_input_placeholder=Postel
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
-firstrun_terms_of_service=Divizoù arver
-firstrun_privacy_notice=Evezhiadennoù a-fet buhez prevez
+firstrun_extra_legal_links=En ur genderc'hel, e savit a-du gant an {terms} hag ar {privacy}.
+firstrun_terms_of_service=divizoù arver
+firstrun_privacy_notice=evezhiadennoù a-fet buhez prevez
firstrun_continue_to_login=Kenderc'hel
-firstrun_skip_login=Ober van ouzh ar bazenn-mañ
+firstrun_skip_login=Tremen ar bazenn-mañ
--- a/browser/extensions/activity-stream/locales/cak/strings.properties
+++ b/browser/extensions/activity-stream/locales/cak/strings.properties
@@ -103,17 +103,17 @@ prefs_topstories_sponsored_learn_more=Tetamäx ch'aqa' chik
prefs_highlights_description=Jun rucha'onem ruxaq, ri xayäk o xatz'ët
prefs_highlights_options_visited_label=Taq Ruxaq Etz'eton
prefs_highlights_options_download_label=K'a B'a' Keqasäx
prefs_highlights_options_pocket_label=Taq Ruxaq Eyakon pa Pocket
prefs_snippets_description=Kik'exoj Mozilla chuqa' Firefox
settings_pane_button_label=Tawichinaj ri ruxaq richin K'ak'a' Ruwi'
settings_pane_topsites_header=Utziläj taq ruxaq K'amaya'l
settings_pane_highlights_header=Taq k'ewachinïk
-settings_pane_highlights_options_bookmarks=Taq yaketal
+settings_pane_highlights_options_bookmarks=Yaketal
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Taq pir
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
--- a/browser/extensions/activity-stream/locales/el/strings.properties
+++ b/browser/extensions/activity-stream/locales/el/strings.properties
@@ -158,26 +158,36 @@ error_fallback_default_info=Ωχ, κάτι πήγε στραβά κατά τη φόρτωση του περιεχομένου.
error_fallback_default_refresh_suggestion=Ανανεώστε τη σελίδα για να δοκιμάσετε ξανά.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Αφαίρεση ενότητας
section_menu_action_collapse_section=Σύμπτυξη ενότητας
section_menu_action_expand_section=Επέκταση ενότητας
section_menu_action_manage_section=Διαχείριση ενότητας
+section_menu_action_manage_webext=Διαχείριση επέκτασης
section_menu_action_add_topsite=Προσθήκη κορυφαίας ιστοσελίδας
section_menu_action_move_up=Μετακίνηση επάνω
section_menu_action_move_down=Μετακίνηση κάτω
section_menu_action_privacy_notice=Σημείωση απορρήτου
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Πάρτε το Firefox μαζί σας
+firstrun_content=Κρατήστε τα αγαπημένα, το ιστορικό, τους κωδικούς πρόσβασης και άλλες ρυθμίσεις σας σε όλες σας τις συσκευές.
+firstrun_learn_more_link=Μάθετε περισσότερα για τους Λογαριασμούς Firefox
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Εισάγετε το email σας
+firstrun_form_sub_header=για να συνεχίσετε στο Firefox Sync.
firstrun_email_input_placeholder=Email
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Συνεχίζοντας, συμφωνείτε με τους {terms} και τη {privacy}.
+firstrun_terms_of_service=Όρους Υπηρεσίας
+firstrun_privacy_notice=Σημείωση Απορρήτου
firstrun_continue_to_login=Συνέχεια
+firstrun_skip_login=Παράλειψη βήματος
--- a/browser/extensions/activity-stream/locales/en-US/strings.properties
+++ b/browser/extensions/activity-stream/locales/en-US/strings.properties
@@ -182,17 +182,17 @@ section_menu_action_privacy_notice=Priva
firstrun_title=Take Firefox with You
firstrun_content=Get your bookmarks, history, passwords and other settings on all your devices.
firstrun_learn_more_link=Learn more about Firefox Accounts
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
firstrun_form_header=Enter your email
-firstrun_form_sub_header=to continue to Firefox Sync.
+firstrun_form_sub_header=to continue to Firefox Sync
firstrun_email_input_placeholder=Email
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_extra_legal_links=By proceeding, you agree to the {terms} and {privacy}.
firstrun_terms_of_service=Terms of Service
firstrun_privacy_notice=Privacy Notice
--- a/browser/extensions/activity-stream/locales/fa/strings.properties
+++ b/browser/extensions/activity-stream/locales/fa/strings.properties
@@ -8,23 +8,26 @@ header_recommended_by=پیشنهاد شده توسط {provider}
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
context_menu_button_sr=بازکردن فهرست زمینه برای {title}
# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
# the section edit context menu button is focused/active.
+section_context_menu_button_sr=باز کردن منو قسمت
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=مشاهده شده
type_label_bookmarked=نشانک شده
type_label_recommended=موضوعات داغ
+type_label_pocket=در Pocket ذخیره شد
+type_label_downloaded=دریافت شد
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
menu_action_bookmark=نشانک
menu_action_remove_bookmark=حذف نشانک
menu_action_open_new_window=باز کردن در یک پنجره جدید
@@ -34,25 +37,35 @@ menu_action_delete=حذف از تاریخچه
menu_action_pin=سنجاق کردن
menu_action_unpin=جدا کردن
confirm_history_delete_p1=آیا از پاک کردن همه نمونههای این صفحه از تاریخچه خود اطمینان دارید؟
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
confirm_history_delete_notice_p2=این عمل قابل برگشت نیست.
menu_action_save_to_pocket=ذخیرهسازی در Pocket
+menu_action_delete_pocket=حذف از Pocket
+menu_action_archive_pocket=آرشیو در Pocket
# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
# found in the context menu of an item that has been downloaded. The intention behind
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
+menu_action_show_file_mac_os=نمایش در Finder
+menu_action_show_file_windows=باز کردن پوشهٔ محتوی
+menu_action_show_file_linux=باز کردن پوشهٔ محتوی
+menu_action_show_file_default=نمایش پرونده
+menu_action_open_file=باز کردن پرونده
# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
# link that belongs to this downloaded item"
+menu_action_copy_download_link=رونوشت از پیوندِ بارگیری
+menu_action_go_to_download_page=رفتن به صفحهٔ بارگیری
+menu_action_remove_download=حذف از تاریخچه
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
search_button=جستوجو
# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
# showing search suggestions. {search_engine_name} is replaced with the name of
# the current default search engine. e.g. 'Google Search'
@@ -71,19 +84,32 @@ section_disclaimer_topstories_linktext=ببینید چگونه کار میکند.
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=باشه، گرفتم
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=محتوای صفحه خانگی فایرفاکس
+prefs_home_description=انتخاب کنید که چه محتوایی میخواهید در صفحه خانگیِ فایرفاکس خود ببینید.
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_section_rows_option={num} ردیف;{num} ردیف
+prefs_search_header=جستوجو وب
+prefs_topsites_description=سایتهایی که بیشتر بازدید میکنید
+prefs_topstories_description2=محتوایی عالی از سراسر وب، شخصی شده برای شما
+prefs_topstories_options_sponsored_label=محتوایی از حامیان مالی
+prefs_topstories_sponsored_learn_more=اطلاعات بیشتر
+prefs_highlights_description=گزیدهای از سایتهایی که بازدید یا ذخیره کردهاید
+prefs_highlights_options_visited_label=صفحات بازدید شده
+prefs_highlights_options_download_label=آخرین دریافت
+prefs_highlights_options_pocket_label=صفحات در Pocket ذخیره شد
+prefs_snippets_description=بروزرسانیهایی از موزیلا و فایرفاکس
settings_pane_button_label=صفحهٔ زبانه جدید را سفارشی کنید
settings_pane_topsites_header=سایتهای برتر
settings_pane_highlights_header=برجستهها
settings_pane_highlights_options_bookmarks=نشانکها
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
@@ -92,23 +118,29 @@ settings_pane_snippets_header=قطعهها
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=ويرايش
edit_topsites_edit_button=ویرایش این سایت
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=سایت برتر جدید
topsites_form_edit_header=ویرایش سایت برتر
+topsites_form_title_label=عنوان
topsites_form_title_placeholder=عنوان را وارد کنید
+topsites_form_url_label=آدرس
+topsites_form_image_url_label=آدرسِ سفارشی عکس
topsites_form_url_placeholder=یک URL تایپ کنید یا بچسبانید
+topsites_form_use_image_link=استفاده از یک عکس سفارشی…
# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
+topsites_form_preview_button=پیشنمایش
topsites_form_add_button=افزودن
topsites_form_save_button=ذخیره
topsites_form_cancel_button=انصراف
topsites_form_url_validation=URL معتبر الزامی است
+topsites_form_image_validation=بارگیری عکس شکست خورد. آدرس دیگری امتحان کنید.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=موضوعهای محبوب:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=مشاهده داستانهای بیشتر
@@ -125,25 +157,45 @@ manual_migration_explanation2=فایرفاکس را با نشانکها، تاریخچهها و کلمات عبور از سایر مرورگر ها تجربه کنید.
# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=نه ممنون
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
manual_migration_import_button=هماکنون وارد شوند
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
+error_fallback_default_info=اوه، هنگام بارگیری این محتوا مشکلی پیش آمد.
+error_fallback_default_refresh_suggestion=برای تلاش مجدد صفحه را بازآوری کنید.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=حذف قسمت
+section_menu_action_collapse_section=جمع کردن قسمت
+section_menu_action_expand_section=باز کردن قسمت
+section_menu_action_manage_section=مدیریت قسمت
+section_menu_action_manage_webext=مدیریت افزودنی
+section_menu_action_add_topsite=اضافه کردن سایت برتر
section_menu_action_move_up=جابهجایی به بالا
section_menu_action_move_down=جابهجایی به پایین
+section_menu_action_privacy_notice=نکات حریمخصوصی
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=فایرفاکس را همراه خود داشته باشید
+firstrun_content=نشانکها، تاریخچه، گذرواژهها و تنظیمات دیگر خود را بر روی تمام دستگاههای خود همراه خود داشته باشید.
+firstrun_learn_more_link=در مورد حسابهای فایرفاکس بیشتر بدانید
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=پستالکترونیکی خود را وارد کنید
+firstrun_form_sub_header=برای فعال کردن همگامسازی فایرفاکس.
+firstrun_email_input_placeholder=پستالکترونیکی
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=با ادامه دادن، شما {terms} و {privacy} قبول میکنید.
+firstrun_terms_of_service=قوانین سرویس
+firstrun_privacy_notice=نکات حریمخصوصی
+firstrun_continue_to_login=ادامه
+firstrun_skip_login=پرش از این مرحله
--- a/browser/extensions/activity-stream/locales/gl/strings.properties
+++ b/browser/extensions/activity-stream/locales/gl/strings.properties
@@ -86,51 +86,39 @@ section_disclaimer_topstories_buttontext=Entendín
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=Contido da páxina de inicio de Firefox
prefs_home_description=Escolla o contido que quere na pantalla de inicio de Firefox.
-prefs_restore_defaults_button=Restaurar a configuración predeterminada
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} fila;{num} filas
prefs_search_header=Busca na web
prefs_topsites_description=Os sitios que máis visita
prefs_topstories_description2=Os mellores contidos dispoñíbeis na web, personalizados para vostede
prefs_topstories_options_sponsored_label=Historias patrocinadas
prefs_topstories_sponsored_learn_more=Máis información
prefs_highlights_description=Unha selección de sitios que gardou ou visitou
prefs_highlights_options_visited_label=Páxinas visitadas
prefs_highlights_options_download_label=A descarga máis recente
prefs_highlights_options_pocket_label=Páxinas gardadas en Pocket
prefs_snippets_description=Actualizacións de Mozilla e Firefox
settings_pane_button_label=Personalice a páxina de nova lapela
-settings_pane_header=Preferencias de nova lapela
-settings_pane_body2=Escolla que quere ver nesta páxina.
-settings_pane_search_header=Busca
-settings_pane_search_body=Busca na web dende a nova lapela.
settings_pane_topsites_header=Sitios favoritos
-settings_pane_topsites_body=Acceda aos sitios web que máis visita.
-settings_pane_topsites_options_showmore=Amosar dúas filas
settings_pane_highlights_header=Destacados
-settings_pane_highlights_body2=Atope algunhas páxinas interesantes que vostede xa visitou ou marcou recentemente.
settings_pane_highlights_options_bookmarks=Marcadores
-settings_pane_highlights_options_visited=Sitios visitados
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Fragmentos
-settings_pane_snippets_body=Lea noticias curtas de Mozilla sobre o Firefox, a cultura de Internet, e ocasionalmente, algún meme.
-settings_pane_done_button=Feito
-settings_pane_topstories_options_sponsored=Amosar historias patrocinadas
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=Editar
edit_topsites_edit_button=Editar este sitio
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Novo sitio favorito
@@ -150,19 +138,16 @@ topsites_form_url_validation=Requírese un URL válido
topsites_form_image_validation=Produciuse un fallo ao cargar a imaxe. Probe un URL diferente.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Temas populares:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Ver máis historias
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane
-# to provide more information about Pocket.
-pocket_description=Grazas a Pocket, que agora forma parte de Mozilla, poderá descubrir contido de gran calidade que doutra forma se perdería.
highlights_empty_state=Comece a navegar e aquí amosarémoslle algúns dos mellores artigos, vídeos e outras páxinas que visitara recentemente ou que engadira aos marcadores.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Xa está ao día. Regrese máis tarde para ver máis historias de {provider}. Non pode agardar? Seleccione un tema popular e atopará máis historias interesantes da web.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
@@ -181,12 +166,36 @@ error_fallback_default_info=Vaites, prod
error_fallback_default_refresh_suggestion=Actualice a páxina para tentalo de novo.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Retirar sección
section_menu_action_collapse_section=Contraer sección
section_menu_action_expand_section=Expandir sección
section_menu_action_manage_section=Xestionar sección
+section_menu_action_manage_webext=Xestionar extensión
section_menu_action_add_topsite=Engadir sitio favorito
section_menu_action_move_up=Subir
section_menu_action_move_down=Baixar
section_menu_action_privacy_notice=Política de privacidade
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Leve o Firefox consigo
+firstrun_content=Acceda aos seus marcadores, historial, contrasinais e outras configuracións en todos os seus dispositivos.
+firstrun_learn_more_link=Obteña máis información sobre as contas Firefox
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Escriba o seu correo
+firstrun_form_sub_header=para continuar a Firefox Sync.
+
+firstrun_email_input_placeholder=Correo electrónico
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Ao continuar, acepta os {terms} e a {privacy}.
+firstrun_terms_of_service=Termos do servizo
+firstrun_privacy_notice=Política de privacidade
+
+firstrun_continue_to_login=Continuar
+firstrun_skip_login=Ignorar este paso
--- a/browser/extensions/activity-stream/locales/he/strings.properties
+++ b/browser/extensions/activity-stream/locales/he/strings.properties
@@ -14,27 +14,27 @@ context_menu_button_sr=פתיחת תפריט ההקשר עבור {title}
# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
# the section edit context menu button is focused/active.
section_context_menu_button_sr=פתיחת תפריט ההקשר של המדור
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=ביקורים קודמים
-type_label_bookmarked=שמור כסימניה
+type_label_bookmarked=שמור כסימנייה
type_label_recommended=פופולרי
type_label_pocket=נשמר ל־Pocket
type_label_downloaded=התקבל
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
-menu_action_bookmark=הוספת סימניה
-menu_action_remove_bookmark=הסרת סימניה
+menu_action_bookmark=הוספת סימנייה
+menu_action_remove_bookmark=הסרת סימנייה
menu_action_open_new_window=פתיחה בחלון חדש
menu_action_open_private_window=פתיחה בלשונית פרטית חדשה
menu_action_dismiss=הסרה
menu_action_delete=מחיקה מההיסטוריה
menu_action_pin=הצמדה
menu_action_unpin=ביטול הצמדה
confirm_history_delete_p1=למחוק כל עותק של העמוד הזה מההיסטוריה שלך?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
--- a/browser/extensions/activity-stream/locales/hi-IN/strings.properties
+++ b/browser/extensions/activity-stream/locales/hi-IN/strings.properties
@@ -162,16 +162,17 @@ error_fallback_default_info=उफ़, कुछ गलत इस सामग्री लोड हो गया ।
error_fallback_default_refresh_suggestion=पुन: प्रयास करने के लिए पृष्ठ ताज़ा करें ।
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=अनुभाग निकालें
section_menu_action_collapse_section=अनुभाग संक्षिप्त करें
section_menu_action_expand_section=अनुभाग विस्तृत करें
section_menu_action_manage_section=अनुभाग प्रबंधित करें
+section_menu_action_manage_webext=विस्तारक प्रबंधित करें
section_menu_action_add_topsite=शीर्ष साइट जोड़ें
section_menu_action_move_up=ऊपर जाएँ
section_menu_action_move_down=नीचे जाएँ
section_menu_action_privacy_notice=गोपनीयता नीति
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
firstrun_content=अपने सभी उपकरणों पर अपना पुस्तचिह्न, इतिहास, कूटशब्द और अन्य सेटिंग प्राप्त करें.
--- a/browser/extensions/activity-stream/locales/it/strings.properties
+++ b/browser/extensions/activity-stream/locales/it/strings.properties
@@ -29,17 +29,17 @@ type_label_downloaded=Scaricata
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
menu_action_bookmark=Aggiungi ai segnalibri
menu_action_remove_bookmark=Elimina segnalibro
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_pin=Fissa alla bacheca
menu_action_unpin=Rimuovi dalla bacheca
confirm_history_delete_p1=Eliminare tutte le occorrenze di questa pagina dalla cronologia?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
confirm_history_delete_notice_p2=Questa operazione non può essere annullata.
menu_action_save_to_pocket=Salva in Pocket
menu_action_delete_pocket=Elimina da Pocket
--- a/browser/extensions/activity-stream/locales/kk/strings.properties
+++ b/browser/extensions/activity-stream/locales/kk/strings.properties
@@ -86,51 +86,39 @@ section_disclaimer_topstories_buttontext=Жақсы, түсіндім
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=Firefox үй парағы құрамасы
prefs_home_description=Firefox үй парағында қандай құраманы көргіңіз келетінді таңдаңыз.
-prefs_restore_defaults_button=Бастапқы мәндерін қайтару
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} жол;{num} жол
prefs_search_header=Интернеттен іздеу
prefs_topsites_description=Сіз жиі шолатын сайттар
prefs_topstories_description2=Бүкіл Интернеттен алынған тамаша контент, талғамыңызға сай таңдалған
prefs_topstories_options_sponsored_label=Демеушілер мақалалары
prefs_topstories_sponsored_learn_more=Көбірек білу
prefs_highlights_description=Сіз сақтаған немесе шолған таңдамалы сайттар
prefs_highlights_options_visited_label=Қаралған беттер
prefs_highlights_options_download_label=Ең соңғы жүктеме
prefs_highlights_options_pocket_label=Pocket-ке сақталған беттер
prefs_snippets_description=Mozilla және Firefox жаңалықтары
settings_pane_button_label=Жаңа бетті баптаңыз
-settings_pane_header=Жаңа бет баптаулары
-settings_pane_body2=Бұл бетте не көргіңіз келетінді таңдаңыз.
-settings_pane_search_header=Іздеу
-settings_pane_search_body=Жаңа беттен интернеттен іздеңіз.
settings_pane_topsites_header=Үздік сайттар
-settings_pane_topsites_body=Көбірек қаралатын сайттарға қатынау.
-settings_pane_topsites_options_showmore=Екі жолды көрсету
settings_pane_highlights_header=Ерекше жаңалықтар
-settings_pane_highlights_body2=Сіз жақында қараған немесе бетбелгілерге қосқан қызықты нәрселерге қайтатын жолды табыңыз.
settings_pane_highlights_options_bookmarks=Бетбелгілер
-settings_pane_highlights_options_visited=Ашылған сайттар
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Үзінділер
-settings_pane_snippets_body=Mozilla ұсынған Firefox және интернет мәдениеті туралы қысқа жаңалықтарды, және кездейсоқ мемдерді оқыңыз.
-settings_pane_done_button=Дайын
-settings_pane_topstories_options_sponsored=Демеушілер мақалаларын көрсету
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=Түзету
edit_topsites_edit_button=Бұл сайтты түзету
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Жаңа топ сайты
@@ -150,19 +138,16 @@ topsites_form_url_validation=Жарамды сілтеме керек
topsites_form_image_validation=Суретті жүктеу қатемен аяқталды. Басқа URL адресін қолданып көріңіз.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Әйгілі тақырыптар:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Көбірек хикаяларды қарау
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane
-# to provide more information about Pocket.
-pocket_description=Ол болмаса, сіз жіберіп алатын мүмкіндігі бар жоғары сапалы құраманы Pocket көмегімен табыңыз, ол енді Mozilla-ның бөлігі болып табылады.
highlights_empty_state=Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Дайын. {provider} ұсынған көбірек мақалаларды алу үшін кейінірек тексеріңіз. Күте алмайсыз ба? Интернеттен көбірек тамаша мақалаларды алу үшін әйгілі теманы таңдаңыз.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
@@ -181,12 +166,36 @@ error_fallback_default_info=Қап, бұл құраманы жүктеу кезінде бірнәрсе қате кетті.
error_fallback_default_refresh_suggestion=Қайталап көру үшін, бетті жаңартыңыз.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Санатты өшіру
section_menu_action_collapse_section=Санатты бүктеу
section_menu_action_expand_section=Санатты жазық қылу
section_menu_action_manage_section=Санатты басқару
+section_menu_action_manage_webext=Кеңейтуді басқару
section_menu_action_add_topsite=Үздік сайт қосу
section_menu_action_move_up=Жоғары жылжыту
section_menu_action_move_down=Төмен жылжыту
section_menu_action_privacy_notice=Жекелік ескертуі
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Firefox-ты өзіңізбен бірге алыңыз
+firstrun_content=Бетбелгілер, тарих, парольдер және т.б. баптауларды құрылғыларыңыздың барлығында алыңыз.
+firstrun_learn_more_link=Firefox тіркелгілері туралы көбірек білу
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Эл. поштаны енгізіңіз
+firstrun_form_sub_header=Firefox синхрондауына жалғастыру үшін.
+
+firstrun_email_input_placeholder=Эл. пошта
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Жалғастырсаңыз, {terms} және {privacy} шарттарымен келісесіз.
+firstrun_terms_of_service=Қолдану шарттары
+firstrun_privacy_notice=Жекелік ескертуі
+
+firstrun_continue_to_login=Жалғастыру
+firstrun_skip_login=Бұл қадамды аттап кету
--- a/browser/extensions/activity-stream/locales/oc/strings.properties
+++ b/browser/extensions/activity-stream/locales/oc/strings.properties
@@ -1,20 +1,24 @@
newtab_page_title=Onglet novèl
header_top_sites=Sites favorits
+header_highlights=Notables
# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
# of the corresponding content provider.
+header_recommended_by=Recomandat per {provider}
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
+context_menu_button_sr=Dobrir lo menú contextual de {title}
# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
# the section edit context menu button is focused/active.
+section_context_menu_button_sr=Dobrir lo menú contextual de la seccion
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=Visitat
type_label_bookmarked=Apondut als marcapaginas
type_label_recommended=Tendéncia
type_label_pocket=Pagina enregistrada dins Pocket
@@ -23,96 +27,174 @@ type_label_downloaded=Telecargat
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
menu_action_bookmark=Marcar aquesta pagina
menu_action_remove_bookmark=Suprimir lo marcapagina
menu_action_open_new_window=Dobrir lo ligam dins una fenèstra novèla
menu_action_open_private_window=Dobrir lo ligam dins una fenèstra de navegacion privada
+menu_action_dismiss=Tirar
+menu_action_delete=Suprimir de l’istoric
+menu_action_pin=Penjar
+menu_action_unpin=Despenjar
+confirm_history_delete_p1=Volètz vertadièrament suprimir l’istoric de totas las instàncias d’aquesta pagina ?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
+confirm_history_delete_notice_p2=Impossible d'anullar aquesta accion.
+menu_action_save_to_pocket=Enregistrar dins Pocket
+menu_action_delete_pocket=Suprimir de Pocket
+menu_action_archive_pocket=Archivar dins Pocket
# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
# found in the context menu of an item that has been downloaded. The intention behind
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
+menu_action_show_file_mac_os=Mostrar dins Finder
+menu_action_show_file_windows=Dobrir lo repertòri ont se tròba
+menu_action_show_file_linux=Dobrir lo repertòri que conten lo fichièr
menu_action_show_file_default=Mostrar lo fichièr
menu_action_open_file=Dobrir lo fichièr
# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
# link that belongs to this downloaded item"
+menu_action_copy_download_link=Copiar lo ligam de telecargament
+menu_action_go_to_download_page=Anar a la pagina de telecargament
menu_action_remove_download=Tirar de l’istoric
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
search_button=Recercar
# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
# showing search suggestions. {search_engine_name} is replaced with the name of
# the current default search engine. e.g. 'Google Search'
+search_header=Recèrca {search_engine_name}
# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
# the user hasn't typed anything yet.
search_web_placeholder=Recèrca sul web
# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
# the topstories section title to provide additional information about
# how the stories are selected.
+section_disclaimer_topstories=Los articles mai interessants del web, seleccionats segon çò que legissètz . Gràcia a Pocket, que ara es part de Mozilla.
section_disclaimer_topstories_linktext=Vejatz cossí fonciona.
# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=Comprés
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=Contengut de la pagina d’acuèlh de Firefox
+prefs_home_description=Causissètz lo contengut que volètz a la pagina d’acuèlh de Fireofx.
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_section_rows_option={num} linha;{num} linhas
+prefs_search_header=Recèrca web
+prefs_topsites_description=Los sites que visitatz mai sovent
+prefs_topstories_description2=De contengut interessant de tot lo web, personalizat per vos
+prefs_topstories_options_sponsored_label=Articles pairinejats
+prefs_topstories_sponsored_learn_more=Ne saber mai
+prefs_highlights_description=Una seleccion de sites qu’avètz enregistrats o visitats
+prefs_highlights_options_visited_label=Paginas visitadas
+prefs_highlights_options_download_label=Telecargament mai recent
+prefs_highlights_options_pocket_label=Paginas enregistradas dins Pocket
+prefs_snippets_description=Actualitat de Mozilla e Firefox
+settings_pane_button_label=Personalizar la pagina Onglet novèl
+settings_pane_topsites_header=Sites populars
+settings_pane_highlights_header=Notables
+settings_pane_highlights_options_bookmarks=Marcapaginas
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
+settings_pane_snippets_header=Extraches
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
+edit_topsites_button_text=Modificar
+edit_topsites_edit_button=Modificar aqueste site
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
+topsites_form_add_header=Noù site popular
+topsites_form_edit_header=Modificar lo site popular
+topsites_form_title_label=Títol
+topsites_form_title_placeholder=Picar un títol
+topsites_form_url_label=URL
+topsites_form_image_url_label=URL d'imatge personalizat
+topsites_form_url_placeholder=Picar o pegar una URL
+topsites_form_use_image_link=Utilizar un imatge personalizat…
# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
+topsites_form_preview_button=Apercebut
+topsites_form_add_button=Apondre
+topsites_form_save_button=Enregistrar
+topsites_form_cancel_button=Anullar
+topsites_form_url_validation=Una URLvalida es requesida
+topsites_form_image_validation=L’imatge a pas capitat de se cargar. Ensajatz una URL diferenta.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
+pocket_read_more=Tèmas populars :
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
+pocket_read_even_more=Veire mai d’articles
+highlights_empty_state=Començatz de navegar e aquí vos mostrarem los melhors articles, vidèos e autras paginas qu’avètz visitadas o apondudas als marcapaginas.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
+manual_migration_explanation2=Ensajatz Firefox amb marcapaginas, istoric e senhals d’un autre navegador.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browser’s profile into Firefox.
+manual_migration_cancel_button=Non, mercé
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
+manual_migration_import_button=Importar
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
+error_fallback_default_info=Ops, una error s’es producha en cargar aqueste contengut.
+error_fallback_default_refresh_suggestion=Actualizatz la pagina per tornar ensajar.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=Suprimir la seccion
+section_menu_action_collapse_section=Reduire la seccion
+section_menu_action_expand_section=Desplegar la seccion
+section_menu_action_manage_section=Gerir la seccion
+section_menu_action_manage_webext=Gerir l’extension
+section_menu_action_add_topsite=Apondre als sites populars
+section_menu_action_move_up=Desplaçar cap amont
+section_menu_action_move_down=Desplaçar cap aval
+section_menu_action_privacy_notice=Politica de confidencialitat
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Emportatz Firefox amb vos
+firstrun_content=Accedissètz als marcapaginas, istoric, senhals d’autres paramètres de totes vòstres periferics.
+firstrun_learn_more_link=Mai d’explicacions tocant los comptes Firefox
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Picatz vòstra adreça electronica
+firstrun_form_sub_header=per contunhar amb Firefox Sync.
+firstrun_email_input_placeholder=Adreça electronica
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Se contunhatz, acceptatz las {terms} e l’{privacy}.
+firstrun_terms_of_service=Condicions d’utilizacion
+firstrun_privacy_notice=Avís de privacitat
+firstrun_continue_to_login=Contunhar
+firstrun_skip_login=Passar aquesta etapa
--- a/browser/extensions/activity-stream/locales/pa-IN/strings.properties
+++ b/browser/extensions/activity-stream/locales/pa-IN/strings.properties
@@ -85,50 +85,39 @@ section_disclaimer_topstories_buttontext=ਠੀਕ ਹੈ, ਸਮਝ ਲਿਆ
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=ਫਾਇਰਫਾਕਸ ਮੁੱਖ ਪੰਨਾ
prefs_home_description=ਉਹ ਸਮੱਗਰੀ ਚੁਣੋ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਫਾਇਰਫਾਕਸ ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਚਾਹੁੰਦੇ ਹੋ।
-prefs_restore_defaults_button=ਡਿਫੌਲਟ 'ਤੇ ਰੀਸਟੋਰ ਕਰੋ
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} ਕਤਾਰ;{num} ਕਤਾਰਾਂ
prefs_search_header=ਵੈੱਬ ਖੋਜ
prefs_topsites_description=ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੀਆਂ ਸਾਈਟਾਂ
prefs_topstories_description2=ਸਮੁੱਚੇ ਵੈੱਬ ਤੋਂ ਸ਼ਾਨਦਾਰ ਸਮੱਗਰੀ, ਤੁਹਾਡੇ ਲਈ ਵਿਅਕਤੀਗਤ ਹੈ
prefs_topstories_options_sponsored_label=ਪ੍ਰਾਯੋਜਿਤ ਕਹਾਣੀਆਂ
prefs_topstories_sponsored_learn_more=ਹੋਰ ਜਾਣੋ
prefs_highlights_description=ਉਹਨਾਂ ਸਾਈਟਾਂ ਦੀ ਚੋਣ ਕਰੋ ਜੋ ਤੁਸੀਂ ਸੁਰੱਖਿਅਤ ਜਾਂ ਵਿਜ਼ਿਟ ਕੀਤੀ ਹੈ
prefs_highlights_options_visited_label=ਵੇਖੇ ਗਏ ਸਫੇ
prefs_highlights_options_download_label=ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਕੀਤੇ ਡਾਊਨਲੋਡ
prefs_highlights_options_pocket_label=ਪੰਨਿਆਂ ਨੂੰ ਪਾਕੈਟ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ
prefs_snippets_description=ਮੋਜ਼ੀਲਾ ਅਤੇ ਫਾਇਰਫਾਕਸ ਤੋਂ ਅੱਪਡੇਟ
settings_pane_button_label=ਆਪਣੇ ਨਵੀਂ ਟੈਬ ਸਫ਼ੇ ਨੂੰ ਆਪਣੇ ਮੁਤਾਬਕ ਢਾਲੋ
-settings_pane_header=ਨਵੀਂ ਟੈਬ ਲਈ ਪਸੰਦਾਂ
-settings_pane_body2=ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਤੇ ਕੀ ਦੇਖਿਆ।
-settings_pane_search_header=ਖੋਜੋ
-settings_pane_search_body=ਆਪਣੀ ਨਵੀਂ ਟੈਬ ਤੋਂ ਵੈੱਬ ਨੂੰ ਖੋਜੋ।
settings_pane_topsites_header=ਸਿਖਰਲੀਆਂ ਸਾਈਟਾਂ
-settings_pane_topsites_body=ਵੈੱਬਸਾਈਟਾਂ, ਜਿਹਨਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਖੋਲ੍ਹਿਆ ਹੈ, ਲਈ ਪਹੁੰਚ।
-settings_pane_topsites_options_showmore=ਦੋ ਕਤਾਰਾਂ ਵੇਖਾਓ
settings_pane_highlights_header=ਹਾਈਲਾਈਟ
-settings_pane_highlights_body2=ਜਿਹੜੀਆਂ ਦਿਲਚਸਪ ਚੀਜ਼ਾਂ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਦੇਖੀਆਂ ਹਨ ਜਾਂ ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ ਹਨ, ਬਾਰੇ ਆਪਣਾ ਵਾਪਸੀ ਰਸਤਾ ਲੱਭੋ।
settings_pane_highlights_options_bookmarks=ਬੁੱਕਮਾਰਕ
-settings_pane_highlights_options_visited=ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=ਛੋਟੇ ਟੋਟੇ
-settings_pane_done_button=ਮੁਕੰਮਲ
-settings_pane_topstories_options_sponsored=ਸਪਾਂਸਰ ਕੀਤੀਆਂ ਕਹਾਣੀਆਂ ਵੇਖਾਓ
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=ਸੋਧੋ
edit_topsites_edit_button=ਇਹ ਸਾਈਟ ਨੂੰ ਸੋਧੋ
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=ਨਵੀਂ ਉਪਰਲੀ ਸਾਈਟ
@@ -148,18 +137,16 @@ topsites_form_url_validation=ਲੋੜੀਂਦਾ URL ਯੋਗ ਹੈ
topsites_form_image_validation=ਚਿੱਤਰ ਲੋਡ ਕਰਨ ਤੋਂ ਅਸਫ਼ਲ ਰਿਹਾ। ਕਿਸੇ ਵੱਖਰੇ URL ਨਾਲ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=ਪ੍ਰਸਿੱਧ ਵਿਸ਼ੇ:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=ਹੋਰ ਕਹਾਣੀਆਂ ਵੇਖੋ
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane
-# to provide more information about Pocket.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
@@ -175,12 +162,36 @@ error_fallback_default_info=ਓਹ ਹੋ, ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ।
error_fallback_default_refresh_suggestion=ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਪੰਨਾ ਤਾਜ਼ਾ ਕਰੋ।
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=ਸੈਕਸ਼ਨ ਹਟਾਓ
section_menu_action_collapse_section=ਸੈਕਸ਼ਨ ਨੂੰ ਸਮੇਟੋ
section_menu_action_expand_section=ਸੈਕਸ਼ਨ ਦੀ ਫੈਲਾਓ
section_menu_action_manage_section=ਸੈਕਸ਼ਨ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ
+section_menu_action_manage_webext=ਇਕਸਟੈਨਸ਼ਨਾਂ ਦਾ ਇੰਤਜ਼ਾਮ
section_menu_action_add_topsite=ਚੋਟੀ ਦੀਆਂ ਸਾਈਟਾਂ ਜੋੜੋ
section_menu_action_move_up=ਉੱਤੇ ਭੇਜੋ
section_menu_action_move_down=ਹੇਠਾਂ ਭੇਜੋ
section_menu_action_privacy_notice=ਨਿੱਜੀ ਨੋਟਿਸ
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=ਫਾਇਰਫਾਕਸ ਨੂੰ ਆਪਣੇ ਨਾਲ ਲੈ ਜਾਓ
+firstrun_content=ਆਪਣੇ ਬੁੱਕਮਾਰਕ, ਅਤੀਤ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਆਪਣੇ ਹੋਰ ਡਿਵਾਈਸਾਂ ਉੱਤੇ ਲਵੋ।
+firstrun_learn_more_link=ਫਾਇਰਫਾਕਸ ਖਾਤਿਆਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਹਾਸਲ ਕਰੋ
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=ਆਪਣਾ ਈਮੇਲ ਦਿਓ
+firstrun_form_sub_header=ਤਾਂ ਕਿ ਫਾਇਰਫਾਕਸ ਸਿੰਕ ਨਾਲ ਜਾਰੀ ਰੱਖਿਆ ਜਾਵੇ।
+
+firstrun_email_input_placeholder=ਈਮੇਲ
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=ਜਾਰੀ ਰੱਖ ਕੇ ਤੁਸੀਂ {terms} ਅਤੇ {privacy} ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ।
+firstrun_terms_of_service=ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂ
+firstrun_privacy_notice=ਪਰਦੇਦਾਰੀ ਦਾ ਨੋਟਿਸ
+
+firstrun_continue_to_login=ਜਾਰੀ ਰੱਖੋ
+firstrun_skip_login=ਇਹ ਪਗ਼ ਛੱਡੋ
--- a/browser/extensions/activity-stream/locales/rm/strings.properties
+++ b/browser/extensions/activity-stream/locales/rm/strings.properties
@@ -1,177 +1,201 @@
newtab_page_title=Nov tab
-default_label_loading=Chargiar…
header_top_sites=Paginas preferidas
-header_stories=Artitgels populars
header_highlights=Accents
-header_visit_again=Turnar a visitar
-header_bookmarks=Segnapaginas novs
# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
# of the corresponding content provider.
header_recommended_by=Recumandà da {provider}
-# LOCALIZATION NOTE(header_bookmarks_placeholder): This message is
-# meant to inform that section contains no information because
-# the user hasn't added any bookmarks.
-header_bookmarks_placeholder=Ti n'has anc nagins segnapaginas.
-# LOCALIZATION NOTE(header_stories_from): This is followed by a logo of the
-# corresponding content (stories) provider
-header_stories_from=da
+
+# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
+# the context menu button is focused/active. Title is the label or hostname of
+# the site.
+context_menu_button_sr=Avrir il menu contextual per {title}
+
+# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
+# the section edit context menu button is focused/active.
+section_context_menu_button_sr=Avrir il menu contextual da questa secziun
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=Visità
type_label_bookmarked=Cun segnapagina
-type_label_synced=Sincronisà dad auters apparats
type_label_recommended=Popular
-# LOCALIZATION NOTE(type_label_open): Open is an adjective, as in "page is open"
-type_label_open=Avert
-type_label_topic=Tema
-type_label_now=Ussa
+type_label_pocket=Memorisà en Pocket
+type_label_downloaded=Telechargià
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
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=Sbittar
menu_action_delete=Stizzar da la cronologia
menu_action_pin=Fixar
menu_action_unpin=Betg pli fixar
confirm_history_delete_p1=Vuls ti propi stizzar mintga instanza da questa pagina ord la cronologia?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
confirm_history_delete_notice_p2=Questa acziun na po betg vegnir revocada.
menu_action_save_to_pocket=Memorisar en Pocket
+menu_action_delete_pocket=Stizzar da Pocket
+menu_action_archive_pocket=Archivar en Pocket
-# LOCALIZATION NOTE (search_for_something_with): {search_term} is a placeholder
-# for what the user has typed in the search input field, e.g. 'Search for ' +
-# search_term + 'with:' becomes 'Search for abc with:'
-# The search engine name is displayed as an icon and does not need a translation
-search_for_something_with=Tschertgar {search_term} cun:
+# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
+# found in the context menu of an item that has been downloaded. The intention behind
+# "this action" is that it will show where the downloaded file exists on the file system
+# for each operating system.
+menu_action_show_file_mac_os=Mussar en il Finder
+menu_action_show_file_windows=Mussar l'ordinatur che cuntegna la datoteca
+menu_action_show_file_linux=Mussar l'ordinatur che cuntegna la datoteca
+menu_action_show_file_default=Mussar la datoteca
+menu_action_open_file=Avrir la datoteca
+
+# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
+# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
+# link that belongs to this downloaded item"
+menu_action_copy_download_link=Copiar la colliaziun a la telechargiada
+menu_action_go_to_download_page=Ir a la pagina da telechargiada
+menu_action_remove_download=Allontanar da la cronologia
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
search_button=Tschertgar
# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
# showing search suggestions. {search_engine_name} is replaced with the name of
# the current default search engine. e.g. 'Google Search'
search_header=Tschertga da {search_engine_name}
# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
# the user hasn't typed anything yet.
search_web_placeholder=Tschertgar en il Web
-search_settings=Midar las preferenzas per tschertgar
-
-# LOCALIZATION NOTE (section_info_option): This is the screenreader text for the
-# (?) icon that would show a section's description with optional feedback link.
-section_info_option=Info
-section_info_send_feedback=Trametter in resun
-section_info_privacy_notice=Infurmaziuns davart la protecziun da datas
# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
# the topstories section title to provide additional information about
# how the stories are selected.
section_disclaimer_topstories=Las istorgias las pli interessantas en il web, tschernidas a basa da quai che ti legias. Da Pocket che fa ussa part da Mozilla.
section_disclaimer_topstories_linktext=Ve a savair co quai funcziuna.
# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=Ok, chapì
-# LOCALIZATION NOTE (welcome_*): This is shown as a modal dialog, typically on a
-# first-run experience when there's no data to display yet
-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
-
-# LOCALIZATION NOTE (time_label_*): {number} is a placeholder for a number which
-# represents a shortened timestamp format, e.g. '10m' means '10 minutes ago'.
-time_label_less_than_minute=< 1 min
-time_label_minute={number} min
-time_label_hour={number} uras
-time_label_day={number} dis
-
-# LOCALIZATION NOTE (settings_pane_*): This is shown in the Settings Pane sidebar.
+# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
+# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
+# in English, while "Home" should be localized matching the about:preferences
+# sidebar mozilla-central string for the panel that has preferences related to
+# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=Cuntegn da la pagina da partenza da Firefox
+prefs_home_description=Tscherna il cuntegn che ti vuls vesair sin la pagina da partenza da Firefox.
+# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
+# plural forms used in a drop down of multiple row options (1 row, 2 rows).
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_section_rows_option={num} lingia;{num} lingias
+prefs_search_header=Tschertga web
+prefs_topsites_description=Las paginas che ti visitas il pli savens
+prefs_topstories_description2=Cuntegn interessant ord il web, persunalisà per tai
+prefs_topstories_options_sponsored_label=Artitgels sponsurads
+prefs_topstories_sponsored_learn_more=Ulteriuras infurmaziuns
+prefs_highlights_description=Ina selecziun da paginas che ti has memorisà u visità
+prefs_highlights_options_visited_label=Paginas visitadas
+prefs_highlights_options_download_label=L'ultima telechargiada
+prefs_highlights_options_pocket_label=Paginas memorisadas en Pocket
+prefs_snippets_description=Novitads da Mozilla e Firefox
settings_pane_button_label=Persunalisar tia pagina per novs tabs
-settings_pane_header=Preferenzas per novs tabs
-settings_pane_body2=Tscherna tge che vegn mussà sin questa pagina.
-settings_pane_search_header=Tschertgar
-settings_pane_search_body=Tschertgar en l'internet da tes nov tab.
settings_pane_topsites_header=Paginas preferidas
-settings_pane_topsites_body=Acceder las websites che ti visitas il pli savens.
-settings_pane_topsites_options_showmore=Mussar duas colonnas
-settings_pane_bookmarks_header=Novs segnapaginas
-settings_pane_bookmarks_body=Tes novs segnapaginas en in lieu pratic.
-settings_pane_visit_again_header=Turnar a visitar
-settings_pane_visit_again_body=Firefox ta mussa parts da tia cronologia da navigaziun che pudessan esser interessantas per turnar.
settings_pane_highlights_header=Accents
-settings_pane_highlights_body2=Chatta svelt puspè paginas interessantas che ti has visità u marcà sco segnapagina.
settings_pane_highlights_options_bookmarks=Segnapaginas
-settings_pane_highlights_options_visited=Paginas visitadas
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Zinslas
-settings_pane_snippets_body=Legia infurmaziuns curtas da Mozilla davart Firefox, la cultura da l'internet e da temp en temp in meme.
-settings_pane_done_button=Finì
-settings_pane_topstories_options_sponsored=Mussar istorgias sponsorisadas
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
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_add_button=Agiuntar
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Nova pagina populara
topsites_form_edit_header=Modifitgar la pagina populara
+topsites_form_title_label=Titel
topsites_form_title_placeholder=Endatar in titel
+topsites_form_url_label=URL
+topsites_form_image_url_label=URL dal maletg persunalisà
topsites_form_url_placeholder=Tippar u encollar ina URL
+topsites_form_use_image_link=Utilisar in maletg persunalisà…
+# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
+topsites_form_preview_button=Prevista
topsites_form_add_button=Agiuntar
topsites_form_save_button=Memorisar
topsites_form_cancel_button=Interrumper
topsites_form_url_validation=In URL valid è necessari
+topsites_form_image_validation=Impussibel da chargiar il maletg. Emprova in auter URL.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Temas populars:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Mussar dapli artitgels
-# LOCALIZATION NOTE (pocket_feedback_header): This is shown as an introduction
-# to Pocket as part of the feedback form.
-pocket_feedback_header=Il meglier ord il web, selecziunà da dapli che 25 milliuns umans.
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane and
-# below (pocket_feedback_header) to provide more information about Pocket.
-pocket_description=Scuvra cuntegn dad auta qualitad cun agid da Pocket che fa ussa part da Mozilla.
highlights_empty_state=Cumenza a navigar e nus ta mussain qua artitgels, videos ed autras paginas che ti has visità dacurt u che ti has agiuntà dacurt sco segnapagina.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Ussa has ti legì tut las novitads. Turna pli tard per ulteriuras novitads da {provider}. Na pos betg spetgar? Tscherna in tema popular per chattar ulteriuras istorgias ord il web.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
manual_migration_explanation2=Emprova Firefox cun ils segnapaginas, la cronologia ed ils pleds-clav importads d'in auter navigatur.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=Na, grazia
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
manual_migration_import_button=Importar ussa
+
+# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
+# action link are shown in each section of UI that fails to render
+error_fallback_default_info=Oha, igl è succedì in sbagl cun chargiar il cuntegn.
+error_fallback_default_refresh_suggestion=Rechargia la pagina per reempruvar.
+
+# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
+# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=Allontanar la secziun
+section_menu_action_collapse_section=Reducir la secziun
+section_menu_action_expand_section=Expander la secziun
+section_menu_action_manage_section=Administrar la secziun
+section_menu_action_manage_webext=Administrar l'extensiun
+section_menu_action_add_topsite=Agiuntar ina website populara
+section_menu_action_move_up=Spustar ensi
+section_menu_action_move_down=Spustar engiu
+section_menu_action_privacy_notice=Infurmaziuns davart la protecziun da datas
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Prenda Firefox cun tai
+firstrun_content=Acceda cun tut tes apparats a tes segnapaginas, a la cronologia, als pleds-clav ed ad autras preferenzas.
+firstrun_learn_more_link=Ulteriuras infurmaziuns davart contos da Firefox
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=Endatescha tia adressa dad e-mail
+firstrun_form_sub_header=per cuntinuar cun Firefox Sync.
+
+firstrun_email_input_placeholder=E-mail
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=Cun cuntinuar acceptas ti las {terms} e las {privacy}.
+firstrun_terms_of_service=Cundiziuns d'utilisaziun
+firstrun_privacy_notice=Infurmaziuns davart la protecziun da datas
+
+firstrun_continue_to_login=Cuntinuar
+firstrun_skip_login=Sursiglir quest pass
--- a/browser/extensions/activity-stream/locales/sl/strings.properties
+++ b/browser/extensions/activity-stream/locales/sl/strings.properties
@@ -86,51 +86,39 @@ section_disclaimer_topstories_buttontext
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
prefs_home_header=Vsebina domače strani Firefoxa
prefs_home_description=Izberite vsebino, ki jo želite prikazati na domači strani Firefoxa.
-prefs_restore_defaults_button=Povrni privzeto
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_section_rows_option={num} vrstica;{num} vrstici;{num} vrstice;{num} vrstic
prefs_search_header=Iskanje po spletu
prefs_topsites_description=Strani, ki jih največkrat obiščete
prefs_topstories_description2=Odlična vsebina iz celega spleta, prilagojena vašemu okusu
prefs_topstories_options_sponsored_label=Zgodbe oglaševalcev
prefs_topstories_sponsored_learn_more=Več o tem
prefs_highlights_description=Izbor strani, ki ste jih shranili ali obiskali
prefs_highlights_options_visited_label=Obiskane strani
prefs_highlights_options_download_label=Najnovejši prenos
prefs_highlights_options_pocket_label=Strani, shranjene v Pocket
prefs_snippets_description=Novice iz sveta Mozille in Firefoxa
settings_pane_button_label=Prilagodite stran novega zavihka
-settings_pane_header=Nastavitve novega zavihka
-settings_pane_body2=Izberite, kaj želite videti na tej strani.
-settings_pane_search_header=Iskanje
-settings_pane_search_body=Iščite po spletu z novega zavihka.
settings_pane_topsites_header=Glavne strani
-settings_pane_topsites_body=Priročen dostop do najbolj obiskanih strani.
-settings_pane_topsites_options_showmore=Prikaži dve vrsti
settings_pane_highlights_header=Poudarki
-settings_pane_highlights_body2=Najdite pot nazaj do zanimivih strani, ki ste jih nedavno obiskali ali dodali med zaznamke.
settings_pane_highlights_options_bookmarks=Zaznamki
-settings_pane_highlights_options_visited=Obiskane strani
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
settings_pane_snippets_header=Izrezki
-settings_pane_snippets_body=Spremljajte kratke novice o Mozilli in Firefoxu, kulturi interneta in si občasno oglejte kak meme.
-settings_pane_done_button=Končano
-settings_pane_topstories_options_sponsored=Prikaži zgodbe oglaševalcev
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=Uredi
edit_topsites_edit_button=Uredi to stran
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Nova glavna stran
@@ -150,19 +138,16 @@ topsites_form_url_validation=Vnesite vel
topsites_form_image_validation=Slike ni bilo mogoče naložiti. Poskusite drug spletni naslov.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Priljubljene teme:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Prikaži več vesti
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane
-# to provide more information about Pocket.
-pocket_description=Odkrijte kakovostno vsebino, ki bi jo sicer spregledali, s pomočjo Pocketa (zdaj dela Mozille).
highlights_empty_state=Začnite z brskanjem, mi pa vam bomo tu prikazovali odlične članke, videoposnetke ter druge strani, ki ste jih nedavno obiskali ali shranili med zaznamke.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=Zdaj ste seznanjeni z novicami. Vrnite se pozneje in si oglejte nove prispevke iz {provider}. Komaj čakate? Izberite priljubljeno temo in odkrijte več velikih zgodb na spletu.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
@@ -185,8 +170,24 @@ error_fallback_default_refresh_suggestion=Osvežite stran za ponoven poskus.
section_menu_action_remove_section=Odstrani odsek
section_menu_action_collapse_section=Strni odsek
section_menu_action_expand_section=Razširi odsek
section_menu_action_manage_section=Upravljanje odseka
section_menu_action_add_topsite=Dodaj glavno stran
section_menu_action_move_up=Premakni gor
section_menu_action_move_down=Premakni dol
section_menu_action_privacy_notice=Obvestilo o zasebnosti
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_terms_of_service=Pogoji uporabe
+firstrun_privacy_notice=Obvestilo o zasebnosti
+
+firstrun_continue_to_login=Nadaljuj
+firstrun_skip_login=Preskoči ta korak
--- a/browser/extensions/activity-stream/locales/ta/strings.properties
+++ b/browser/extensions/activity-stream/locales/ta/strings.properties
@@ -127,17 +127,17 @@ topsites_form_image_validation=படத்தை ஏற்றுவதில் தோல்வி. வேறு URL ஐ முயற்சிக்கவும்.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=பிரபலமான தலைப்புகள்:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=இன்னும் கதைகளைப் பார்க்கவும்
-highlights_empty_state=உலாவலைத் தொடங்கவும், மேலும் நாங்கள் சில சிறந்த கட்டுரைகள், காணொளிகள், மற்றும் நீங்கள் சமீபத்தில் பார்த்த பிற பக்கங்கள் அல்லது இங்கே புத்தகக்குறியிட்டவற்றைக் காட்டுவோம்.
+highlights_empty_state=உலாவலைத் தொடங்கவும், மேலும் நாங்கள் சில சிறந்த கட்டுரைகள், காணொளிகள், மற்றும் நீங்கள் சமீபத்தில் பார்த்த அல்லது புத்தகக்குறியிட்ட பக்கங்களை இங்கே காட்டுவோம்.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
topstories_empty_state=நீங்கள் முடித்துவிட்டீர்கள். {provider} இலிருந்து கூடுதல் கதைகளுக்கு பின்னர் பாருங்கள். காத்திருக்க முடியவில்லையா? இணையத்திலிருந்து கூடுதலான கதைகளைக் கண்டுபிடிக்க பிரபலமான தலைப்பைத் தேர்ந்தெடுங்கள்.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
manual_migration_explanation2=மற்றொரு உலாவியின் புத்தகக்குறிகள், வரலாறு மற்றும் கடவுச்சொற்களுடன் பயர்பாக்சை முயற்சித்துப் பாருங்கள்.
--- a/browser/extensions/activity-stream/locales/te/strings.properties
+++ b/browser/extensions/activity-stream/locales/te/strings.properties
@@ -166,27 +166,35 @@ error_fallback_default_info=అయ్యో, ఈ విషయం తేవడంలో ఏదో తప్పు దొర్లింది.
error_fallback_default_refresh_suggestion=మళ్ళీ ప్రయత్నించడానికి పేజీని రీఫ్రెష్ చెయ్యండి.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=విభాగాన్ని తీసివేయి
section_menu_action_collapse_section=విభాగాన్ని ముడిచివేయి
section_menu_action_expand_section=విభాగాన్ని విస్తరించు
section_menu_action_manage_section=విభాగ నిర్వహణ
+section_menu_action_manage_webext=పొడగింత నిర్వహణ
section_menu_action_add_topsite=మేటి సైటును చేర్చు
section_menu_action_move_up=పైకి జరుపు
section_menu_action_move_down=కిందకి జరుపు
section_menu_action_privacy_notice=అంతరంగికత గమనిక
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=Firefoxను మీతో తీసుకెళ్ళండి
+firstrun_content=మీ ఇష్టాంశాలను, చరిత్రను, సంకేతపదాలను, ఇతర అమరికలను మీ పరికరాలన్నింటిలో పొందండి.
+firstrun_learn_more_link=Firefox ఖాతాల గురించి మరింత తెలుసుకోండి
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=ఈ ఈమెయిలును ఇవ్వండి
firstrun_email_input_placeholder=ఈమెయిలు
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=కొనసాగడం ద్వారా మీరు {terms}, {privacy} లను అంగీకరిస్తున్నారు.
+firstrun_terms_of_service=సేవా నియమాలు
+firstrun_privacy_notice=అంతరంగికత గమనిక
firstrun_continue_to_login=కొనసాగు
firstrun_skip_login=ఈ అంచెను దాటవేయి
--- a/browser/extensions/activity-stream/locales/vi/strings.properties
+++ b/browser/extensions/activity-stream/locales/vi/strings.properties
@@ -1,165 +1,170 @@
newtab_page_title=Tab mới
-default_label_loading=Đang tải…
header_top_sites=Trang web hàng đầu
-header_stories=Câu chuyện hàng đầu
header_highlights=Nổi bật
-header_visit_again=Truy cập lại
-header_bookmarks=Các bookmark gần đây
# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
# of the corresponding content provider.
header_recommended_by=Được đề nghị bởi {provider}
-# LOCALIZATION NOTE(header_bookmarks_placeholder): This message is
-# meant to inform that section contains no information because
-# the user hasn't added any bookmarks.
-header_bookmarks_placeholder=Bạn chưa có bookmark nào.
-# LOCALIZATION NOTE(header_stories_from): This is followed by a logo of the
-# corresponding content (stories) provider
-header_stories_from=từ
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
+# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
+# the section edit context menu button is focused/active.
+
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=Đã truy cập
type_label_bookmarked=Đã được đánh dấu
-type_label_synced=Đồng bộ từ thiết bị khác
type_label_recommended=Xu hướng
-# LOCALIZATION NOTE(type_label_open): Open is an adjective, as in "page is open"
-type_label_open=Mở
-type_label_topic=Chủ đề
-type_label_now=Bây giờ
+type_label_pocket=Đã lưu vào Pocket
+type_label_downloaded=Đã tải về
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
# bookmarks"
menu_action_bookmark=Đánh dấu
menu_action_remove_bookmark=Xóa đánh dấu
-menu_action_copy_address=Chép địa chỉ
-menu_action_email_link=Liên kết Email...
menu_action_open_new_window=Mở trong Cửa Sổ Mới
menu_action_open_private_window=Mở trong cửa sổ riêng tư mới
menu_action_dismiss=Bỏ qua
menu_action_delete=Xóa từ lịch xử
menu_action_pin=Ghim
menu_action_unpin=Bỏ ghim
confirm_history_delete_p1=Bạn có chắc bạn muốn xóa bỏ mọi thứ của trang này từ lịch sử?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
confirm_history_delete_notice_p2=Hành động này không thể hoàn tác.
menu_action_save_to_pocket=Lưu vào Pocket
+menu_action_delete_pocket=Xóa khỏi Pocket
+menu_action_archive_pocket=Lưu trữ trong Pocket
-# LOCALIZATION NOTE (search_for_something_with): {search_term} is a placeholder
-# for what the user has typed in the search input field, e.g. 'Search for ' +
-# search_term + 'with:' becomes 'Search for abc with:'
-# The search engine name is displayed as an icon and does not need a translation
-search_for_something_with=Tìm {search_term} với:
+# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
+# found in the context menu of an item that has been downloaded. The intention behind
+# "this action" is that it will show where the downloaded file exists on the file system
+# for each operating system.
+
+# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
+# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
+# link that belongs to this downloaded item"
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
search_button=Tìm kiếm
# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
# showing search suggestions. {search_engine_name} is replaced with the name of
# the current default search engine. e.g. 'Google Search'
search_header=Công cụ tìm kiếm {search_engine_name}
# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
# the user hasn't typed anything yet.
search_web_placeholder=Tìm trên mạng
-search_settings=Thay đổi thiết lập tìm kiếm
-
-# LOCALIZATION NOTE (section_info_option): This is the screenreader text for the
-# (?) icon that would show a section's description with optional feedback link.
-section_info_option=Thông tin
-section_info_send_feedback=Gửi phản hồi
-section_info_privacy_notice=Chính sách riêng tư
# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
# the topstories section title to provide additional information about
# how the stories are selected.
+section_disclaimer_topstories=Những câu chuyện thú vị nhất trên web, được lựa chọn dựa trên những gì bạn đọc. Xuất phất từ Pocket, giờ là một phần của Mozilla.
+section_disclaimer_topstories_linktext=Tìm hiểu cách nó hoạt động.
# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=Ok, đã hiểu
-# LOCALIZATION NOTE (welcome_*): This is shown as a modal dialog, typically on a
-# first-run experience when there's no data to display yet
-welcome_title=Chào mừng đến với tab mới
-welcome_body=Firefox sẽ sử dụng không gian này để hiển thị của bạn có liên quan nhất đánh dấu, bài viết, video và các trang bạn đã truy cập gần đây, do đó, bạn có thể quay lại công việc một cách dễ dàng.
-welcome_label=Đang xác định phần nổi bật của bạn
-
-# LOCALIZATION NOTE (time_label_*): {number} is a placeholder for a number which
-# represents a shortened timestamp format, e.g. '10m' means '10 minutes ago'.
-time_label_less_than_minute=<1phút
-time_label_minute={number}phút
-time_label_hour={number}giờ
-time_label_day={number}ngày
-
-# LOCALIZATION NOTE (settings_pane_*): This is shown in the Settings Pane sidebar.
+# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
+# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
+# in English, while "Home" should be localized matching the about:preferences
+# sidebar mozilla-central string for the panel that has preferences related to
+# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=Nội dung trang chủ của Firefox
+prefs_home_description=Chọn nội dung mà bạn muốn thêm vào trang chủ của Firefox.
+# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
+# plural forms used in a drop down of multiple row options (1 row, 2 rows).
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_search_header=Tìm kiếm web
+prefs_topsites_description=Những trang bạn truy cập nhiều nhất
+prefs_topstories_sponsored_learn_more=Tìm hiểu thêm
+prefs_highlights_description=Một lựa chọn các trang web mà bạn đã lưu hoặc truy cập
+prefs_snippets_description=Cập nhật từ Mozilla và Firefox
settings_pane_button_label=Tùy biến trang Tab mới
-settings_pane_header=Tùy chỉnh cho tab mới
-settings_pane_body2=Chọn những gì bạn thấy trên trang này.
-settings_pane_search_header=Tìm kiếm
-settings_pane_search_body=Tìm kiếm Web từ thẻ mới của bạn.
settings_pane_topsites_header=Các trang Web hàng đầu
-settings_pane_topsites_body=Truy cập vào các trang web mà bạn truy cập vào nhiều nhất.
-settings_pane_topsites_options_showmore=Hiển thị hai hàng
-settings_pane_bookmarks_header=Trang đánh dấu gần đây
-settings_pane_visit_again_header=Truy cập lại
settings_pane_highlights_header=Nổi bật
settings_pane_highlights_options_bookmarks=Trang đánh dấu
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
-settings_pane_done_button=Xong
+settings_pane_snippets_header=Đoạn
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
edit_topsites_button_text=Chỉnh sửa
-edit_topsites_showmore_button=Xem thêm
-edit_topsites_showless_button=Hiển thị ngắn gọn lại
-edit_topsites_done_button=Xong
-edit_topsites_pin_button=Ghim trang này
-edit_topsites_unpin_button=Bỏ ghim trang này
edit_topsites_edit_button=Chỉnh sửa trang web này
-edit_topsites_dismiss_button=Bỏ qua trang này
-edit_topsites_add_button=Thêm
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
+topsites_form_add_header=Thêm trang web hàng đầu
+topsites_form_edit_header=Sửa trang web hàng đầu
+topsites_form_title_placeholder=Nhập tiêu đề
+topsites_form_url_label=URL
topsites_form_url_placeholder=Nhập hoặc dán URL
+topsites_form_use_image_link=Sử dụng hình ảnh tùy chỉnh…
+# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
+topsites_form_preview_button=Xem trước
topsites_form_add_button=Thêm
topsites_form_save_button=Lưu lại
topsites_form_cancel_button=Hủy bỏ
topsites_form_url_validation=Yêu cầu URL hợp lệ
+topsites_form_image_validation=Không tải được hình ảnh. Hãy thử một URL khác.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
pocket_read_more=Các chủ đề phổ biến:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Xem nhiều câu chuyện hơn
-# LOCALIZATION NOTE (pocket_feedback_header): This is shown as an introduction
-# to Pocket as part of the feedback form.
-pocket_feedback_header=Tốt nhất của web, được quản lý bởi hơn 25 triệu người.
-# LOCALIZATION NOTE (pocket_description): This is shown in the settings pane and
-# below (pocket_feedback_header) to provide more information about Pocket.
+highlights_empty_state=Bắt đầu duyệt web và chúng tôi sẽ hiển thị một số bài báo, video, và các trang khác mà bạn vừa truy cập hoặc đã đánh dấu tại đây.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
manual_migration_explanation2=Thử Firefox với trang đánh dấu, lịch sử và mật khẩu từ trình duyệt khác.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browser’s profile into Firefox.
manual_migration_cancel_button=Không, cảm ơn
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browser’s profile profile into Firefox.
manual_migration_import_button=Nhập ngay bây giờ
+
+# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
+# action link are shown in each section of UI that fails to render
+error_fallback_default_info=Rất tiếc, đã xảy ra lỗi khi tải nội dung này.
+error_fallback_default_refresh_suggestion=Thử làm mới lại trang.
+
+# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
+# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=Xoá mục
+section_menu_action_collapse_section=Thu gọn mục
+section_menu_action_expand_section=Mở rộng mục
+section_menu_action_manage_section=Quản lý mục
+section_menu_action_add_topsite=Thêm trang web hàng đầu
+section_menu_action_move_up=Di chuyển lên
+section_menu_action_move_down=Di chuyển xuống
+section_menu_action_privacy_notice=Chính sách riêng tư
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+
--- a/browser/extensions/activity-stream/locales/zh-TW/strings.properties
+++ b/browser/extensions/activity-stream/locales/zh-TW/strings.properties
@@ -98,17 +98,17 @@ prefs_section_rows_option={num} 行
prefs_search_header=網頁搜尋
prefs_topsites_description=最常造訪的網站
prefs_topstories_description2=網路上的各種超棒內容,為您量身打造
prefs_topstories_options_sponsored_label=贊助內容
prefs_topstories_sponsored_learn_more=了解更多
prefs_highlights_description=您儲存或造訪過的網站精選
prefs_highlights_options_visited_label=造訪過的頁面
prefs_highlights_options_download_label=最新下載
-prefs_highlights_options_pocket_label=已將頁面儲存至 Pocket
+prefs_highlights_options_pocket_label=儲存至 Pocket 的頁面
prefs_snippets_description=來自 Mozilla 及 Firefox 的大小事
settings_pane_button_label=自訂您的新分頁頁面
settings_pane_topsites_header=熱門網站
settings_pane_highlights_header=精選網站
settings_pane_highlights_options_bookmarks=書籤
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
--- a/browser/extensions/activity-stream/package-lock.json
+++ b/browser/extensions/activity-stream/package-lock.json
@@ -2943,21 +2943,22 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz",
"integrity": "sha1-m6c7sL6Z1QCT6In1uWhGPSow764=",
"dev": true,
"requires": {
"jshint": "2.9.5"
}
},
"eslint-plugin-mozilla": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mozilla/-/eslint-plugin-mozilla-0.11.0.tgz",
- "integrity": "sha512-O/02mzydm2KqjGb0gSAz+qJQSwZAmWsKaxRRkqkM1Tv4+/spn2aeYLorZKzcCZb+I27oQHOej151TCPXofix9w==",
- "dev": true,
- "requires": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mozilla/-/eslint-plugin-mozilla-0.14.0.tgz",
+ "integrity": "sha512-H0hb49FJP4qKFgT2l89tlm7QYIsBpKC0cXvFY+mT9Or+7lqlovsYexYtzl9qfT2PFKg37ay7TB2C0U3N7rlp1Q==",
+ "dev": true,
+ "requires": {
+ "htmlparser2": "3.9.2",
"ini-parser": "0.0.2",
"sax": "1.2.4"
}
},
"eslint-plugin-no-unsanitized": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.0.0.tgz",
"integrity": "sha1-FEi1LN14cfF0PCkAEXuwh8/nuAY=",
--- a/browser/extensions/activity-stream/package.json
+++ b/browser/extensions/activity-stream/package.json
@@ -32,17 +32,17 @@
"chai-json-schema": "1.5.0",
"co-task": "1.0.0",
"cpx": "1.5.0",
"enzyme": "3.3.0",
"enzyme-adapter-react-16": "1.1.1",
"eslint": "4.19.1",
"eslint-plugin-import": "2.11.0",
"eslint-plugin-json": "1.2.0",
- "eslint-plugin-mozilla": "0.11.0",
+ "eslint-plugin-mozilla": "0.14.0",
"eslint-plugin-no-unsanitized": "3.0.0",
"eslint-plugin-promise": "3.7.0",
"eslint-plugin-react": "7.7.0",
"eslint-watch": "3.1.4",
"husky": "0.14.3",
"istanbul-instrumenter-loader": "0.2.0",
"joi-browser": "13.0.1",
"karma": "2.0.2",
--- a/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Med Kakube maloyo",
"section_menu_action_move_up": "Kob Malo",
"section_menu_action_move_down": "Kob Piny",
"section_menu_action_privacy_notice": "Ngec me mung",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Anyadir un puesto popular",
"section_menu_action_move_up": "Puyar",
"section_menu_action_move_down": "Baixar",
"section_menu_action_privacy_notice": "Nota sobre privacidat",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Restaurar valors per defecto",
"prefs_topstories_description": "Contenius d'alta calidat que no te quiers perder",
--- a/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
@@ -80,25 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "لا شكرًا",
"manual_migration_import_button": "استورد الآن",
"error_fallback_default_info": "أخ! حدث خطب ما أثناء تحميل المحتوى.",
"error_fallback_default_refresh_suggestion": "أنعِش الصفحة لإعادة المحاولة.",
"section_menu_action_remove_section": "أزِل القسم",
"section_menu_action_collapse_section": "اطوِ القسم",
"section_menu_action_expand_section": "وسّع القسم",
"section_menu_action_manage_section": "أدِر القسم",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "أدِر الامتداد",
"section_menu_action_add_topsite": "أضف موقعًا شائعًا",
"section_menu_action_move_up": "انقل لأعلى",
"section_menu_action_move_down": "انقل لأسفل",
"section_menu_action_privacy_notice": "تنويه الخصوصية",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step"
+ "firstrun_title": "خذ معك فَيَرفُكس أينما ذهبت",
+ "firstrun_content": "تشارك العلامات، وتأريخ التصفح، وكلمات السر وباقي الإعدادات على جميع أجهزتك.",
+ "firstrun_learn_more_link": "اطّلع على المزيد عن حسابات فَيَرفُكس",
+ "firstrun_form_header": "أدخِل بريدك الإلكتروني",
+ "firstrun_form_sub_header": "لمواصلة استخدام «تزامُن فَيَرفُكس»",
+ "firstrun_email_input_placeholder": "البريد الإلكتروني",
+ "firstrun_extra_legal_links": "بمواصلة هذه العملية أنت توافق على {terms} و{privacy}.",
+ "firstrun_terms_of_service": "بنود الخدمة",
+ "firstrun_privacy_notice": "تنويه الخصوصية",
+ "firstrun_continue_to_login": "تابِع",
+ "firstrun_skip_login": "تجاوز هذه الخطوة"
};
--- a/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Cargando…",
"header_stories": "Histories destacaes",
--- a/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "Не, дзякуй",
"manual_migration_import_button": "Імпартаваць зараз",
"error_fallback_default_info": "Ох, нешта пайшло не так пры загрузцы гэтага змесціва.",
"error_fallback_default_refresh_suggestion": "Абнавіць старонку, каб паўтарыць спробу.",
"section_menu_action_remove_section": "Выдаліць раздзел",
"section_menu_action_collapse_section": "Згарнуць раздзел",
"section_menu_action_expand_section": "Разгарнуць раздзел",
"section_menu_action_manage_section": "Наладзіць раздзел",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "Кіраваць пашырэннем",
"section_menu_action_add_topsite": "Дадаць папулярны сайт",
"section_menu_action_move_up": "Пасунуць вышэй",
"section_menu_action_move_down": "Пасунуць ніжэй",
"section_menu_action_privacy_notice": "Паведамленне аб прыватнасці",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "prefs_restore_defaults_button": "Аднавіць прадвызначэнні",
- "settings_pane_header": "Налады новай карткі",
- "settings_pane_body2": "Выберыце тое, што вы бачыце на гэтай старонцы.",
- "settings_pane_search_header": "Пошук",
- "settings_pane_search_body": "Пошук у Сеціве з вашай новай карткі.",
- "settings_pane_topsites_body": "Доступ да сайтаў, якія вы часцей наведваеце.",
- "settings_pane_topsites_options_showmore": "Паказваць два шэрагі",
- "settings_pane_highlights_body2": "Знайдзіце зваротны шлях да цікавых рэчаў, якія вы нядаўна наведалі або дадалі ў закладкі.",
- "settings_pane_highlights_options_visited": "Наведаныя сайты",
- "settings_pane_snippets_body": "Чытайце кароткія і радасныя навіны ад Mozilla аб Firefox, інтэрнэт-культуру і выпадковыя мемы.",
- "settings_pane_done_button": "Гатова",
- "settings_pane_topstories_options_sponsored": "Паказаць артыкулы ад спонсараў",
- "pocket_description": "Адкрыйце для сябе высакаякасны кантэнт, які вы маглі б прапусціць, з дапамогай Pocket, які стаў часткай Mozilla."
+ "firstrun_title": "Вазьміце Firefox з сабой",
+ "firstrun_content": "Атрымайце доступ да вашых закладак, гісторыі, пароляў і іншых налад на ўсіх вашых прыладах.",
+ "firstrun_learn_more_link": "Даведайцеся больш пра ўліковыя запісы Firefox",
+ "firstrun_form_header": "Увядзіце сваю электронную пошту",
+ "firstrun_form_sub_header": "каб прадоўжыць з Firefox Sync.",
+ "firstrun_email_input_placeholder": "Эл.пошта",
+ "firstrun_extra_legal_links": "Працягваючы, вы згаджаецеся з {terms} і {privacy}.",
+ "firstrun_terms_of_service": "умовамі абслугоўвання",
+ "firstrun_privacy_notice": "паведамленнем аб прыватнасці",
+ "firstrun_continue_to_login": "Працягнуць",
+ "firstrun_skip_login": "Прапусціць гэты крок"
};
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
<title>Нов раздел</title>
<link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
<link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
<link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
</head>
<body class="activity-stream">
- <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Търсене в интернет</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Търсене в интернет" title="Търсене в интернет"/><button id="searchSubmit" class="search-button" title="Търсене"><span class="sr-only"><span>Търсене</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Често посещавани</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Редактиране"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Препоръчано от Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Популярни теми:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Акценти</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Настройки на новия раздел"></button></div></div></main></div></div></div>
+ <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Търсене в интернет</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Търсене в интернет" title="Търсене в интернет"/><button id="searchSubmit" class="search-button" title="Търсене"><span class="sr-only"><span>Търсене</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Често посещавани страници</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Променяне"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Препоръчано от Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Популярни теми:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Акценти</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Отваряне на контекстното меню на раздела</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Настройки на новия раздел"></button></div></div></main></div></div></div>
<div id="snippets-container">
<div id="snippets"></div>
</div>
<script>
// Don't directly load the following scripts as part of html to let the page
// finish loading to render the content sooner.
for (const src of [
"resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
@@ -1,12 +1,12 @@
// Note - this is a generated bg file.
window.gActivityStreamStrings = {
"newtab_page_title": "Нов раздел",
- "header_top_sites": "Често посещавани",
+ "header_top_sites": "Често посещавани страници",
"header_highlights": "Акценти",
"header_recommended_by": "Препоръчано от {provider}",
"context_menu_button_sr": "Отваряне на контекстуалното меню на {title}",
"section_context_menu_button_sr": "Отваряне на контекстното меню на раздела",
"type_label_visited": "Посетена",
"type_label_bookmarked": "Отметната",
"type_label_recommended": "Тенденции",
"type_label_pocket": "Запазено в Pocket",
@@ -18,87 +18,87 @@ window.gActivityStreamStrings = {
"menu_action_dismiss": "Отхвърляне",
"menu_action_delete": "Премахване",
"menu_action_pin": "Закачане",
"menu_action_unpin": "Откачане",
"confirm_history_delete_p1": "Сигурни ли сте, че желаете да премахнете страницата навсякъде от историята?",
"confirm_history_delete_notice_p2": "Действието е необратимо.",
"menu_action_save_to_pocket": "Запазване в Pocket",
"menu_action_delete_pocket": "Изтриване от Pocket",
- "menu_action_archive_pocket": "Archive in Pocket",
- "menu_action_show_file_mac_os": "Show in Finder",
- "menu_action_show_file_windows": "Open Containing Folder",
- "menu_action_show_file_linux": "Open Containing Folder",
- "menu_action_show_file_default": "Show File",
- "menu_action_open_file": "Open File",
- "menu_action_copy_download_link": "Copy Download Link",
- "menu_action_go_to_download_page": "Go to Download Page",
- "menu_action_remove_download": "Remove from History",
+ "menu_action_archive_pocket": "Архивиране в Pocket",
+ "menu_action_show_file_mac_os": "Показване във Finder",
+ "menu_action_show_file_windows": "Отваряне на съдържащата папка",
+ "menu_action_show_file_linux": "Отваряне на съдържащата папка",
+ "menu_action_show_file_default": "Показване на файла",
+ "menu_action_open_file": "Отваряне на файла",
+ "menu_action_copy_download_link": "Копиране на препратка за изтегляне",
+ "menu_action_go_to_download_page": "Към страницата за изтегляне",
+ "menu_action_remove_download": "Премахване от историята",
"search_button": "Търсене",
"search_header": "Търсене с {search_engine_name}",
"search_web_placeholder": "Търсене в интернет",
"section_disclaimer_topstories": "Най-интересните истории в Мрежата на основата на прочетеното от вас. От Pocket, вече част от Mozilla.",
"section_disclaimer_topstories_linktext": "Разберете как работи.",
"section_disclaimer_topstories_buttontext": "Ясно, разбрах",
- "prefs_home_header": "Firefox Home Content",
- "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
- "prefs_section_rows_option": "{num} row;{num} rows",
- "prefs_search_header": "Web Search",
- "prefs_topsites_description": "The sites you visit most",
- "prefs_topstories_description2": "Great content from around the web, personalized for you",
- "prefs_topstories_options_sponsored_label": "Sponsored Stories",
- "prefs_topstories_sponsored_learn_more": "Learn more",
- "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
- "prefs_highlights_options_visited_label": "Visited Pages",
- "prefs_highlights_options_download_label": "Most Recent Download",
- "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
- "prefs_snippets_description": "Updates from Mozilla and Firefox",
+ "prefs_home_header": "Начална страница на Firefox",
+ "prefs_home_description": "Изберете съдържанието, което искате да виждате на началната страница на Firefox.",
+ "prefs_section_rows_option": "{num} ред;{num} реда",
+ "prefs_search_header": "Търсене в Мрежата",
+ "prefs_topsites_description": "Най-посещаваните от вас страници",
+ "prefs_topstories_description2": "Отлично съдържание от цялата Мрежа, подбрано лично за вас",
+ "prefs_topstories_options_sponsored_label": "Платени публикации",
+ "prefs_topstories_sponsored_learn_more": "Научете повече",
+ "prefs_highlights_description": "Избрани страници, които сте запазили или посетили",
+ "prefs_highlights_options_visited_label": "Посетени страници",
+ "prefs_highlights_options_download_label": "Последни изтегляния",
+ "prefs_highlights_options_pocket_label": "Страници, запазени в Pocket",
+ "prefs_snippets_description": "Новости от Mozilla и Firefox",
"settings_pane_button_label": "Настройки на новия раздел",
"settings_pane_topsites_header": "Често посещавани",
"settings_pane_highlights_header": "Акценти",
"settings_pane_highlights_options_bookmarks": "Отметки",
"settings_pane_snippets_header": "Изрезки",
- "edit_topsites_button_text": "Редактиране",
- "edit_topsites_edit_button": "Редактиране",
- "topsites_form_add_header": "Нов често посещавана страница",
- "topsites_form_edit_header": "Редактиране на често посещавана страница",
- "topsites_form_title_label": "Title",
- "topsites_form_title_placeholder": "Заглавие",
- "topsites_form_url_label": "URL",
- "topsites_form_image_url_label": "Custom Image URL",
+ "edit_topsites_button_text": "Променяне",
+ "edit_topsites_edit_button": "Променяне",
+ "topsites_form_add_header": "Нова често посещавана страница",
+ "topsites_form_edit_header": "Променяне на често посещавана страница",
+ "topsites_form_title_label": "Заглавие",
+ "topsites_form_title_placeholder": "Въведете заглавие",
+ "topsites_form_url_label": "Адрес",
+ "topsites_form_image_url_label": "Адрес на изображение по желание",
"topsites_form_url_placeholder": "Адрес",
- "topsites_form_use_image_link": "Use a custom image…",
+ "topsites_form_use_image_link": "Използване изображение по желание…",
"topsites_form_preview_button": "Преглед",
"topsites_form_add_button": "Добавяне",
"topsites_form_save_button": "Запазване",
"topsites_form_cancel_button": "Отказ",
"topsites_form_url_validation": "Необходим е валиден URL",
- "topsites_form_image_validation": "Image failed to load. Try a different URL.",
+ "topsites_form_image_validation": "Изображението не може да бъде заредено. Опитайте с друг адрес.",
"pocket_read_more": "Популярни теми:",
- "pocket_read_even_more": "Повече статии",
+ "pocket_read_even_more": "Повече публикации",
"highlights_empty_state": "Разглеждайте и тук ще ви покажем някои от най-добрите статии, видео и други страници, които сте посетили или отметнали наскоро.",
- "topstories_empty_state": "Разгледахте всичко. Проверете по-късно за повече истории от {provider}. Нямате търпение? Изберете популярна тема, за да откриете повече истории из цялата Мрежа.",
- "manual_migration_explanation2": "Опитайте Firefox с отметките, историята и паролите от друг четец.",
+ "topstories_empty_state": "Разгледахте всичко. Проверете по-късно за повече истории от {provider}. Нямате търпение? Изберете популярна тема, за да откриете повече истории от цялата Мрежа.",
+ "manual_migration_explanation2": "Опитайте Firefox с отметките, историята и паролите от друг мрежови четец.",
"manual_migration_cancel_button": "Не, благодаря",
"manual_migration_import_button": "Внасяне",
- "error_fallback_default_info": "Oops, something went wrong loading this content.",
- "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
- "section_menu_action_remove_section": "Remove Section",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
- "section_menu_action_manage_webext": "Manage Extension",
- "section_menu_action_add_topsite": "Add Top Site",
+ "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_manage_webext": "Управление на добавката",
+ "section_menu_action_add_topsite": "Добавяне на често посещавана страница",
"section_menu_action_move_up": "Преместване нагоре",
"section_menu_action_move_down": "Преместване надолу",
"section_menu_action_privacy_notice": "Политика за личните данни",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step"
+ "firstrun_title": "Вземете Firefox с вас",
+ "firstrun_content": "Вземете своите отметки, история, пароли и всички други настройки на всички ваши устройства.",
+ "firstrun_learn_more_link": "Научете повече за Firefox Accounts",
+ "firstrun_form_header": "Въведете своята ел. поща,",
+ "firstrun_form_sub_header": "за да продължите към Firefox Sync",
+ "firstrun_email_input_placeholder": "адрес на електронна поща",
+ "firstrun_extra_legal_links": "Продължавайки, вие се съгласявате с {terms} и {privacy}.",
+ "firstrun_terms_of_service": "Условията на услугата",
+ "firstrun_privacy_notice": "Политиката за лични данни",
+ "firstrun_continue_to_login": "Продължаване",
+ "firstrun_skip_login": "Пропускане"
};
--- a/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js
@@ -80,32 +80,32 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "প্রয়োজন নেই",
"manual_migration_import_button": "এখনই ইম্পোর্ট করুন",
"error_fallback_default_info": "ওহো, কনটেন্টটি লোড করতে কিছু ভুল হয়েছে।",
"error_fallback_default_refresh_suggestion": "পুনরায় চেস্টা করার জন্য পেজটি রিফ্রেশ করুন।",
"section_menu_action_remove_section": "সেকশনটি সরান",
"section_menu_action_collapse_section": "সেকশনটি সংকোচন করুন",
"section_menu_action_expand_section": "সেকশনটি প্রসারিত করুন",
"section_menu_action_manage_section": "সেকশনটি পরিচালনা করুন",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "এক্সটেনসন ব্যবহার করুন",
"section_menu_action_add_topsite": "টপ সাইট যোগ করুন",
"section_menu_action_move_up": "উপরে উঠাও",
"section_menu_action_move_down": "নীচে নামাও",
"section_menu_action_privacy_notice": "গোপনীয়তা নীতি",
- "firstrun_title": "Take Firefox with You",
+ "firstrun_title": "অাপনি Firefox ব্যবহার করুন",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
+ "firstrun_form_header": "আপনার ই-মেইল লিখুন",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
+ "firstrun_email_input_placeholder": "ইমেইল",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
+ "firstrun_terms_of_service": "সেবার শর্ত",
+ "firstrun_privacy_notice": "গোপনীয়তা নীতি",
+ "firstrun_continue_to_login": "চালিয়ে যান",
+ "firstrun_skip_login": "এই ধাপটি বাদ দিন",
"default_label_loading": "লোড করা হচ্ছে…",
"type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে",
"type_label_open": "খুলুন",
"type_label_topic": "বিষয়",
"menu_action_copy_address": "ঠিকানা কপি করুন",
"menu_action_email_link": "ই-মেইল লিংক…",
"search_for_something_with": "{search_term} এর জন্য খুঁজুন সাথে:",
"search_settings": "সার্চ সেটিংস বদল করুন",
--- a/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js
@@ -80,32 +80,32 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "প্রয়োজন নেই",
"manual_migration_import_button": "এখনই ইম্পোর্ট করুন",
"error_fallback_default_info": "ওহো, কনটেন্টটি লোড করতে কিছু ভুল হয়েছে।",
"error_fallback_default_refresh_suggestion": "পুনরায় চেস্টা করার জন্য পেজটি রিফ্রেশ করুন।",
"section_menu_action_remove_section": "সেকশনটি সরান",
"section_menu_action_collapse_section": "সেকশনটি সংকোচন করুন",
"section_menu_action_expand_section": "সেকশনটি প্রসারিত করুন",
"section_menu_action_manage_section": "সেকশনটি পরিচালনা করুন",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "এক্সটেনসন ব্যবহার করুন",
"section_menu_action_add_topsite": "টপ সাইট যোগ করুন",
"section_menu_action_move_up": "উপরে উঠাও",
"section_menu_action_move_down": "নীচে নামাও",
"section_menu_action_privacy_notice": "গোপনীয়তা নীতি",
- "firstrun_title": "Take Firefox with You",
+ "firstrun_title": "অাপনি Firefox ব্যবহার করুন",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
+ "firstrun_form_header": "আপনার ই-মেইল লিখুন",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
+ "firstrun_email_input_placeholder": "ইমেইল",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
+ "firstrun_terms_of_service": "সেবার শর্ত",
+ "firstrun_privacy_notice": "গোপনীয়তা নীতি",
+ "firstrun_continue_to_login": "চালিয়ে যান",
+ "firstrun_skip_login": "এই ধাপটি বাদ দিন",
"default_label_loading": "লোড করা হচ্ছে…",
"type_label_synced": "অন্য ডিভাইস থেকে সিঙ্ক করা হয়েছে",
"type_label_open": "খুলুন",
"type_label_topic": "বিষয়",
"menu_action_copy_address": "ঠিকানা কপি করুন",
"menu_action_email_link": "ই-মেইল লিংক…",
"search_for_something_with": "{search_term} এর জন্য খুঁজুন সাথে:",
"search_settings": "সার্চ সেটিংস বদল করুন",
--- a/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
@@ -73,32 +73,32 @@ window.gActivityStreamStrings = {
"topsites_form_url_validation": "URL talvoudek azgoulennet",
"topsites_form_image_validation": "N'haller ket kargan ar skeudenn. Klaskit gant un URL disheñvel.",
"pocket_read_more": "Danvezioù brudet:",
"pocket_read_even_more": "Gwelet muioc'h a istorioù",
"highlights_empty_state": "Krogit da verdeiñ hag e tiskouezimp deoc’h pennadoù, videoioù ha pajennoù all gweladennet pe lakaet er sinedoù nevez ’zo.",
"topstories_empty_state": "Aet oc'h betek penn. Distroit diwezhatoc'h evit muioc’h a istorioù digant {provider}. N’oc'h ket evit gortoz? Dibabit un danvez brudet evit klask muioc’h a bennadoù dedennus eus pep lec’h er web.",
"manual_migration_explanation2": "Amprouit Firefox gant sinedoù, roll istor ha gerioù-tremen ur merdeer all.",
"manual_migration_cancel_button": "N'am bo ket",
- "manual_migration_import_button": "Emporzhiañ bremañ",
+ "manual_migration_import_button": "Enporzhiañ bremañ",
"error_fallback_default_info": "Chaous, un dra bennak a zo a-dreuz en ur gargañ an endalc'had.",
"error_fallback_default_refresh_suggestion": "Adkargit ar bajenn evit klask en-dro.",
"section_menu_action_remove_section": "Dilemel ar gevrenn",
"section_menu_action_collapse_section": "Bihanaat ar gevrenn",
"section_menu_action_expand_section": "Astenn ar gevrenn",
"section_menu_action_manage_section": "Merañ ar gevrenn",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "Merañ an askouezh",
"section_menu_action_add_topsite": "Ouzhpennañ ul lec'hienn gwellañ din",
"section_menu_action_move_up": "Dilec'hiañ etrezek ar c'hrec'h",
"section_menu_action_move_down": "Dilec'hiañ etrezek an traoñ",
"section_menu_action_privacy_notice": "Evezhiadennoù a-fet buhez prevez",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
+ "firstrun_title": "Kemerit Firefox ganeoc'h",
+ "firstrun_content": "Tizhit o sinedoù, roll-istor, gerioù-tremen hag arventennoù all war hon holl drevnadoù.",
+ "firstrun_learn_more_link": "Gouzout hiroc'h diwar-benn kontoù Firefox",
"firstrun_form_header": "Enankit ho chomlec'h postel",
"firstrun_form_sub_header": "evit kenderc'hel etrezek Firefox Sync.",
"firstrun_email_input_placeholder": "Postel",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Divizoù arver",
- "firstrun_privacy_notice": "Evezhiadennoù a-fet buhez prevez",
+ "firstrun_extra_legal_links": "En ur genderc'hel, e savit a-du gant an {terms} hag ar {privacy}.",
+ "firstrun_terms_of_service": "divizoù arver",
+ "firstrun_privacy_notice": "evezhiadennoù a-fet buhez prevez",
"firstrun_continue_to_login": "Kenderc'hel",
- "firstrun_skip_login": "Ober van ouzh ar bazenn-mañ"
+ "firstrun_skip_login": "Tremen ar bazenn-mañ"
};
--- a/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Dodajte omiljenu stranicu",
"section_menu_action_move_up": "Pomjeri gore",
"section_menu_action_move_down": "Pomjeri dole",
"section_menu_action_privacy_notice": "Polica privatnosti",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Vrati na izvorne vrijednosti",
"settings_pane_header": "Postavke novog taba",
--- a/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
@@ -49,17 +49,17 @@ window.gActivityStreamStrings = {
"prefs_highlights_description": "Jun rucha'onem ruxaq, ri xayäk o xatz'ët",
"prefs_highlights_options_visited_label": "Taq Ruxaq Etz'eton",
"prefs_highlights_options_download_label": "K'a B'a' Keqasäx",
"prefs_highlights_options_pocket_label": "Taq Ruxaq Eyakon pa Pocket",
"prefs_snippets_description": "Kik'exoj Mozilla chuqa' Firefox",
"settings_pane_button_label": "Tawichinaj ri ruxaq richin K'ak'a' Ruwi'",
"settings_pane_topsites_header": "Utziläj taq ruxaq K'amaya'l",
"settings_pane_highlights_header": "Taq k'ewachinïk",
- "settings_pane_highlights_options_bookmarks": "Taq yaketal",
+ "settings_pane_highlights_options_bookmarks": "Yaketal",
"settings_pane_snippets_header": "Taq pir",
"edit_topsites_button_text": "Tinuk'",
"edit_topsites_edit_button": "Tinuk' re ruxaq k'amaya'l re'",
"topsites_form_add_header": "K'ak'a' Utziläj Ruxaq K'amaya'l",
"topsites_form_edit_header": "Tinuk' re Utziläj Ruxaq K'amaya'l re'",
"topsites_form_title_label": "B'i'aj",
"topsites_form_title_placeholder": "Tatz'ib'aj jun b'i'aj",
"topsites_form_url_label": "URL",
--- a/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Zirvedeki Sayt Ekle",
"section_menu_action_move_up": "Yuqarı Avuştır",
"section_menu_action_move_down": "Aşağı Avuştır",
"section_menu_action_privacy_notice": "Hususiyat Tebliği",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "E-Mail-Adresse eingeben",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
@@ -80,25 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "Όχι ευχαριστώ",
"manual_migration_import_button": "Εισαγωγή τώρα",
"error_fallback_default_info": "Ωχ, κάτι πήγε στραβά κατά τη φόρτωση του περιεχομένου.",
"error_fallback_default_refresh_suggestion": "Ανανεώστε τη σελίδα για να δοκιμάσετε ξανά.",
"section_menu_action_remove_section": "Αφαίρεση ενότητας",
"section_menu_action_collapse_section": "Σύμπτυξη ενότητας",
"section_menu_action_expand_section": "Επέκταση ενότητας",
"section_menu_action_manage_section": "Διαχείριση ενότητας",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "Διαχείριση επέκτασης",
"section_menu_action_add_topsite": "Προσθήκη κορυφαίας ιστοσελίδας",
"section_menu_action_move_up": "Μετακίνηση επάνω",
"section_menu_action_move_down": "Μετακίνηση κάτω",
"section_menu_action_privacy_notice": "Σημείωση απορρήτου",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_title": "Πάρτε το Firefox μαζί σας",
+ "firstrun_content": "Κρατήστε τα αγαπημένα, το ιστορικό, τους κωδικούς πρόσβασης και άλλες ρυθμίσεις σας σε όλες σας τις συσκευές.",
+ "firstrun_learn_more_link": "Μάθετε περισσότερα για τους Λογαριασμούς Firefox",
+ "firstrun_form_header": "Εισάγετε το email σας",
+ "firstrun_form_sub_header": "για να συνεχίσετε στο Firefox Sync.",
"firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
+ "firstrun_extra_legal_links": "Συνεχίζοντας, συμφωνείτε με τους {terms} και τη {privacy}.",
+ "firstrun_terms_of_service": "Όρους Υπηρεσίας",
+ "firstrun_privacy_notice": "Σημείωση Απορρήτου",
"firstrun_continue_to_login": "Συνέχεια",
- "firstrun_skip_login": "Skip this step"
+ "firstrun_skip_login": "Παράλειψη βήματος"
};
--- a/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Restore Defaults",
"prefs_topstories_description": "High-quality content you might otherwise miss",
--- a/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Restore Defaults",
"prefs_topstories_description": "High-quality content you might otherwise miss",
--- a/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Lisa top sait",
"section_menu_action_move_up": "Liiguta üles",
"section_menu_action_move_down": "Liiguta alla",
"section_menu_action_privacy_notice": "Privaatsuspoliitika",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Taasta vaikeväärtused",
"settings_pane_header": "Uue kaardi sätted",
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
<title>زبانه جدید</title>
<link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
<link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
<link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
</head>
<body class="activity-stream">
- <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>جستوجوی وب</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="جستوجوی وب" title="جستوجوی وب"/><button id="searchSubmit" class="search-button" title="جستوجو"><span class="sr-only"><span>جستوجو</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>سایتهای برتر</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>پیشنهاد شده توسط Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>موضوعهای محبوب:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>برجستهها</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="صفحهٔ زبانه جدید را سفارشی کنید"></button></div></div></main></div></div></div>
+ <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>جستوجوی وب</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="جستوجوی وب" title="جستوجوی وب"/><button id="searchSubmit" class="search-button" title="جستوجو"><span class="sr-only"><span>جستوجو</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>سایتهای برتر</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>باز کردن منو قسمت</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="ویرایش این سایت"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>پیشنهاد شده توسط Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>باز کردن منو قسمت</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>موضوعهای محبوب:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>برجستهها</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>باز کردن منو قسمت</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="صفحهٔ زبانه جدید را سفارشی کنید"></button></div></div></main></div></div></div>
<div id="snippets-container">
<div id="snippets"></div>
</div>
<script>
// Don't directly load the following scripts as part of html to let the page
// finish loading to render the content sooner.
for (const src of [
"resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
@@ -1,104 +1,104 @@
// Note - this is a generated fa file.
window.gActivityStreamStrings = {
"newtab_page_title": "زبانه جدید",
"header_top_sites": "سایتهای برتر",
"header_highlights": "برجستهها",
"header_recommended_by": "پیشنهاد شده توسط {provider}",
"context_menu_button_sr": "بازکردن فهرست زمینه برای {title}",
- "section_context_menu_button_sr": "Open the section context menu",
+ "section_context_menu_button_sr": "باز کردن منو قسمت",
"type_label_visited": "مشاهده شده",
"type_label_bookmarked": "نشانک شده",
"type_label_recommended": "موضوعات داغ",
- "type_label_pocket": "Saved to Pocket",
- "type_label_downloaded": "Downloaded",
+ "type_label_pocket": "در Pocket ذخیره شد",
+ "type_label_downloaded": "دریافت شد",
"menu_action_bookmark": "نشانک",
"menu_action_remove_bookmark": "حذف نشانک",
"menu_action_open_new_window": "باز کردن در یک پنجره جدید",
"menu_action_open_private_window": "بار کردن در یک پنجره ناشناس جدید",
"menu_action_dismiss": "رد کردن",
"menu_action_delete": "حذف از تاریخچه",
"menu_action_pin": "سنجاق کردن",
"menu_action_unpin": "جدا کردن",
"confirm_history_delete_p1": "آیا از پاک کردن همه نمونههای این صفحه از تاریخچه خود اطمینان دارید؟",
"confirm_history_delete_notice_p2": "این عمل قابل برگشت نیست.",
"menu_action_save_to_pocket": "ذخیرهسازی در Pocket",
- "menu_action_delete_pocket": "Delete from Pocket",
- "menu_action_archive_pocket": "Archive in Pocket",
- "menu_action_show_file_mac_os": "Show in Finder",
- "menu_action_show_file_windows": "Open Containing Folder",
- "menu_action_show_file_linux": "Open Containing Folder",
- "menu_action_show_file_default": "Show File",
- "menu_action_open_file": "Open File",
- "menu_action_copy_download_link": "Copy Download Link",
- "menu_action_go_to_download_page": "Go to Download Page",
- "menu_action_remove_download": "Remove from History",
+ "menu_action_delete_pocket": "حذف از Pocket",
+ "menu_action_archive_pocket": "آرشیو در Pocket",
+ "menu_action_show_file_mac_os": "نمایش در Finder",
+ "menu_action_show_file_windows": "باز کردن پوشهٔ محتوی",
+ "menu_action_show_file_linux": "باز کردن پوشهٔ محتوی",
+ "menu_action_show_file_default": "نمایش پرونده",
+ "menu_action_open_file": "باز کردن پرونده",
+ "menu_action_copy_download_link": "رونوشت از پیوندِ بارگیری",
+ "menu_action_go_to_download_page": "رفتن به صفحهٔ بارگیری",
+ "menu_action_remove_download": "حذف از تاریخچه",
"search_button": "جستوجو",
"search_header": "جستوجو {search_engine_name}",
"search_web_placeholder": "جستوجوی وب",
"section_disclaimer_topstories": "جالبترین داستانها در وب، بر اساس آنچه شما خواندید انتخاب شده است. از Pocket، که حالا بخشی از Mozilla است.",
"section_disclaimer_topstories_linktext": "ببینید چگونه کار میکند.",
"section_disclaimer_topstories_buttontext": "باشه، گرفتم",
- "prefs_home_header": "Firefox Home Content",
- "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
- "prefs_section_rows_option": "{num} row;{num} rows",
- "prefs_search_header": "Web Search",
- "prefs_topsites_description": "The sites you visit most",
- "prefs_topstories_description2": "Great content from around the web, personalized for you",
- "prefs_topstories_options_sponsored_label": "Sponsored Stories",
- "prefs_topstories_sponsored_learn_more": "Learn more",
- "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
- "prefs_highlights_options_visited_label": "Visited Pages",
- "prefs_highlights_options_download_label": "Most Recent Download",
- "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
- "prefs_snippets_description": "Updates from Mozilla and Firefox",
+ "prefs_home_header": "محتوای صفحه خانگی فایرفاکس",
+ "prefs_home_description": "انتخاب کنید که چه محتوایی میخواهید در صفحه خانگیِ فایرفاکس خود ببینید.",
+ "prefs_section_rows_option": "{num} ردیف;{num} ردیف",
+ "prefs_search_header": "جستوجو وب",
+ "prefs_topsites_description": "سایتهایی که بیشتر بازدید میکنید",
+ "prefs_topstories_description2": "محتوایی عالی از سراسر وب، شخصی شده برای شما",
+ "prefs_topstories_options_sponsored_label": "محتوایی از حامیان مالی",
+ "prefs_topstories_sponsored_learn_more": "اطلاعات بیشتر",
+ "prefs_highlights_description": "گزیدهای از سایتهایی که بازدید یا ذخیره کردهاید",
+ "prefs_highlights_options_visited_label": "صفحات بازدید شده",
+ "prefs_highlights_options_download_label": "آخرین دریافت",
+ "prefs_highlights_options_pocket_label": "صفحات در Pocket ذخیره شد",
+ "prefs_snippets_description": "بروزرسانیهایی از موزیلا و فایرفاکس",
"settings_pane_button_label": "صفحهٔ زبانه جدید را سفارشی کنید",
"settings_pane_topsites_header": "سایتهای برتر",
"settings_pane_highlights_header": "برجستهها",
"settings_pane_highlights_options_bookmarks": "نشانکها",
"settings_pane_snippets_header": "قطعهها",
"edit_topsites_button_text": "ويرايش",
"edit_topsites_edit_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_image_url_label": "Custom Image URL",
+ "topsites_form_url_label": "آدرس",
+ "topsites_form_image_url_label": "آدرسِ سفارشی عکس",
"topsites_form_url_placeholder": "یک URL تایپ کنید یا بچسبانید",
- "topsites_form_use_image_link": "Use a custom image…",
- "topsites_form_preview_button": "Preview",
+ "topsites_form_use_image_link": "استفاده از یک عکس سفارشی…",
+ "topsites_form_preview_button": "پیشنمایش",
"topsites_form_add_button": "افزودن",
"topsites_form_save_button": "ذخیره",
"topsites_form_cancel_button": "انصراف",
"topsites_form_url_validation": "URL معتبر الزامی است",
- "topsites_form_image_validation": "Image failed to load. Try a different URL.",
+ "topsites_form_image_validation": "بارگیری عکس شکست خورد. آدرس دیگری امتحان کنید.",
"pocket_read_more": "موضوعهای محبوب:",
"pocket_read_even_more": "مشاهده داستانهای بیشتر",
"highlights_empty_state": "مرور کردن را شروع کنید و شاهد تعداد زیادی مقاله، فیلم و صفحات خوبی باشید که اخیر مشاهده کرده اید یا نشانگ گذاری کرده اید.",
"topstories_empty_state": "فعلا تموم شد. بعدا دوباره سر بزن تا مطالب جدید از {provider} ببینی. نمیتونی صبر کنی؟ یک موضوع محبوب رو انتخاب کن تا مطالب جالب مرتبط از سراسر دنیا رو پیدا کنی.",
"manual_migration_explanation2": "فایرفاکس را با نشانکها، تاریخچهها و کلمات عبور از سایر مرورگر ها تجربه کنید.",
"manual_migration_cancel_button": "نه ممنون",
"manual_migration_import_button": "هماکنون وارد شوند",
- "error_fallback_default_info": "Oops, something went wrong loading this content.",
- "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
- "section_menu_action_remove_section": "Remove Section",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
- "section_menu_action_manage_webext": "Manage Extension",
- "section_menu_action_add_topsite": "Add Top Site",
+ "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_manage_webext": "مدیریت افزودنی",
+ "section_menu_action_add_topsite": "اضافه کردن سایت برتر",
"section_menu_action_move_up": "جابهجایی به بالا",
"section_menu_action_move_down": "جابهجایی به پایین",
- "section_menu_action_privacy_notice": "Privacy Notice",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step"
+ "section_menu_action_privacy_notice": "نکات حریمخصوصی",
+ "firstrun_title": "فایرفاکس را همراه خود داشته باشید",
+ "firstrun_content": "نشانکها، تاریخچه، گذرواژهها و تنظیمات دیگر خود را بر روی تمام دستگاههای خود همراه خود داشته باشید.",
+ "firstrun_learn_more_link": "در مورد حسابهای فایرفاکس بیشتر بدانید",
+ "firstrun_form_header": "پستالکترونیکی خود را وارد کنید",
+ "firstrun_form_sub_header": "برای فعال کردن همگامسازی فایرفاکس.",
+ "firstrun_email_input_placeholder": "پستالکترونیکی",
+ "firstrun_extra_legal_links": "با ادامه دادن، شما {terms} و {privacy} قبول میکنید.",
+ "firstrun_terms_of_service": "قوانین سرویس",
+ "firstrun_privacy_notice": "نکات حریمخصوصی",
+ "firstrun_continue_to_login": "ادامه",
+ "firstrun_skip_login": "پرش از این مرحله"
};
--- a/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Ɓeydu lowre rowrowre",
"section_menu_action_move_up": "Dirtin dow",
"section_menu_action_move_down": "Dirtin les",
"section_menu_action_privacy_notice": "Tintinal sirlu",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Á Lódáil…",
"header_stories": "Barrscéalta",
--- a/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "Non, grazas",
"manual_migration_import_button": "Importar agora",
"error_fallback_default_info": "Vaites, produciuse un erro ao cargar este contido.",
"error_fallback_default_refresh_suggestion": "Actualice a páxina para tentalo de novo.",
"section_menu_action_remove_section": "Retirar sección",
"section_menu_action_collapse_section": "Contraer sección",
"section_menu_action_expand_section": "Expandir sección",
"section_menu_action_manage_section": "Xestionar sección",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "Xestionar extensión",
"section_menu_action_add_topsite": "Engadir sitio favorito",
"section_menu_action_move_up": "Subir",
"section_menu_action_move_down": "Baixar",
"section_menu_action_privacy_notice": "Política de privacidade",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "prefs_restore_defaults_button": "Restaurar a configuración predeterminada",
- "settings_pane_header": "Preferencias de nova lapela",
- "settings_pane_body2": "Escolla que quere ver nesta páxina.",
- "settings_pane_search_header": "Busca",
- "settings_pane_search_body": "Busca na web dende a nova lapela.",
- "settings_pane_topsites_body": "Acceda aos sitios web que máis visita.",
- "settings_pane_topsites_options_showmore": "Amosar dúas filas",
- "settings_pane_highlights_body2": "Atope algunhas páxinas interesantes que vostede xa visitou ou marcou recentemente.",
- "settings_pane_highlights_options_visited": "Sitios visitados",
- "settings_pane_snippets_body": "Lea noticias curtas de Mozilla sobre o Firefox, a cultura de Internet, e ocasionalmente, algún meme.",
- "settings_pane_done_button": "Feito",
- "settings_pane_topstories_options_sponsored": "Amosar historias patrocinadas",
- "pocket_description": "Grazas a Pocket, que agora forma parte de Mozilla, poderá descubrir contido de gran calidade que doutra forma se perdería."
+ "firstrun_title": "Leve o Firefox consigo",
+ "firstrun_content": "Acceda aos seus marcadores, historial, contrasinais e outras configuracións en todos os seus dispositivos.",
+ "firstrun_learn_more_link": "Obteña máis información sobre as contas Firefox",
+ "firstrun_form_header": "Escriba o seu correo",
+ "firstrun_form_sub_header": "para continuar a Firefox Sync.",
+ "firstrun_email_input_placeholder": "Correo electrónico",
+ "firstrun_extra_legal_links": "Ao continuar, acepta os {terms} e a {privacy}.",
+ "firstrun_terms_of_service": "Termos do servizo",
+ "firstrun_privacy_notice": "Política de privacidade",
+ "firstrun_continue_to_login": "Continuar",
+ "firstrun_skip_login": "Ignorar este paso"
};
--- a/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
@@ -2,22 +2,22 @@
window.gActivityStreamStrings = {
"newtab_page_title": "לשונית חדשה",
"header_top_sites": "אתרים מובילים",
"header_highlights": "מומלצים",
"header_recommended_by": "מומלץ על ידי {provider}",
"context_menu_button_sr": "פתיחת תפריט ההקשר עבור {title}",
"section_context_menu_button_sr": "פתיחת תפריט ההקשר של המדור",
"type_label_visited": "ביקורים קודמים",
- "type_label_bookmarked": "שמור כסימניה",
+ "type_label_bookmarked": "שמור כסימנייה",
"type_label_recommended": "פופולרי",
"type_label_pocket": "נשמר ל־Pocket",
"type_label_downloaded": "התקבל",
- "menu_action_bookmark": "הוספת סימניה",
- "menu_action_remove_bookmark": "הסרת סימניה",
+ "menu_action_bookmark": "הוספת סימנייה",
+ "menu_action_remove_bookmark": "הסרת סימנייה",
"menu_action_open_new_window": "פתיחה בחלון חדש",
"menu_action_open_private_window": "פתיחה בלשונית פרטית חדשה",
"menu_action_dismiss": "הסרה",
"menu_action_delete": "מחיקה מההיסטוריה",
"menu_action_pin": "הצמדה",
"menu_action_unpin": "ביטול הצמדה",
"confirm_history_delete_p1": "למחוק כל עותק של העמוד הזה מההיסטוריה שלך?",
"confirm_history_delete_notice_p2": "לא ניתן לבטל פעולה זו.",
--- a/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
@@ -80,17 +80,17 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "नहीं शुक्रिया",
"manual_migration_import_button": "अब आयात करें",
"error_fallback_default_info": "उफ़, कुछ गलत इस सामग्री लोड हो गया ।",
"error_fallback_default_refresh_suggestion": "पुन: प्रयास करने के लिए पृष्ठ ताज़ा करें ।",
"section_menu_action_remove_section": "अनुभाग निकालें",
"section_menu_action_collapse_section": "अनुभाग संक्षिप्त करें",
"section_menu_action_expand_section": "अनुभाग विस्तृत करें",
"section_menu_action_manage_section": "अनुभाग प्रबंधित करें",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "विस्तारक प्रबंधित करें",
"section_menu_action_add_topsite": "शीर्ष साइट जोड़ें",
"section_menu_action_move_up": "ऊपर जाएँ",
"section_menu_action_move_down": "नीचे जाएँ",
"section_menu_action_privacy_notice": "गोपनीयता नीति",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "अपने सभी उपकरणों पर अपना पुस्तचिह्न, इतिहास, कूटशब्द और अन्य सेटिंग प्राप्त करें.",
"firstrun_learn_more_link": "Firefox खातों के बारे में अधिक जानें",
"firstrun_form_header": "अपना ईमेल प्रविष्ट करें",
--- a/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Učitavanje…",
"header_stories": "Najbolje priče",
--- a/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Բեռնվում է...",
"type_label_synced": "Համաժամեցված այլ սարքից",
--- a/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
@@ -12,17 +12,17 @@ window.gActivityStreamStrings = {
"type_label_pocket": "Salvato in Pocket",
"type_label_downloaded": "Scaricata",
"menu_action_bookmark": "Aggiungi ai segnalibri",
"menu_action_remove_bookmark": "Elimina segnalibro",
"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_pin": "Fissa 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",
"menu_action_delete_pocket": "Elimina da Pocket",
"menu_action_archive_pocket": "Archivia in Pocket",
"menu_action_show_file_mac_os": "Mostra nel Finder",
"menu_action_show_file_windows": "Apri cartella di destinazione",
--- a/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "トップサイトを追加",
"section_menu_action_move_up": "上へ移動",
"section_menu_action_move_down": "下へ移動",
"section_menu_action_privacy_notice": "プライバシー通知",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "初期設定に戻す",
"settings_pane_header": "新しいタブの設定",
--- a/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
@@ -80,38 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "Жоқ, рахмет",
"manual_migration_import_button": "Қазір импорттау",
"error_fallback_default_info": "Қап, бұл құраманы жүктеу кезінде бірнәрсе қате кетті.",
"error_fallback_default_refresh_suggestion": "Қайталап көру үшін, бетті жаңартыңыз.",
"section_menu_action_remove_section": "Санатты өшіру",
"section_menu_action_collapse_section": "Санатты бүктеу",
"section_menu_action_expand_section": "Санатты жазық қылу",
"section_menu_action_manage_section": "Санатты басқару",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "Кеңейтуді басқару",
"section_menu_action_add_topsite": "Үздік сайт қосу",
"section_menu_action_move_up": "Жоғары жылжыту",
"section_menu_action_move_down": "Төмен жылжыту",
"section_menu_action_privacy_notice": "Жекелік ескертуі",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "prefs_restore_defaults_button": "Бастапқы мәндерін қайтару",
- "settings_pane_header": "Жаңа бет баптаулары",
- "settings_pane_body2": "Бұл бетте не көргіңіз келетінді таңдаңыз.",
- "settings_pane_search_header": "Іздеу",
- "settings_pane_search_body": "Жаңа беттен интернеттен іздеңіз.",
- "settings_pane_topsites_body": "Көбірек қаралатын сайттарға қатынау.",
- "settings_pane_topsites_options_showmore": "Екі жолды көрсету",
- "settings_pane_highlights_body2": "Сіз жақында қараған немесе бетбелгілерге қосқан қызықты нәрселерге қайтатын жолды табыңыз.",
- "settings_pane_highlights_options_visited": "Ашылған сайттар",
- "settings_pane_snippets_body": "Mozilla ұсынған Firefox және интернет мәдениеті туралы қысқа жаңалықтарды, және кездейсоқ мемдерді оқыңыз.",
- "settings_pane_done_button": "Дайын",
- "settings_pane_topstories_options_sponsored": "Демеушілер мақалаларын көрсету",
- "pocket_description": "Ол болмаса, сіз жіберіп алатын мүмкіндігі бар жоғары сапалы құраманы Pocket көмегімен табыңыз, ол енді Mozilla-ның бөлігі болып табылады."
+ "firstrun_title": "Firefox-ты өзіңізбен бірге алыңыз",
+ "firstrun_content": "Бетбелгілер, тарих, парольдер және т.б. баптауларды құрылғыларыңыздың барлығында алыңыз.",
+ "firstrun_learn_more_link": "Firefox тіркелгілері туралы көбірек білу",
+ "firstrun_form_header": "Эл. поштаны енгізіңіз",
+ "firstrun_form_sub_header": "Firefox синхрондауына жалғастыру үшін.",
+ "firstrun_email_input_placeholder": "Эл. пошта",
+ "firstrun_extra_legal_links": "Жалғастырсаңыз, {terms} және {privacy} шарттарымен келісесіз.",
+ "firstrun_terms_of_service": "Қолдану шарттары",
+ "firstrun_privacy_notice": "Жекелік ескертуі",
+ "firstrun_continue_to_login": "Жалғастыру",
+ "firstrun_skip_login": "Бұл қадамды аттап кету"
};
--- a/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "កំពុងផ្ទុក...",
"header_stories": "រឿងរ៉ាវកំពូល",
--- a/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "ಲೋಡ್ ಆಗುತ್ತಿದೆ…",
"header_stories": "ಪ್ರಮುಖ ಸುದ್ದಿಗಳು",
--- a/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "ເພີ່ມເວັບໄຊທ໌ຍອດນິຍົມ",
"section_menu_action_move_up": "ຍ້າຍຂື້ນ",
"section_menu_action_move_down": "ຍ້າຍລົງ",
"section_menu_action_privacy_notice": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "ກູ້ຄືນຄ່າພື້ນຖານ",
"settings_pane_header": "ການຕັ້ງຄ່າແທັບໃຫມ່",
--- a/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Īlōdej…",
"header_stories": "Popularōkī roksti",
--- a/browser/extensions/activity-stream/prerendered/locales/mai/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/mai/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "टॉप साइट जोड़ू",
"section_menu_action_move_up": "उप्पर जाउ",
"section_menu_action_move_down": "नीच्चाँ जाउ",
"section_menu_action_privacy_notice": "गोपनीयता सूचना",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Се вчитува…",
"header_stories": "Популарни написи",
--- a/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
@@ -89,16 +89,16 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "दाखल करीत आहे…",
"header_stories": "महत्वाच्या गोष्टी",
--- a/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "ရယူနေသှ်…",
"header_stories": "အကြည့်အများဆုံးသတင်းများ",
--- a/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "शीर्ष साइट थप्नुहोस्",
"section_menu_action_move_up": "माथि सार्नुहोस्",
"section_menu_action_move_down": "तल सार्नुहोस्",
"section_menu_action_privacy_notice": "गोपनीयता नीति",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/oc/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/oc/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
<title>Onglet novèl</title>
<link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
<link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
<link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
</head>
<body class="activity-stream">
- <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Recèrca sul web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Recèrca sul web" title="Recèrca sul web"/><button id="searchSubmit" class="search-button" title="Recercar"><span class="sr-only"><span>Recercar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sites favorits</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Edit this site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recommended by Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Popular Topics:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Highlights</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Customize your New Tab page"></button></div></div></main></div></div></div>
+ <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Recèrca sul web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Recèrca sul web" title="Recèrca sul web"/><button id="searchSubmit" class="search-button" title="Recercar"><span class="sr-only"><span>Recercar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Sites favorits</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Dobrir lo menú contextual de la seccion</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modificar aqueste site"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recomandat per Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Dobrir lo menú contextual de la seccion</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Tèmas populars :</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Notables</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Dobrir lo menú contextual de la seccion</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Personalizar la pagina Onglet novèl"></button></div></div></main></div></div></div>
<div id="snippets-container">
<div id="snippets"></div>
</div>
<script>
// Don't directly load the following scripts as part of html to let the page
// finish loading to render the content sooner.
for (const src of [
"resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/oc/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/oc/activity-stream-strings.js
@@ -1,104 +1,104 @@
// Note - this is a generated oc file.
window.gActivityStreamStrings = {
"newtab_page_title": "Onglet novèl",
"header_top_sites": "Sites favorits",
- "header_highlights": "Highlights",
- "header_recommended_by": "Recommended by {provider}",
- "context_menu_button_sr": "Open context menu for {title}",
- "section_context_menu_button_sr": "Open the section context menu",
+ "header_highlights": "Notables",
+ "header_recommended_by": "Recomandat per {provider}",
+ "context_menu_button_sr": "Dobrir lo menú contextual de {title}",
+ "section_context_menu_button_sr": "Dobrir lo menú contextual de la seccion",
"type_label_visited": "Visitat",
"type_label_bookmarked": "Apondut als marcapaginas",
"type_label_recommended": "Tendéncia",
"type_label_pocket": "Pagina enregistrada dins Pocket",
"type_label_downloaded": "Telecargat",
"menu_action_bookmark": "Marcar aquesta pagina",
"menu_action_remove_bookmark": "Suprimir lo marcapagina",
"menu_action_open_new_window": "Dobrir lo ligam dins una fenèstra novèla",
"menu_action_open_private_window": "Dobrir lo ligam dins una fenèstra de navegacion privada",
- "menu_action_dismiss": "Dismiss",
- "menu_action_delete": "Delete from History",
- "menu_action_pin": "Pin",
- "menu_action_unpin": "Unpin",
- "confirm_history_delete_p1": "Are you sure you want to delete every instance of this page from your history?",
- "confirm_history_delete_notice_p2": "This action cannot be undone.",
- "menu_action_save_to_pocket": "Save to Pocket",
- "menu_action_delete_pocket": "Delete from Pocket",
- "menu_action_archive_pocket": "Archive in Pocket",
- "menu_action_show_file_mac_os": "Show in Finder",
- "menu_action_show_file_windows": "Open Containing Folder",
- "menu_action_show_file_linux": "Open Containing Folder",
+ "menu_action_dismiss": "Tirar",
+ "menu_action_delete": "Suprimir de l’istoric",
+ "menu_action_pin": "Penjar",
+ "menu_action_unpin": "Despenjar",
+ "confirm_history_delete_p1": "Volètz vertadièrament suprimir l’istoric de totas las instàncias d’aquesta pagina ?",
+ "confirm_history_delete_notice_p2": "Impossible d'anullar aquesta accion.",
+ "menu_action_save_to_pocket": "Enregistrar dins Pocket",
+ "menu_action_delete_pocket": "Suprimir de Pocket",
+ "menu_action_archive_pocket": "Archivar dins Pocket",
+ "menu_action_show_file_mac_os": "Mostrar dins Finder",
+ "menu_action_show_file_windows": "Dobrir lo repertòri ont se tròba",
+ "menu_action_show_file_linux": "Dobrir lo repertòri que conten lo fichièr",
"menu_action_show_file_default": "Mostrar lo fichièr",
"menu_action_open_file": "Dobrir lo fichièr",
- "menu_action_copy_download_link": "Copy Download Link",
- "menu_action_go_to_download_page": "Go to Download Page",
+ "menu_action_copy_download_link": "Copiar lo ligam de telecargament",
+ "menu_action_go_to_download_page": "Anar a la pagina de telecargament",
"menu_action_remove_download": "Tirar de l’istoric",
"search_button": "Recercar",
- "search_header": "{search_engine_name} Search",
+ "search_header": "Recèrca {search_engine_name}",
"search_web_placeholder": "Recèrca sul web",
- "section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
+ "section_disclaimer_topstories": "Los articles mai interessants del web, seleccionats segon çò que legissètz . Gràcia a Pocket, que ara es part de Mozilla.",
"section_disclaimer_topstories_linktext": "Vejatz cossí fonciona.",
"section_disclaimer_topstories_buttontext": "Comprés",
- "prefs_home_header": "Firefox Home Content",
- "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
- "prefs_section_rows_option": "{num} row;{num} rows",
- "prefs_search_header": "Web Search",
- "prefs_topsites_description": "The sites you visit most",
- "prefs_topstories_description2": "Great content from around the web, personalized for you",
- "prefs_topstories_options_sponsored_label": "Sponsored Stories",
- "prefs_topstories_sponsored_learn_more": "Learn more",
- "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
- "prefs_highlights_options_visited_label": "Visited Pages",
- "prefs_highlights_options_download_label": "Most Recent Download",
- "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
- "prefs_snippets_description": "Updates from Mozilla and Firefox",
- "settings_pane_button_label": "Customize your New Tab page",
- "settings_pane_topsites_header": "Top Sites",
- "settings_pane_highlights_header": "Highlights",
- "settings_pane_highlights_options_bookmarks": "Bookmarks",
- "settings_pane_snippets_header": "Snippets",
- "edit_topsites_button_text": "Edit",
- "edit_topsites_edit_button": "Edit this site",
- "topsites_form_add_header": "New Top Site",
- "topsites_form_edit_header": "Edit Top Site",
- "topsites_form_title_label": "Title",
- "topsites_form_title_placeholder": "Enter a title",
+ "prefs_home_header": "Contengut de la pagina d’acuèlh de Firefox",
+ "prefs_home_description": "Causissètz lo contengut que volètz a la pagina d’acuèlh de Fireofx.",
+ "prefs_section_rows_option": "{num} linha;{num} linhas",
+ "prefs_search_header": "Recèrca web",
+ "prefs_topsites_description": "Los sites que visitatz mai sovent",
+ "prefs_topstories_description2": "De contengut interessant de tot lo web, personalizat per vos",
+ "prefs_topstories_options_sponsored_label": "Articles pairinejats",
+ "prefs_topstories_sponsored_learn_more": "Ne saber mai",
+ "prefs_highlights_description": "Una seleccion de sites qu’avètz enregistrats o visitats",
+ "prefs_highlights_options_visited_label": "Paginas visitadas",
+ "prefs_highlights_options_download_label": "Telecargament mai recent",
+ "prefs_highlights_options_pocket_label": "Paginas enregistradas dins Pocket",
+ "prefs_snippets_description": "Actualitat de Mozilla e Firefox",
+ "settings_pane_button_label": "Personalizar la pagina Onglet novèl",
+ "settings_pane_topsites_header": "Sites populars",
+ "settings_pane_highlights_header": "Notables",
+ "settings_pane_highlights_options_bookmarks": "Marcapaginas",
+ "settings_pane_snippets_header": "Extraches",
+ "edit_topsites_button_text": "Modificar",
+ "edit_topsites_edit_button": "Modificar aqueste site",
+ "topsites_form_add_header": "Noù site popular",
+ "topsites_form_edit_header": "Modificar lo site popular",
+ "topsites_form_title_label": "Títol",
+ "topsites_form_title_placeholder": "Picar un títol",
"topsites_form_url_label": "URL",
- "topsites_form_image_url_label": "Custom Image URL",
- "topsites_form_url_placeholder": "Type or paste a URL",
- "topsites_form_use_image_link": "Use a custom image…",
- "topsites_form_preview_button": "Preview",
- "topsites_form_add_button": "Add",
- "topsites_form_save_button": "Save",
- "topsites_form_cancel_button": "Cancel",
- "topsites_form_url_validation": "Valid URL required",
- "topsites_form_image_validation": "Image failed to load. Try a different URL.",
- "pocket_read_more": "Popular Topics:",
- "pocket_read_even_more": "View More Stories",
- "highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.",
+ "topsites_form_image_url_label": "URL d'imatge personalizat",
+ "topsites_form_url_placeholder": "Picar o pegar una URL",
+ "topsites_form_use_image_link": "Utilizar un imatge personalizat…",
+ "topsites_form_preview_button": "Apercebut",
+ "topsites_form_add_button": "Apondre",
+ "topsites_form_save_button": "Enregistrar",
+ "topsites_form_cancel_button": "Anullar",
+ "topsites_form_url_validation": "Una URLvalida es requesida",
+ "topsites_form_image_validation": "L’imatge a pas capitat de se cargar. Ensajatz una URL diferenta.",
+ "pocket_read_more": "Tèmas populars :",
+ "pocket_read_even_more": "Veire mai d’articles",
+ "highlights_empty_state": "Començatz de navegar e aquí vos mostrarem los melhors articles, vidèos e autras paginas qu’avètz visitadas o apondudas als marcapaginas.",
"topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
- "manual_migration_explanation2": "Try Firefox with the bookmarks, history and passwords from another browser.",
- "manual_migration_cancel_button": "No Thanks",
- "manual_migration_import_button": "Import Now",
- "error_fallback_default_info": "Oops, something went wrong loading this content.",
- "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
- "section_menu_action_remove_section": "Remove Section",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
- "section_menu_action_manage_webext": "Manage Extension",
- "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",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step"
+ "manual_migration_explanation2": "Ensajatz Firefox amb marcapaginas, istoric e senhals d’un autre navegador.",
+ "manual_migration_cancel_button": "Non, mercé",
+ "manual_migration_import_button": "Importar",
+ "error_fallback_default_info": "Ops, una error s’es producha en cargar aqueste contengut.",
+ "error_fallback_default_refresh_suggestion": "Actualizatz la pagina per tornar ensajar.",
+ "section_menu_action_remove_section": "Suprimir la seccion",
+ "section_menu_action_collapse_section": "Reduire la seccion",
+ "section_menu_action_expand_section": "Desplegar la seccion",
+ "section_menu_action_manage_section": "Gerir la seccion",
+ "section_menu_action_manage_webext": "Gerir l’extension",
+ "section_menu_action_add_topsite": "Apondre als sites populars",
+ "section_menu_action_move_up": "Desplaçar cap amont",
+ "section_menu_action_move_down": "Desplaçar cap aval",
+ "section_menu_action_privacy_notice": "Politica de confidencialitat",
+ "firstrun_title": "Emportatz Firefox amb vos",
+ "firstrun_content": "Accedissètz als marcapaginas, istoric, senhals d’autres paramètres de totes vòstres periferics.",
+ "firstrun_learn_more_link": "Mai d’explicacions tocant los comptes Firefox",
+ "firstrun_form_header": "Picatz vòstra adreça electronica",
+ "firstrun_form_sub_header": "per contunhar amb Firefox Sync.",
+ "firstrun_email_input_placeholder": "Adreça electronica",
+ "firstrun_extra_legal_links": "Se contunhatz, acceptatz las {terms} e l’{privacy}.",
+ "firstrun_terms_of_service": "Condicions d’utilizacion",
+ "firstrun_privacy_notice": "Avís de privacitat",
+ "firstrun_continue_to_login": "Contunhar",
+ "firstrun_skip_login": "Passar aquesta etapa"
};
--- a/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js
@@ -80,36 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "ਨਹੀਂ, ਧੰਨਵਾਦ",
"manual_migration_import_button": "ਹੁਣੇ ਇੰਪੋਰਟ ਕਰੋ",
"error_fallback_default_info": "ਓਹ ਹੋ, ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਲੋਡ ਕਰਨ ਵਿੱਚ ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ।",
"error_fallback_default_refresh_suggestion": "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਪੰਨਾ ਤਾਜ਼ਾ ਕਰੋ।",
"section_menu_action_remove_section": "ਸੈਕਸ਼ਨ ਹਟਾਓ",
"section_menu_action_collapse_section": "ਸੈਕਸ਼ਨ ਨੂੰ ਸਮੇਟੋ",
"section_menu_action_expand_section": "ਸੈਕਸ਼ਨ ਦੀ ਫੈਲਾਓ",
"section_menu_action_manage_section": "ਸੈਕਸ਼ਨ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "ਇਕਸਟੈਨਸ਼ਨਾਂ ਦਾ ਇੰਤਜ਼ਾਮ",
"section_menu_action_add_topsite": "ਚੋਟੀ ਦੀਆਂ ਸਾਈਟਾਂ ਜੋੜੋ",
"section_menu_action_move_up": "ਉੱਤੇ ਭੇਜੋ",
"section_menu_action_move_down": "ਹੇਠਾਂ ਭੇਜੋ",
"section_menu_action_privacy_notice": "ਨਿੱਜੀ ਨੋਟਿਸ",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "prefs_restore_defaults_button": "ਡਿਫੌਲਟ 'ਤੇ ਰੀਸਟੋਰ ਕਰੋ",
- "settings_pane_header": "ਨਵੀਂ ਟੈਬ ਲਈ ਪਸੰਦਾਂ",
- "settings_pane_body2": "ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਇਸ ਸਫ਼ੇ ਤੇ ਕੀ ਦੇਖਿਆ।",
- "settings_pane_search_header": "ਖੋਜੋ",
- "settings_pane_search_body": "ਆਪਣੀ ਨਵੀਂ ਟੈਬ ਤੋਂ ਵੈੱਬ ਨੂੰ ਖੋਜੋ।",
- "settings_pane_topsites_body": "ਵੈੱਬਸਾਈਟਾਂ, ਜਿਹਨਾਂ ਨੂੰ ਤੁਸੀਂ ਸਭ ਤੋਂ ਵੱਧ ਖੋਲ੍ਹਿਆ ਹੈ, ਲਈ ਪਹੁੰਚ।",
- "settings_pane_topsites_options_showmore": "ਦੋ ਕਤਾਰਾਂ ਵੇਖਾਓ",
- "settings_pane_highlights_body2": "ਜਿਹੜੀਆਂ ਦਿਲਚਸਪ ਚੀਜ਼ਾਂ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਦੇਖੀਆਂ ਹਨ ਜਾਂ ਬੁੱਕਮਾਰਕ ਕੀਤੀਆਂ ਹਨ, ਬਾਰੇ ਆਪਣਾ ਵਾਪਸੀ ਰਸਤਾ ਲੱਭੋ।",
- "settings_pane_highlights_options_visited": "ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ",
- "settings_pane_done_button": "ਮੁਕੰਮਲ",
- "settings_pane_topstories_options_sponsored": "ਸਪਾਂਸਰ ਕੀਤੀਆਂ ਕਹਾਣੀਆਂ ਵੇਖਾਓ"
+ "firstrun_title": "ਫਾਇਰਫਾਕਸ ਨੂੰ ਆਪਣੇ ਨਾਲ ਲੈ ਜਾਓ",
+ "firstrun_content": "ਆਪਣੇ ਬੁੱਕਮਾਰਕ, ਅਤੀਤ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਨੂੰ ਆਪਣੇ ਹੋਰ ਡਿਵਾਈਸਾਂ ਉੱਤੇ ਲਵੋ।",
+ "firstrun_learn_more_link": "ਫਾਇਰਫਾਕਸ ਖਾਤਿਆਂ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਹਾਸਲ ਕਰੋ",
+ "firstrun_form_header": "ਆਪਣਾ ਈਮੇਲ ਦਿਓ",
+ "firstrun_form_sub_header": "ਤਾਂ ਕਿ ਫਾਇਰਫਾਕਸ ਸਿੰਕ ਨਾਲ ਜਾਰੀ ਰੱਖਿਆ ਜਾਵੇ।",
+ "firstrun_email_input_placeholder": "ਈਮੇਲ",
+ "firstrun_extra_legal_links": "ਜਾਰੀ ਰੱਖ ਕੇ ਤੁਸੀਂ {terms} ਅਤੇ {privacy} ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ।",
+ "firstrun_terms_of_service": "ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂ",
+ "firstrun_privacy_notice": "ਪਰਦੇਦਾਰੀ ਦਾ ਨੋਟਿਸ",
+ "firstrun_continue_to_login": "ਜਾਰੀ ਰੱਖੋ",
+ "firstrun_skip_login": "ਇਹ ਪਗ਼ ਛੱਡੋ"
};
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
@@ -4,17 +4,17 @@
<meta charset="utf-8">
<meta http-equiv="Content-Security-Policy-Report-Only" content="script-src 'unsafe-inline'; img-src http: https: data: blob:; style-src 'unsafe-inline'; child-src 'none'; object-src 'none'; report-uri https://tiles.services.mozilla.com/v4/links/activity-stream/csp">
<title>Nov tab</title>
<link rel="icon" type="image/png" href="chrome://branding/content/icon32.png"/>
<link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
<link rel="stylesheet" href="resource://activity-stream/css/activity-stream.css" />
</head>
<body class="activity-stream">
- <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Tschertgar en il Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Tschertgar en il Web" title="Tschertgar en il Web"/><button id="searchSubmit" class="search-button" title="Tschertgar"><span class="sr-only"><span>Tschertgar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Paginas preferidas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recumandà da Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Temas populars:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Accents</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Open the section context menu</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Persunalisar tia pagina per novs tabs"></button></div></div></main></div></div></div>
+ <div id="root"><div data-reactroot=""><div class="outer-wrapper fixed-to-top"><main><div class="non-collapsible-section"><div class="search-wrapper"><label for="newtab-search-text" class="search-label"><span class="sr-only"><span>Tschertgar en il Web</span></span></label><input type="search" id="newtab-search-text" maxLength="256" placeholder="Tschertgar en il Web" title="Tschertgar en il Web"/><button id="searchSubmit" class="search-button" title="Tschertgar"><span class="sr-only"><span>Tschertgar</span></span></button></div></div><div class="body-wrapper"><div class="sections-list"><section class="collapsible-section top-sites animation-enabled" data-section-id="topsites"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-topsites"></span><span>Paginas preferidas</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avrir il menu contextual da questa secziun</span></span></button></div></div><div class="section-body"><ul class="top-sites-list"><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder "><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li><li class="top-site-outer placeholder hide-for-narrow"><div class="top-site-inner"><a><div class="tile" aria-hidden="true"><div class="screenshot" style="background-image:none"></div></div><div class="title "><span dir="auto"></span></div></a><button class="context-menu-button edit-button icon" title="Modifitgar questa pagina"></button></div></li></ul><div class="edit-topsites-wrapper"></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="topstories"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-pocket"></span><span>Recumandà da Pocket</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avrir il menu contextual da questa secziun</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul><div class="topic"><span><span>Temas populars:</span></span><ul></ul></div></div></section><section class="collapsible-section section normal-cards animation-enabled" data-section-id="highlights"><div class="section-top-bar"><h3 class="section-title"><span class="click-target"><span class="icon icon-small-spacer icon-highlights"></span><span>Accents</span></span></h3><div><button class="context-menu-button icon"><span class="sr-only"><span>Avrir il menu contextual da questa secziun</span></span></button></div></div><div class="section-body"><ul class="section-list" style="padding:0"></ul></div></section></div><div class="prefs-button"><button class="icon icon-settings" title="Persunalisar tia pagina per novs tabs"></button></div></div></main></div></div></div>
<div id="snippets-container">
<div id="snippets"></div>
</div>
<script>
// Don't directly load the following scripts as part of html to let the page
// finish loading to render the content sooner.
for (const src of [
"resource://activity-stream/prerendered/static/activity-stream-initial-state.js",
--- a/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
@@ -1,153 +1,104 @@
// Note - this is a generated rm file.
window.gActivityStreamStrings = {
"newtab_page_title": "Nov tab",
"header_top_sites": "Paginas preferidas",
"header_highlights": "Accents",
"header_recommended_by": "Recumandà da {provider}",
- "context_menu_button_sr": "Open context menu for {title}",
- "section_context_menu_button_sr": "Open the section context menu",
+ "context_menu_button_sr": "Avrir il menu contextual per {title}",
+ "section_context_menu_button_sr": "Avrir il menu contextual da questa secziun",
"type_label_visited": "Visità",
"type_label_bookmarked": "Cun segnapagina",
"type_label_recommended": "Popular",
- "type_label_pocket": "Saved to Pocket",
- "type_label_downloaded": "Downloaded",
+ "type_label_pocket": "Memorisà en Pocket",
+ "type_label_downloaded": "Telechargià",
"menu_action_bookmark": "Marcar sco segnapagina",
"menu_action_remove_bookmark": "Allontanar il segnapagina",
"menu_action_open_new_window": "Avrir en ina nova fanestra",
"menu_action_open_private_window": "Avrir en ina nova fanestra privata",
"menu_action_dismiss": "Sbittar",
"menu_action_delete": "Stizzar da la cronologia",
"menu_action_pin": "Fixar",
"menu_action_unpin": "Betg pli fixar",
"confirm_history_delete_p1": "Vuls ti propi stizzar mintga instanza da questa pagina ord la cronologia?",
"confirm_history_delete_notice_p2": "Questa acziun na po betg vegnir revocada.",
"menu_action_save_to_pocket": "Memorisar en Pocket",
- "menu_action_delete_pocket": "Delete from Pocket",
- "menu_action_archive_pocket": "Archive in Pocket",
- "menu_action_show_file_mac_os": "Show in Finder",
- "menu_action_show_file_windows": "Open Containing Folder",
- "menu_action_show_file_linux": "Open Containing Folder",
- "menu_action_show_file_default": "Show File",
- "menu_action_open_file": "Open File",
- "menu_action_copy_download_link": "Copy Download Link",
- "menu_action_go_to_download_page": "Go to Download Page",
- "menu_action_remove_download": "Remove from History",
+ "menu_action_delete_pocket": "Stizzar da Pocket",
+ "menu_action_archive_pocket": "Archivar en Pocket",
+ "menu_action_show_file_mac_os": "Mussar en il Finder",
+ "menu_action_show_file_windows": "Mussar l'ordinatur che cuntegna la datoteca",
+ "menu_action_show_file_linux": "Mussar l'ordinatur che cuntegna la datoteca",
+ "menu_action_show_file_default": "Mussar la datoteca",
+ "menu_action_open_file": "Avrir la datoteca",
+ "menu_action_copy_download_link": "Copiar la colliaziun a la telechargiada",
+ "menu_action_go_to_download_page": "Ir a la pagina da telechargiada",
+ "menu_action_remove_download": "Allontanar da la cronologia",
"search_button": "Tschertgar",
"search_header": "Tschertga da {search_engine_name}",
"search_web_placeholder": "Tschertgar en il Web",
"section_disclaimer_topstories": "Las istorgias las pli interessantas en il web, tschernidas a basa da quai che ti legias. Da Pocket che fa ussa part da Mozilla.",
"section_disclaimer_topstories_linktext": "Ve a savair co quai funcziuna.",
"section_disclaimer_topstories_buttontext": "Ok, chapì",
- "prefs_home_header": "Firefox Home Content",
- "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
- "prefs_section_rows_option": "{num} row;{num} rows",
- "prefs_search_header": "Web Search",
- "prefs_topsites_description": "The sites you visit most",
- "prefs_topstories_description2": "Great content from around the web, personalized for you",
- "prefs_topstories_options_sponsored_label": "Sponsored Stories",
- "prefs_topstories_sponsored_learn_more": "Learn more",
- "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
- "prefs_highlights_options_visited_label": "Visited Pages",
- "prefs_highlights_options_download_label": "Most Recent Download",
- "prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
- "prefs_snippets_description": "Updates from Mozilla and Firefox",
+ "prefs_home_header": "Cuntegn da la pagina da partenza da Firefox",
+ "prefs_home_description": "Tscherna il cuntegn che ti vuls vesair sin la pagina da partenza da Firefox.",
+ "prefs_section_rows_option": "{num} lingia;{num} lingias",
+ "prefs_search_header": "Tschertga web",
+ "prefs_topsites_description": "Las paginas che ti visitas il pli savens",
+ "prefs_topstories_description2": "Cuntegn interessant ord il web, persunalisà per tai",
+ "prefs_topstories_options_sponsored_label": "Artitgels sponsurads",
+ "prefs_topstories_sponsored_learn_more": "Ulteriuras infurmaziuns",
+ "prefs_highlights_description": "Ina selecziun da paginas che ti has memorisà u visità",
+ "prefs_highlights_options_visited_label": "Paginas visitadas",
+ "prefs_highlights_options_download_label": "L'ultima telechargiada",
+ "prefs_highlights_options_pocket_label": "Paginas memorisadas en Pocket",
+ "prefs_snippets_description": "Novitads da Mozilla e Firefox",
"settings_pane_button_label": "Persunalisar tia pagina per novs tabs",
"settings_pane_topsites_header": "Paginas preferidas",
"settings_pane_highlights_header": "Accents",
"settings_pane_highlights_options_bookmarks": "Segnapaginas",
"settings_pane_snippets_header": "Zinslas",
"edit_topsites_button_text": "Modifitgar",
"edit_topsites_edit_button": "Modifitgar questa pagina",
"topsites_form_add_header": "Nova pagina populara",
"topsites_form_edit_header": "Modifitgar la pagina populara",
- "topsites_form_title_label": "Title",
+ "topsites_form_title_label": "Titel",
"topsites_form_title_placeholder": "Endatar in titel",
"topsites_form_url_label": "URL",
- "topsites_form_image_url_label": "Custom Image URL",
+ "topsites_form_image_url_label": "URL dal maletg persunalisà",
"topsites_form_url_placeholder": "Tippar u encollar ina URL",
- "topsites_form_use_image_link": "Use a custom image…",
- "topsites_form_preview_button": "Preview",
+ "topsites_form_use_image_link": "Utilisar in maletg persunalisà…",
+ "topsites_form_preview_button": "Prevista",
"topsites_form_add_button": "Agiuntar",
"topsites_form_save_button": "Memorisar",
"topsites_form_cancel_button": "Interrumper",
"topsites_form_url_validation": "In URL valid è necessari",
- "topsites_form_image_validation": "Image failed to load. Try a different URL.",
+ "topsites_form_image_validation": "Impussibel da chargiar il maletg. Emprova in auter URL.",
"pocket_read_more": "Temas populars:",
"pocket_read_even_more": "Mussar dapli artitgels",
"highlights_empty_state": "Cumenza a navigar e nus ta mussain qua artitgels, videos ed autras paginas che ti has visità dacurt u che ti has agiuntà dacurt sco segnapagina.",
"topstories_empty_state": "Ussa has ti legì tut las novitads. Turna pli tard per ulteriuras novitads da {provider}. Na pos betg spetgar? Tscherna in tema popular per chattar ulteriuras istorgias ord il web.",
"manual_migration_explanation2": "Emprova Firefox cun ils segnapaginas, la cronologia ed ils pleds-clav importads d'in auter navigatur.",
"manual_migration_cancel_button": "Na, grazia",
"manual_migration_import_button": "Importar ussa",
- "error_fallback_default_info": "Oops, something went wrong loading this content.",
- "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
- "section_menu_action_remove_section": "Remove Section",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
- "section_menu_action_manage_webext": "Manage Extension",
- "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",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
- "firstrun_email_input_placeholder": "Email",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "default_label_loading": "Chargiar…",
- "header_stories": "Artitgels populars",
- "header_visit_again": "Turnar a visitar",
- "header_bookmarks": "Segnapaginas novs",
- "header_bookmarks_placeholder": "Ti n'has anc nagins segnapaginas.",
- "header_stories_from": "da",
- "type_label_synced": "Sincronisà dad auters apparats",
- "type_label_open": "Avert",
- "type_label_topic": "Tema",
- "type_label_now": "Ussa",
- "menu_action_copy_address": "Copiar l'adressa",
- "menu_action_email_link": "Trametter la colliaziun per e-mail…",
- "search_for_something_with": "Tschertgar {search_term} cun:",
- "search_settings": "Midar las preferenzas per tschertgar",
- "section_info_option": "Info",
- "section_info_send_feedback": "Trametter in resun",
- "section_info_privacy_notice": "Infurmaziuns davart la protecziun da datas",
- "welcome_title": "Bainvegni sin in nov tab",
- "welcome_body": "Firefox utilisescha quest plaz per ta mussar ils segnapaginas, ils artitgels, ils videos e las paginas las pli relevantas che ti has visità dacurt, uschè che ti pos turnar a moda simpla tar quellas.",
- "welcome_label": "Identifitgar tes accents",
- "time_label_less_than_minute": "< 1 min",
- "time_label_minute": "{number} min",
- "time_label_hour": "{number} uras",
- "time_label_day": "{number} dis",
- "settings_pane_header": "Preferenzas per novs tabs",
- "settings_pane_body2": "Tscherna tge che vegn mussà sin questa pagina.",
- "settings_pane_search_header": "Tschertgar",
- "settings_pane_search_body": "Tschertgar en l'internet da tes nov tab.",
- "settings_pane_topsites_body": "Acceder las websites che ti visitas il pli savens.",
- "settings_pane_topsites_options_showmore": "Mussar duas colonnas",
- "settings_pane_bookmarks_header": "Novs segnapaginas",
- "settings_pane_bookmarks_body": "Tes novs segnapaginas en in lieu pratic.",
- "settings_pane_visit_again_header": "Turnar a visitar",
- "settings_pane_visit_again_body": "Firefox ta mussa parts da tia cronologia da navigaziun che pudessan esser interessantas per turnar.",
- "settings_pane_highlights_body2": "Chatta svelt puspè paginas interessantas che ti has visità u marcà sco segnapagina.",
- "settings_pane_highlights_options_visited": "Paginas visitadas",
- "settings_pane_snippets_body": "Legia infurmaziuns curtas da Mozilla davart Firefox, la cultura da l'internet e da temp en temp in meme.",
- "settings_pane_done_button": "Finì",
- "settings_pane_topstories_options_sponsored": "Mussar istorgias sponsorisadas",
- "edit_topsites_button_label": "Persunalisar la secziun da paginas preferidas",
- "edit_topsites_showmore_button": "Mussar dapli",
- "edit_topsites_showless_button": "Mussar pli pauc",
- "edit_topsites_done_button": "Finì",
- "edit_topsites_pin_button": "Fixar questa pagina",
- "edit_topsites_unpin_button": "Betg pli fixar questa pagina",
- "edit_topsites_dismiss_button": "Allontanar questa pagina",
- "edit_topsites_add_button": "Agiuntar",
- "pocket_feedback_header": "Il meglier ord il web, selecziunà da dapli che 25 milliuns umans.",
- "pocket_description": "Scuvra cuntegn dad auta qualitad cun agid da Pocket che fa ussa part da Mozilla."
+ "error_fallback_default_info": "Oha, igl è succedì in sbagl cun chargiar il cuntegn.",
+ "error_fallback_default_refresh_suggestion": "Rechargia la pagina per reempruvar.",
+ "section_menu_action_remove_section": "Allontanar la secziun",
+ "section_menu_action_collapse_section": "Reducir la secziun",
+ "section_menu_action_expand_section": "Expander la secziun",
+ "section_menu_action_manage_section": "Administrar la secziun",
+ "section_menu_action_manage_webext": "Administrar l'extensiun",
+ "section_menu_action_add_topsite": "Agiuntar ina website populara",
+ "section_menu_action_move_up": "Spustar ensi",
+ "section_menu_action_move_down": "Spustar engiu",
+ "section_menu_action_privacy_notice": "Infurmaziuns davart la protecziun da datas",
+ "firstrun_title": "Prenda Firefox cun tai",
+ "firstrun_content": "Acceda cun tut tes apparats a tes segnapaginas, a la cronologia, als pleds-clav ed ad autras preferenzas.",
+ "firstrun_learn_more_link": "Ulteriuras infurmaziuns davart contos da Firefox",
+ "firstrun_form_header": "Endatescha tia adressa dad e-mail",
+ "firstrun_form_sub_header": "per cuntinuar cun Firefox Sync.",
+ "firstrun_email_input_placeholder": "E-mail",
+ "firstrun_extra_legal_links": "Cun cuntinuar acceptas ti las {terms} e las {privacy}.",
+ "firstrun_terms_of_service": "Cundiziuns d'utilisaziun",
+ "firstrun_privacy_notice": "Infurmaziuns davart la protecziun da datas",
+ "firstrun_continue_to_login": "Cuntinuar",
+ "firstrun_skip_login": "Sursiglir quest pass"
};
--- a/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
@@ -89,17 +89,17 @@ 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",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "පූරණය වෙමින්…",
"header_stories": "ප්රමුඛ පුවත්",
--- a/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
@@ -89,29 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Dodaj glavno stran",
"section_menu_action_move_up": "Premakni gor",
"section_menu_action_move_down": "Premakni dol",
"section_menu_action_privacy_notice": "Obvestilo o zasebnosti",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
- "firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "prefs_restore_defaults_button": "Povrni privzeto",
- "settings_pane_header": "Nastavitve novega zavihka",
- "settings_pane_body2": "Izberite, kaj želite videti na tej strani.",
- "settings_pane_search_header": "Iskanje",
- "settings_pane_search_body": "Iščite po spletu z novega zavihka.",
- "settings_pane_topsites_body": "Priročen dostop do najbolj obiskanih strani.",
- "settings_pane_topsites_options_showmore": "Prikaži dve vrsti",
- "settings_pane_highlights_body2": "Najdite pot nazaj do zanimivih strani, ki ste jih nedavno obiskali ali dodali med zaznamke.",
- "settings_pane_highlights_options_visited": "Obiskane strani",
- "settings_pane_snippets_body": "Spremljajte kratke novice o Mozilli in Firefoxu, kulturi interneta in si občasno oglejte kak meme.",
- "settings_pane_done_button": "Končano",
- "settings_pane_topstories_options_sponsored": "Prikaži zgodbe oglaševalcev",
- "pocket_description": "Odkrijte kakovostno vsebino, ki bi jo sicer spregledali, s pomočjo Pocketa (zdaj dela Mozille)."
+ "firstrun_terms_of_service": "Pogoji uporabe",
+ "firstrun_privacy_notice": "Obvestilo o zasebnosti",
+ "firstrun_continue_to_login": "Nadaljuj",
+ "firstrun_skip_login": "Preskoči ta korak"
};
--- a/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Shtoni Sajt Kryesues",
"section_menu_action_move_up": "Ngjite",
"section_menu_action_move_down": "Zbrite",
"section_menu_action_privacy_notice": "Shënim Mbi Privatësinë",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
@@ -69,17 +69,17 @@ window.gActivityStreamStrings = {
"topsites_form_preview_button": "முன்தோற்றம்",
"topsites_form_add_button": "சேர்",
"topsites_form_save_button": "சேமி",
"topsites_form_cancel_button": "தவிர்",
"topsites_form_url_validation": "சரியான URL தேவை",
"topsites_form_image_validation": "படத்தை ஏற்றுவதில் தோல்வி. வேறு URL ஐ முயற்சிக்கவும்.",
"pocket_read_more": "பிரபலமான தலைப்புகள்:",
"pocket_read_even_more": "இன்னும் கதைகளைப் பார்க்கவும்",
- "highlights_empty_state": "உலாவலைத் தொடங்கவும், மேலும் நாங்கள் சில சிறந்த கட்டுரைகள், காணொளிகள், மற்றும் நீங்கள் சமீபத்தில் பார்த்த பிற பக்கங்கள் அல்லது இங்கே புத்தகக்குறியிட்டவற்றைக் காட்டுவோம்.",
+ "highlights_empty_state": "உலாவலைத் தொடங்கவும், மேலும் நாங்கள் சில சிறந்த கட்டுரைகள், காணொளிகள், மற்றும் நீங்கள் சமீபத்தில் பார்த்த அல்லது புத்தகக்குறியிட்ட பக்கங்களை இங்கே காட்டுவோம்.",
"topstories_empty_state": "நீங்கள் முடித்துவிட்டீர்கள். {provider} இலிருந்து கூடுதல் கதைகளுக்கு பின்னர் பாருங்கள். காத்திருக்க முடியவில்லையா? இணையத்திலிருந்து கூடுதலான கதைகளைக் கண்டுபிடிக்க பிரபலமான தலைப்பைத் தேர்ந்தெடுங்கள்.",
"manual_migration_explanation2": "மற்றொரு உலாவியின் புத்தகக்குறிகள், வரலாறு மற்றும் கடவுச்சொற்களுடன் பயர்பாக்சை முயற்சித்துப் பாருங்கள்.",
"manual_migration_cancel_button": "பரவாயில்லை",
"manual_migration_import_button": "இப்போது இறக்கு",
"error_fallback_default_info": "அச்சச்சோ, இந்த உள்ளடக்கத்தை ஏற்றுவதில் ஏதோ தவறு ஏற்பட்டது.",
"error_fallback_default_refresh_suggestion": "மீண்டும் முயற்சிக்க பக்கத்தை புதுப்பி.",
"section_menu_action_remove_section": "பகுதியை நீக்கவும்",
"section_menu_action_collapse_section": "பகுதியைச் சுருக்கு",
@@ -89,16 +89,16 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "முதன்மை தளத்தைச் சேர்",
"section_menu_action_move_up": "மேலே நகர்த்து",
"section_menu_action_move_down": "கீழே நகர்த்து",
"section_menu_action_privacy_notice": "தனியுரிமை அறிவிப்பு",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
@@ -80,25 +80,25 @@ window.gActivityStreamStrings = {
"manual_migration_cancel_button": "అడిగినందుకు ధన్యవాదాలు, వద్దు",
"manual_migration_import_button": "ఇప్పుడే దిగుమతి చేయండి",
"error_fallback_default_info": "అయ్యో, ఈ విషయం తేవడంలో ఏదో తప్పు దొర్లింది.",
"error_fallback_default_refresh_suggestion": "మళ్ళీ ప్రయత్నించడానికి పేజీని రీఫ్రెష్ చెయ్యండి.",
"section_menu_action_remove_section": "విభాగాన్ని తీసివేయి",
"section_menu_action_collapse_section": "విభాగాన్ని ముడిచివేయి",
"section_menu_action_expand_section": "విభాగాన్ని విస్తరించు",
"section_menu_action_manage_section": "విభాగ నిర్వహణ",
- "section_menu_action_manage_webext": "Manage Extension",
+ "section_menu_action_manage_webext": "పొడగింత నిర్వహణ",
"section_menu_action_add_topsite": "మేటి సైటును చేర్చు",
"section_menu_action_move_up": "పైకి జరుపు",
"section_menu_action_move_down": "కిందకి జరుపు",
"section_menu_action_privacy_notice": "అంతరంగికత గమనిక",
- "firstrun_title": "Take Firefox with You",
- "firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
- "firstrun_learn_more_link": "Learn more about Firefox Accounts",
- "firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_title": "Firefoxను మీతో తీసుకెళ్ళండి",
+ "firstrun_content": "మీ ఇష్టాంశాలను, చరిత్రను, సంకేతపదాలను, ఇతర అమరికలను మీ పరికరాలన్నింటిలో పొందండి.",
+ "firstrun_learn_more_link": "Firefox ఖాతాల గురించి మరింత తెలుసుకోండి",
+ "firstrun_form_header": "ఈ ఈమెయిలును ఇవ్వండి",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "ఈమెయిలు",
- "firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
- "firstrun_terms_of_service": "Terms of Service",
- "firstrun_privacy_notice": "Privacy Notice",
+ "firstrun_extra_legal_links": "కొనసాగడం ద్వారా మీరు {terms}, {privacy} లను అంగీకరిస్తున్నారు.",
+ "firstrun_terms_of_service": "సేవా నియమాలు",
+ "firstrun_privacy_notice": "అంతరంగికత గమనిక",
"firstrun_continue_to_login": "కొనసాగు",
"firstrun_skip_login": "ఈ అంచెను దాటవేయి"
};
--- a/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Magdagdag ng Nangungunang Site",
"section_menu_action_move_up": "Ilipat Up",
"section_menu_action_move_down": "Ilipat sa Baba",
"section_menu_action_privacy_notice": "Paunawa sa Privacy",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"default_label_loading": "Pagkarga…",
"header_stories": "Nangunguna na mga Kwento",
--- a/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Add Top Site",
"section_menu_action_move_up": "اوپر کریں",
"section_menu_action_move_down": "نیچے کریں",
"section_menu_action_privacy_notice": "رازداری کا نوٹس",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "طےشدہ بحال کریں",
"prefs_topstories_description": "اعلی میعار کا مواد جو شاید آپ بصورت دیگر کھو دیں",
--- a/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
@@ -89,17 +89,17 @@ window.gActivityStreamStrings = {
"section_menu_action_add_topsite": "Ommabop saytga qo‘shish",
"section_menu_action_move_up": "Tepaga ko‘tarish",
"section_menu_action_move_down": "Pastga tushirish",
"section_menu_action_privacy_notice": "Maxfiylik eslatmalari",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
"firstrun_skip_login": "Skip this step",
"prefs_restore_defaults_button": "Asliga tiklash",
"settings_pane_header": "Yangi ichki oyna parametrlari",
--- a/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
@@ -4,142 +4,101 @@ window.gActivityStreamStrings = {
"header_top_sites": "Trang web hàng đầu",
"header_highlights": "Nổi bật",
"header_recommended_by": "Được đề nghị bởi {provider}",
"context_menu_button_sr": "Open context menu for {title}",
"section_context_menu_button_sr": "Open the section context menu",
"type_label_visited": "Đã truy cập",
"type_label_bookmarked": "Đã được đánh dấu",
"type_label_recommended": "Xu hướng",
- "type_label_pocket": "Saved to Pocket",
- "type_label_downloaded": "Downloaded",
+ "type_label_pocket": "Đã lưu vào Pocket",
+ "type_label_downloaded": "Đã tải về",
"menu_action_bookmark": "Đánh dấu",
"menu_action_remove_bookmark": "Xóa đánh dấu",
"menu_action_open_new_window": "Mở trong Cửa Sổ Mới",
"menu_action_open_private_window": "Mở trong cửa sổ riêng tư mới",
"menu_action_dismiss": "Bỏ qua",
"menu_action_delete": "Xóa từ lịch xử",
"menu_action_pin": "Ghim",
"menu_action_unpin": "Bỏ ghim",
"confirm_history_delete_p1": "Bạn có chắc bạn muốn xóa bỏ mọi thứ của trang này từ lịch sử?",
"confirm_history_delete_notice_p2": "Hành động này không thể hoàn tác.",
"menu_action_save_to_pocket": "Lưu vào Pocket",
- "menu_action_delete_pocket": "Delete from Pocket",
- "menu_action_archive_pocket": "Archive in Pocket",
+ "menu_action_delete_pocket": "Xóa khỏi Pocket",
+ "menu_action_archive_pocket": "Lưu trữ trong Pocket",
"menu_action_show_file_mac_os": "Show in Finder",
"menu_action_show_file_windows": "Open Containing Folder",
"menu_action_show_file_linux": "Open Containing Folder",
"menu_action_show_file_default": "Show File",
"menu_action_open_file": "Open File",
"menu_action_copy_download_link": "Copy Download Link",
"menu_action_go_to_download_page": "Go to Download Page",
"menu_action_remove_download": "Remove from History",
"search_button": "Tìm kiếm",
"search_header": "Công cụ tìm kiếm {search_engine_name}",
"search_web_placeholder": "Tìm trên mạng",
- "section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
- "section_disclaimer_topstories_linktext": "Learn how it works.",
+ "section_disclaimer_topstories": "Những câu chuyện thú vị nhất trên web, được lựa chọn dựa trên những gì bạn đọc. Xuất phất từ Pocket, giờ là một phần của Mozilla.",
+ "section_disclaimer_topstories_linktext": "Tìm hiểu cách nó hoạt động.",
"section_disclaimer_topstories_buttontext": "Ok, đã hiểu",
- "prefs_home_header": "Firefox Home Content",
- "prefs_home_description": "Choose what content you want on your Firefox Home screen.",
+ "prefs_home_header": "Nội dung trang chủ của Firefox",
+ "prefs_home_description": "Chọn nội dung mà bạn muốn thêm vào trang chủ của Firefox.",
"prefs_section_rows_option": "{num} row;{num} rows",
- "prefs_search_header": "Web Search",
- "prefs_topsites_description": "The sites you visit most",
+ "prefs_search_header": "Tìm kiếm web",
+ "prefs_topsites_description": "Những trang bạn truy cập nhiều nhất",
"prefs_topstories_description2": "Great content from around the web, personalized for you",
"prefs_topstories_options_sponsored_label": "Sponsored Stories",
- "prefs_topstories_sponsored_learn_more": "Learn more",
- "prefs_highlights_description": "A selection of sites that you’ve saved or visited",
+ "prefs_topstories_sponsored_learn_more": "Tìm hiểu thêm",
+ "prefs_highlights_description": "Một lựa chọn các trang web mà bạn đã lưu hoặc truy cập",
"prefs_highlights_options_visited_label": "Visited Pages",
"prefs_highlights_options_download_label": "Most Recent Download",
"prefs_highlights_options_pocket_label": "Pages Saved to Pocket",
- "prefs_snippets_description": "Updates from Mozilla and Firefox",
+ "prefs_snippets_description": "Cập nhật từ Mozilla và Firefox",
"settings_pane_button_label": "Tùy biến trang Tab mới",
"settings_pane_topsites_header": "Các trang Web hàng đầu",
"settings_pane_highlights_header": "Nổi bật",
"settings_pane_highlights_options_bookmarks": "Trang đánh dấu",
- "settings_pane_snippets_header": "Snippets",
+ "settings_pane_snippets_header": "Đoạn",
"edit_topsites_button_text": "Chỉnh sửa",
"edit_topsites_edit_button": "Chỉnh sửa trang web này",
- "topsites_form_add_header": "New Top Site",
- "topsites_form_edit_header": "Edit Top Site",
+ "topsites_form_add_header": "Thêm trang web hàng đầu",
+ "topsites_form_edit_header": "Sửa trang web hàng đầu",
"topsites_form_title_label": "Title",
- "topsites_form_title_placeholder": "Enter a title",
+ "topsites_form_title_placeholder": "Nhập tiêu đề",
"topsites_form_url_label": "URL",
"topsites_form_image_url_label": "Custom Image URL",
"topsites_form_url_placeholder": "Nhập hoặc dán URL",
- "topsites_form_use_image_link": "Use a custom image…",
- "topsites_form_preview_button": "Preview",
+ "topsites_form_use_image_link": "Sử dụng hình ảnh tùy chỉnh…",
+ "topsites_form_preview_button": "Xem trước",
"topsites_form_add_button": "Thêm",
"topsites_form_save_button": "Lưu lại",
"topsites_form_cancel_button": "Hủy bỏ",
"topsites_form_url_validation": "Yêu cầu URL hợp lệ",
- "topsites_form_image_validation": "Image failed to load. Try a different URL.",
+ "topsites_form_image_validation": "Không tải được hình ảnh. Hãy thử một URL khác.",
"pocket_read_more": "Các chủ đề phổ biến:",
"pocket_read_even_more": "Xem nhiều câu chuyện hơn",
- "highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.",
+ "highlights_empty_state": "Bắt đầu duyệt web và chúng tôi sẽ hiển thị một số bài báo, video, và các trang khác mà bạn vừa truy cập hoặc đã đánh dấu tại đây.",
"topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
"manual_migration_explanation2": "Thử Firefox với trang đánh dấu, lịch sử và mật khẩu từ trình duyệt khác.",
"manual_migration_cancel_button": "Không, cảm ơn",
"manual_migration_import_button": "Nhập ngay bây giờ",
- "error_fallback_default_info": "Oops, something went wrong loading this content.",
- "error_fallback_default_refresh_suggestion": "Refresh page to try again.",
- "section_menu_action_remove_section": "Remove Section",
- "section_menu_action_collapse_section": "Collapse Section",
- "section_menu_action_expand_section": "Expand Section",
- "section_menu_action_manage_section": "Manage Section",
+ "error_fallback_default_info": "Rất tiếc, đã xảy ra lỗi khi tải nội dung này.",
+ "error_fallback_default_refresh_suggestion": "Thử làm mới lại trang.",
+ "section_menu_action_remove_section": "Xoá mục",
+ "section_menu_action_collapse_section": "Thu gọn mục",
+ "section_menu_action_expand_section": "Mở rộng mục",
+ "section_menu_action_manage_section": "Quản lý mục",
"section_menu_action_manage_webext": "Manage Extension",
- "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_add_topsite": "Thêm trang web hàng đầu",
+ "section_menu_action_move_up": "Di chuyển lên",
+ "section_menu_action_move_down": "Di chuyển xuống",
+ "section_menu_action_privacy_notice": "Chính sách riêng tư",
"firstrun_title": "Take Firefox with You",
"firstrun_content": "Get your bookmarks, history, passwords and other settings on all your devices.",
"firstrun_learn_more_link": "Learn more about Firefox Accounts",
"firstrun_form_header": "Enter your email",
- "firstrun_form_sub_header": "to continue to Firefox Sync.",
+ "firstrun_form_sub_header": "to continue to Firefox Sync",
"firstrun_email_input_placeholder": "Email",
"firstrun_extra_legal_links": "By proceeding, you agree to the {terms} and {privacy}.",
"firstrun_terms_of_service": "Terms of Service",
"firstrun_privacy_notice": "Privacy Notice",
"firstrun_continue_to_login": "Continue",
- "firstrun_skip_login": "Skip this step",
- "default_label_loading": "Đang tải…",
- "header_stories": "Câu chuyện hàng đầu",
- "header_visit_again": "Truy cập lại",
- "header_bookmarks": "Các bookmark gần đây",
- "header_bookmarks_placeholder": "Bạn chưa có bookmark nào.",
- "header_stories_from": "từ",
- "type_label_synced": "Đồng bộ từ thiết bị khác",
- "type_label_open": "Mở",
- "type_label_topic": "Chủ đề",
- "type_label_now": "Bây giờ",
- "menu_action_copy_address": "Chép địa chỉ",
- "menu_action_email_link": "Liên kết Email...",
- "search_for_something_with": "Tìm {search_term} với:",
- "search_settings": "Thay đổi thiết lập tìm kiếm",
- "section_info_option": "Thông tin",
- "section_info_send_feedback": "Gửi phản hồi",
- "section_info_privacy_notice": "Chính sách riêng tư",
- "welcome_title": "Chào mừng đến với tab mới",
- "welcome_body": "Firefox sẽ sử dụng không gian này để hiển thị của bạn có liên quan nhất đánh dấu, bài viết, video và các trang bạn đã truy cập gần đây, do đó, bạn có thể quay lại công việc một cách dễ dàng.",
- "welcome_label": "Đang xác định phần nổi bật của bạn",
- "time_label_less_than_minute": "<1phút",
- "time_label_minute": "{number}phút",
- "time_label_hour": "{number}giờ",
- "time_label_day": "{number}ngày",
- "settings_pane_header": "Tùy chỉnh cho tab mới",
- "settings_pane_body2": "Chọn những gì bạn thấy trên trang này.",
- "settings_pane_search_header": "Tìm kiếm",
- "settings_pane_search_body": "Tìm kiếm Web từ thẻ mới của bạn.",
- "settings_pane_topsites_body": "Truy cập vào các trang web mà bạn truy cập vào nhiều nhất.",
- "settings_pane_topsites_options_showmore": "Hiển thị hai hàng",
- "settings_pane_bookmarks_header": "Trang đánh dấu gần đây",
- "settings_pane_visit_again_header": "Truy cập lại",
- "settings_pane_done_button": "Xong",
- "edit_topsites_showmore_button": "Xem thêm",
- "edit_topsites_showless_button": "Hiển thị ngắn gọn lại",
- "edit_topsites_done_button": "Xong",
- "edit_topsites_pin_button": "Ghim trang này",
- "edit_topsites_unpin_button": "Bỏ ghim trang này",
- "edit_topsites_dismiss_button": "Bỏ qua trang này",
- "edit_topsites_add_button": "Thêm",
- "pocket_feedback_header": "Tốt nhất của web, được quản lý bởi hơn 25 triệu người."
+ "firstrun_skip_login": "Skip this step"
};
--- a/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
+++ b/browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
@@ -44,17 +44,17 @@ window.gActivityStreamStrings = {
"prefs_search_header": "網頁搜尋",
"prefs_topsites_description": "最常造訪的網站",
"prefs_topstories_description2": "網路上的各種超棒內容,為您量身打造",
"prefs_topstories_options_sponsored_label": "贊助內容",
"prefs_topstories_sponsored_learn_more": "了解更多",
"prefs_highlights_description": "您儲存或造訪過的網站精選",
"prefs_highlights_options_visited_label": "造訪過的頁面",
"prefs_highlights_options_download_label": "最新下載",
- "prefs_highlights_options_pocket_label": "已將頁面儲存至 Pocket",
+ "prefs_highlights_options_pocket_label": "儲存至 Pocket 的頁面",
"prefs_snippets_description": "來自 Mozilla 及 Firefox 的大小事",
"settings_pane_button_label": "自訂您的新分頁頁面",
"settings_pane_topsites_header": "熱門網站",
"settings_pane_highlights_header": "精選網站",
"settings_pane_highlights_options_bookmarks": "書籤",
"settings_pane_snippets_header": "隻字片語",
"edit_topsites_button_text": "編輯",
"edit_topsites_edit_button": "編輯此網站",
--- a/browser/extensions/activity-stream/test/functional/mochitest/browser_asrouter_targeting.js
+++ b/browser/extensions/activity-stream/test/functional/mochitest/browser_asrouter_targeting.js
@@ -1,68 +1,68 @@
ChromeUtils.defineModuleGetter(this, "ASRouterTargeting",
"resource://activity-stream/lib/ASRouterTargeting.jsm");
ChromeUtils.defineModuleGetter(this, "ProfileAge",
"resource://gre/modules/ProfileAge.jsm");
// ASRouterTargeting.isMatch
add_task(async function should_do_correct_targeting() {
- is(await ASRouterTargeting.isMatch("FOO", {FOO: true}), true, "should return true for a matching value");
- is(await ASRouterTargeting.isMatch("!FOO", {FOO: true}), false, "should return false for a non-matching value");
+ is(await ASRouterTargeting.isMatch("FOO", {}, {FOO: true}), true, "should return true for a matching value");
+ is(await ASRouterTargeting.isMatch("!FOO", {}, {FOO: true}), false, "should return false for a non-matching value");
});
add_task(async function should_handle_async_getters() {
const context = {get FOO() { return Promise.resolve(true); }};
- is(await ASRouterTargeting.isMatch("FOO", context), true, "should return true for a matching async value");
+ is(await ASRouterTargeting.isMatch("FOO", {}, context), true, "should return true for a matching async value");
});
// ASRouterTargeting.findMatchingMessage
add_task(async function find_matching_message() {
const messages = [
{id: "foo", targeting: "FOO"},
{id: "bar", targeting: "!FOO"}
];
const context = {FOO: true};
- const match = await ASRouterTargeting.findMatchingMessage(messages, context);
+ const match = await ASRouterTargeting.findMatchingMessage(messages, {}, context);
is(match, messages[0], "should match and return the correct message");
});
add_task(async function return_nothing_for_no_matching_message() {
const messages = [{id: "bar", targeting: "!FOO"}];
const context = {FOO: true};
- const match = await ASRouterTargeting.findMatchingMessage(messages, context);
+ const match = await ASRouterTargeting.findMatchingMessage(messages, {}, context);
is(match, undefined, "should return nothing since no matching message exists");
});
// ASRouterTargeting.Environment
add_task(async function checkProfileAgeCreated() {
let profileAccessor = new ProfileAge();
is(await ASRouterTargeting.Environment.profileAgeCreated, await profileAccessor.created,
"should return correct profile age creation date");
const message = {id: "foo", targeting: `profileAgeCreated > ${await profileAccessor.created - 100}`};
- is(await ASRouterTargeting.findMatchingMessage([message]), message,
+ is(await ASRouterTargeting.findMatchingMessage([message], {}), message,
"should select correct item by profile age created");
});
add_task(async function checkProfileAgeReset() {
let profileAccessor = new ProfileAge();
is(await ASRouterTargeting.Environment.profileAgeReset, await profileAccessor.reset,
"should return correct profile age reset");
const message = {id: "foo", targeting: `profileAgeReset == ${await profileAccessor.reset}`};
- is(await ASRouterTargeting.findMatchingMessage([message]), message,
+ is(await ASRouterTargeting.findMatchingMessage([message], {}), message,
"should select correct item by profile age reset");
});
add_task(async function checkhasFxAccount() {
await pushPrefs(["services.sync.username", "someone@foo.com"]);
is(await ASRouterTargeting.Environment.hasFxAccount, true,
"should return true if a fx account is set");
const message = {id: "foo", targeting: "hasFxAccount"};
- is(await ASRouterTargeting.findMatchingMessage([message]), message,
+ is(await ASRouterTargeting.findMatchingMessage([message], {}), message,
"should select correct item by hasFxAccount");
});
--- a/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
+++ b/browser/extensions/activity-stream/test/unit/asrouter/ASRouter.test.js
@@ -194,17 +194,17 @@ describe("ASRouter", () => {
const [currentMessage] = Router.state.messages.filter(message => message.id === Router.state.lastMessageId);
assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME);
assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].type, "SET_BUNDLED_MESSAGES");
assert.equal(msg.target.sendAsyncMessage.firstCall.args[1].data.bundle[0].content, currentMessage.content);
});
it("should return a null bundle if we do not have enough messages to fill the bundle", async () => {
// force the only message to be a bundled message that needs 2 messages in the bundle
await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
- const bundle = Router._getBundledMessages(Router.state.messages[0]);
+ const bundle = await Router._getBundledMessages(Router.state.messages[0]);
assert.equal(bundle, null);
});
it("should send a CLEAR_ALL message if no bundle available", async () => {
// force the only message to be a bundled message that needs 2 messages in the bundle
await Router.setState({messages: [{id: "foo1", template: "simple_template", bundled: 2, content: {title: "Foo1", body: "Foo123-1"}}]});
const msg = fakeAsyncMessage({type: "CONNECT_UI_REQUEST"});
await Router.onMessage(msg);
assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
@@ -302,63 +302,77 @@ describe("ASRouter", () => {
const msg = fakeAsyncMessage({type: "GET_NEXT_MESSAGE"});
await Router.onMessage(msg);
assert.calledOnce(Router.sendNextMessage);
assert.calledWithExactly(Router.sendNextMessage, sinon.match.instanceOf(FakeRemotePageManager));
});
it("should call _getBundledMessages if we request a message that needs to be bundled", async () => {
- sandbox.stub(Router, "_getBundledMessages");
+ sandbox.stub(Router, "_getBundledMessages").resolves();
// forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
const [, testMessage] = Router.state.messages;
const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
await Router.onMessage(msg);
assert.calledOnce(Router._getBundledMessages);
});
- it("should properly pick another message of the same template if it is bundled", async () => {
- Router.sendMessage = sinon.spy();
+ it("should properly pick another message of the same template if it is bundled; force = true", async () => {
// forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
const [, testMessage1, testMessage2] = Router.state.messages;
const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
await Router.onMessage(msg);
// Expected object should have some properties of the original message it picked (testMessage1)
// plus the bundled content of the others that it picked of the same template (testMessage2)
const expectedObj = {
template: testMessage1.template,
provider: testMessage1.provider,
bundle: [{content: testMessage1.content, id: testMessage1.id}, {content: testMessage2.content, id: testMessage2.id}]
};
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
+ });
+ it("should properly pick another message of the same template if it is bundled; force = false", async () => {
+ // forcefully pick a message which needs to be bundled (the second message in FAKE_LOCAL_MESSAGES)
+ const [, testMessage1, testMessage2] = Router.state.messages;
+ const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage1.id}});
+ await Router.setMessageById(testMessage1.id, msg.target, false);
+
+ // Expected object should have some properties of the original message it picked (testMessage1)
+ // plus the bundled content of the others that it picked of the same template (testMessage2)
+ const expectedObj = {
+ template: testMessage1.template,
+ provider: testMessage1.provider,
+ bundle: [{content: testMessage1.content, id: testMessage1.id}, {content: testMessage2.content, id: testMessage2.id}]
+ };
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_BUNDLED_MESSAGES", data: expectedObj});
});
it("should get the bundle and send the message if the message has a bundle", async () => {
sandbox.stub(Router, "sendNextMessage").resolves();
const msg = fakeAsyncMessage({type: "GET_NEXT_MESSAGE"});
msg.bundled = 2; // force this message to want to be bundled
await Router.onMessage(msg);
assert.calledOnce(Router.sendNextMessage);
});
});
describe("#onMessage: OVERRIDE_MESSAGE", () => {
it("should broadcast a SET_MESSAGE message to all clients with a particular id", async () => {
const [testMessage] = Router.state.messages;
const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: testMessage.id}});
await Router.onMessage(msg);
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "SET_MESSAGE", data: testMessage});
});
it("should broadcast CLEAR_ALL if provided id did not resolve to a message", async () => {
const msg = fakeAsyncMessage({type: "OVERRIDE_MESSAGE", data: {id: -1}});
await Router.onMessage(msg);
- assert.calledWith(channel.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
+ assert.calledWith(msg.target.sendAsyncMessage, PARENT_TO_CHILD_MESSAGE_NAME, {type: "CLEAR_ALL"});
});
});
describe("#onMessage: Onboarding actions", () => {
it("should call OpenBrowserWindow with a private window on OPEN_PRIVATE_BROWSER_WINDOW", async () => {
let [testMessage] = Router.state.messages;
const msg = fakeAsyncMessage({type: "OPEN_PRIVATE_BROWSER_WINDOW", data: testMessage});
await Router.onMessage(msg);
--- a/browser/extensions/activity-stream/test/unit/asrouter/asrouter-content.test.jsx
+++ b/browser/extensions/activity-stream/test/unit/asrouter/asrouter-content.test.jsx
@@ -1,9 +1,9 @@
-import {ASRouterUISurface, ASRouterUtils} from "content-src/asrouter/asrouter-content";
+import {ASRouterUISurface, ASRouterUtils, convertLinks} from "content-src/asrouter/asrouter-content";
import {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from "content-src/lib/init-store";
import {FAKE_LOCAL_MESSAGES} from "./constants";
import {GlobalOverrider} from "test/unit/utils";
import {mount} from "enzyme";
import React from "react";
let [FAKE_MESSAGE] = FAKE_LOCAL_MESSAGES;
FAKE_MESSAGE = Object.assign({}, FAKE_MESSAGE, {provider: "fakeprovider"});
@@ -103,16 +103,33 @@ describe("ASRouterUISurface", () => {
wrapper.setState({message: FAKE_MESSAGE});
wrapper.find(".blockButton").simulate("click");
assert.propertyVal(ASRouterUtils.sendTelemetry.firstCall.args[0], "event", "BLOCK");
assert.propertyVal(ASRouterUtils.sendTelemetry.firstCall.args[0], "source", "NEWTAB_FOOTER_BAR");
});
});
+ describe("convertLinks", () => {
+ it("should return an object with anchor elements", () => {
+ const cta = {
+ url: "https://foo.com",
+ metric: "foo"
+ };
+ const stub = sandbox.stub();
+ const result = convertLinks({cta}, stub);
+
+ assert.property(result, "cta");
+ assert.propertyVal(result.cta, "type", "a");
+ assert.propertyVal(result.cta.props, "href", cta.url);
+ assert.propertyVal(result.cta.props, "data-metric", cta.metric);
+ assert.propertyVal(result.cta.props, "onClick", stub);
+ });
+ });
+
describe("impressions", () => {
function simulateVisibilityChange(value) {
fakeDocument.visibilityState = value;
}
it("should not send an impression if no message exists", () => {
simulateVisibilityChange("visible");
--- a/browser/extensions/activity-stream/test/unit/content-src/lib/snippets.test.js
+++ b/browser/extensions/activity-stream/test/unit/content-src/lib/snippets.test.js
@@ -468,16 +468,17 @@ describe("addSnippetsSubscriber", () =>
afterEach(async () => {
sandbox.restore();
if (global.gSnippetsMap) {
await global.gSnippetsMap.clear();
}
delete global.gSnippetsMap;
});
it("should initialize feeds.snippets pref is true and SnippetsProvider if .initialize is true", () => {
+ store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterOnboardingCohort", value: 0}});
store.dispatch({type: at.SNIPPETS_DATA, data: {}});
assert.calledOnce(snippets.init);
});
it("should not initialize if feeds.snippets pref is true and .initialize is false", () => {
store.dispatch({type: "FOO"});
assert.calledOnce(store.subscribe);
assert.notCalled(snippets.init);
@@ -516,18 +517,19 @@ describe("addSnippetsSubscriber", () =>
describe("asrouter", () => {
it("should initialize asrouter once if asrouterExperimentEnabled and snippets pref are both true", () => {
store.dispatch({type: "FOO"});
store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterExperimentEnabled", value: true}});
assert.calledOnce(asrouterContent.init);
assert.isTrue(asrouterContent.initialized);
});
- it("should uninitialize asrouter if asrouterExperimentEnabled pref is turned off", () => {
+ it("should uninitialize asrouter if asrouterExperimentEnabled pref is turned off and there are no onboarding experiments running", () => {
store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterExperimentEnabled", value: true}});
+ store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterOnboardingCohort", value: 0}});
assert.isTrue(asrouterContent.initialized);
store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterExperimentEnabled", value: false}});
assert.calledOnce(asrouterContent.uninit);
assert.isFalse(asrouterContent.initialized);
});
it("should uninitialize asrouter if snippets pref is turned off", () => {
store.dispatch({type: at.PREF_CHANGED, data: {name: "asrouterExperimentEnabled", value: true}});
--- a/browser/locales/en-US/chrome/browser/activity-stream/newtab.properties
+++ b/browser/locales/en-US/chrome/browser/activity-stream/newtab.properties
@@ -182,17 +182,17 @@ section_menu_action_privacy_notice=Priva
firstrun_title=Take Firefox with You
firstrun_content=Get your bookmarks, history, passwords and other settings on all your devices.
firstrun_learn_more_link=Learn more about Firefox Accounts
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
firstrun_form_header=Enter your email
-firstrun_form_sub_header=to continue to Firefox Sync.
+firstrun_form_sub_header=to continue to Firefox Sync
firstrun_email_input_placeholder=Email
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_extra_legal_links=By proceeding, you agree to the {terms} and {privacy}.
firstrun_terms_of_service=Terms of Service
firstrun_privacy_notice=Privacy Notice