diff --git a/browser/components/newtab/content-src/asrouter/asrouter-content.jsx b/browser/components/newtab/content-src/asrouter/asrouter-content.jsx index aa6bdbec6251..3db3b643b74a 100644 --- a/browser/components/newtab/content-src/asrouter/asrouter-content.jsx +++ b/browser/components/newtab/content-src/asrouter/asrouter-content.jsx @@ -3,17 +3,18 @@ import {actionCreators as ac} from "common/Actions.jsm"; import {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from "content-src/lib/init-store"; import {ImpressionsWrapper} from "./components/ImpressionsWrapper/ImpressionsWrapper"; import {MessageContext} from "fluent"; -import {NewsletterSnippet} from "./templates/NewsletterSnippet/NewsletterSnippet"; import {OnboardingMessage} from "./templates/OnboardingMessage/OnboardingMessage"; import React from "react"; import ReactDOM from "react-dom"; import {safeURI} from "./template-utils"; import {SimpleSnippet} from "./templates/SimpleSnippet/SimpleSnippet"; +import {SubmitFormSnippet} from "./templates/SubmitFormSnippet/SubmitFormSnippet"; // Key names matching schema name of templates const SnippetComponents = { simple_snippet: SimpleSnippet, - newsletter_snippet: NewsletterSnippet, + newsletter_snippet: props => , + fxa_signup_snippet: props => , }; const INCOMING_MESSAGE_NAME = "ASRouter:parent-to-child"; @@ -266,12 +267,12 @@ export class ASRouterUISurface extends React.PureComponent { // This helps with testing document={this.props.document}> } diff --git a/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md b/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md index 6ec0245f9897..3560be41a133 100644 --- a/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md +++ b/browser/components/newtab/content-src/asrouter/docs/targeting-attributes.md @@ -26,6 +26,7 @@ Please note that some targeting attributes require stricter controls on the tele * [sync](#sync) * [topFrecentSites](#topfrecentsites) * [totalBookmarksCount](#totalbookmarkscount) +* [xpinstallEnabled](#xpinstallEnabled) ## Detailed usage @@ -374,4 +375,12 @@ Total number of bookmarks. declare const totalBookmarksCount: number; ``` +### `xpinstallEnabled` +Pref used by system administrators to disallow add-ons from installed altogether. + +#### Definition + +```ts +declare const xpinstallEnabled: boolean; +``` diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx similarity index 71% rename from browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx rename to browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx index 7c1dbafe0d87..29e0965c5b10 100644 --- a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx +++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx @@ -2,7 +2,7 @@ import React from "react"; import {SimpleSnippet} from "../SimpleSnippet/SimpleSnippet"; import {SnippetBase} from "../../components/SnippetBase/SnippetBase"; -export class NewsletterSnippet extends React.PureComponent { +export class SubmitFormSnippet extends React.PureComponent { constructor(props) { super(props); this.expandSnippet = this.expandSnippet.bind(this); @@ -11,21 +11,33 @@ export class NewsletterSnippet extends React.PureComponent { expanded: false, signupSubmitted: false, signupSuccess: false, + disableForm: false, }; } async handleSubmit(event) { let json; + + if (this.state.disableForm) { + return; + } + + event.preventDefault(); + this.setState({disableForm: true}); + this.props.sendUserActionTelemetry({event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT"}); + + if (this.props.form_method.toUpperCase() === "GET") { + this.refs.form.submit(); + return; + } + const fetchConfig = { - body: new FormData(this.refs.newsletterForm), + body: new FormData(this.refs.form), method: "POST", }; - event.preventDefault(); - this.props.sendUserActionTelemetry({event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT"}); - try { - const fetchRequest = new Request(this.refs.newsletterForm.action, fetchConfig); + const fetchRequest = new Request(this.refs.form.action, fetchConfig); const response = await fetch(fetchRequest); json = await response.json(); } catch (err) { @@ -39,6 +51,8 @@ export class NewsletterSnippet extends React.PureComponent { this.setState({signupSuccess: false, signupSubmitted: true}); this.props.sendUserActionTelemetry({event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT"}); } + + this.setState({disableForm: false}); } expandSnippet() { @@ -60,7 +74,7 @@ export class NewsletterSnippet extends React.PureComponent { } renderFormPrivacyNotice() { - return ( + return this.props.privacyNoticeRichText && ( {this.props.privacyNoticeRichText} @@ -75,17 +89,17 @@ export class NewsletterSnippet extends React.PureComponent { return (); + content={{button_label: this.props.content.scene1_button_label, text: message}} />); } renderSignupView() { const {content} = this.props; - return ( + return ( {content.scene2_text} - + {this.renderHiddenFormInputs()} @@ -96,13 +110,22 @@ export class NewsletterSnippet extends React.PureComponent { ); } + getFirstSceneContent() { + return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => { + acc[key.substr(7)] = this.props.content[key]; + return acc; + }, {}); + } + render() { + const content = {...this.props.content, ...this.getFirstSceneContent()}; + if (this.state.signupSubmitted) { return this.renderSignupSubmitted(); } if (this.state.expanded) { return this.renderSignupView(); } - return ; + return ; } } diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json similarity index 81% rename from browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json rename to browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json index b9d74cff8154..971c43c374c9 100644 --- a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json +++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json @@ -1,5 +1,5 @@ { - "title": "NewsletterSchema", + "title": "SubmitFormSnippet", "description": "A template with two states: a SimpleSnippet and another that contains a form", "version": "1.0.0", "type": "object", @@ -19,23 +19,29 @@ } }, "properties": { - "title": { - "allOf": [ - {"$ref": "#/definitions/plainText"}, - {"description": "Snippet title displayed before snippet text"} + "scene1_title": { + "allof": [ + {"$ref": "#/definitions/plaintext"}, + {"description": "snippet title displayed before snippet text"} ] }, - "text": { + "scene1_text": { "allOf": [ {"$ref": "#/definitions/richText"}, {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} ] }, - "icon": { + "scene2_text": { + "allOf": [ + {"$ref": "#/definitions/richText"}, + {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} + ] + }, + "scene1_icon": { "type": "string", "description": "Snippet icon. 64x64px. SVG or PNG preferred." }, - "title_icon": { + "scene1_title_icon": { "type": "string", "description": "Small icon that shows up before the title / text. 16x16px. SVG or PNG preferred. Grayscale." }, @@ -51,10 +57,6 @@ "type": "string", "description": "Message shown if registration failed." }, - "scene2_text": { - "type": "string", - "description": "Main body of the snippet in the second scene." - }, "scene2_email_placeholder_text": { "type": "string", "description": "Value to show while input is empty." @@ -71,7 +73,7 @@ "type": "object", "description": "Each entry represents a hidden input, key is used as value for the name property." }, - "button_label": { + "scene1_button_label": { "allOf": [ {"$ref": "#/definitions/plainText"}, {"description": "Text for a button next to main snippet text that links to button_url. Requires button_url."} @@ -105,9 +107,9 @@ } }, "additionalProperties": false, - "required": ["text", "form_action", "scene2_text", "hidden_inputs"], + "required": ["scene1_text", "form_action", "scene2_text", "hidden_inputs", "error_text", "success_text", "scene1_button_label"], "dependencies": { - "button_color": ["button_label"], - "button_background_color": ["button_label"] + "scene1_button_color": ["scene1_button_label"], + "scene1_button_background_color": ["scene1_button_label"] } } diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss similarity index 98% rename from browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss rename to browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss index 8b835fef9ba7..05d7cd62282c 100644 --- a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss +++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss @@ -1,4 +1,4 @@ -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; diff --git a/browser/components/newtab/content-src/components/Sections/_Sections.scss b/browser/components/newtab/content-src/components/Sections/_Sections.scss index 5d4eaf3ba313..81d0f7aa5127 100644 --- a/browser/components/newtab/content-src/components/Sections/_Sections.scss +++ b/browser/components/newtab/content-src/components/Sections/_Sections.scss @@ -22,7 +22,9 @@ } @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) { - :nth-child(3n) { + // 3n for normal cards, 4n for compact cards + :nth-child(3n), + :nth-child(4n) { @include context-menu-open-left; } } diff --git a/browser/components/newtab/content-src/styles/_activity-stream.scss b/browser/components/newtab/content-src/styles/_activity-stream.scss index 7ae47fc5b774..6fcd8be168b8 100644 --- a/browser/components/newtab/content-src/styles/_activity-stream.scss +++ b/browser/components/newtab/content-src/styles/_activity-stream.scss @@ -150,5 +150,5 @@ input { @import '../asrouter/components/SnippetBase/SnippetBase'; @import '../asrouter/components/ModalOverlay/ModalOverlay'; @import '../asrouter/templates/SimpleSnippet/SimpleSnippet'; -@import '../asrouter/templates/NewsletterSnippet/NewsletterSnippet'; +@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet'; @import '../asrouter/templates/OnboardingMessage/OnboardingMessage'; diff --git a/browser/components/newtab/contributing.md b/browser/components/newtab/contributing.md index 574573cfdd11..c696622f26b2 100644 --- a/browser/components/newtab/contributing.md +++ b/browser/components/newtab/contributing.md @@ -111,7 +111,7 @@ You can also write a detailed description of the commit: Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes" It should include the motivation for the change and contrast this with previous behavior. -###Footer +### Footer The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**. diff --git a/browser/components/newtab/css/activity-stream-linux.css b/browser/components/newtab/css/activity-stream-linux.css index 238b998d9909..607de0599afa 100644 --- a/browser/components/newtab/css/activity-stream-linux.css +++ b/browser/components/newtab/css/activity-stream-linux.css @@ -874,7 +874,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2088,47 +2089,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-linux.css.map b/browser/components/newtab/css/activity-stream-linux.css.map index 1a2edd7570eb..397391c1769e 100644 --- a/browser/components/newtab/css/activity-stream-linux.css.map +++ b/browser/components/newtab/css/activity-stream-linux.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/css/activity-stream-mac.css b/browser/components/newtab/css/activity-stream-mac.css index d6c4656b238f..a2c0efb134bf 100644 --- a/browser/components/newtab/css/activity-stream-mac.css +++ b/browser/components/newtab/css/activity-stream-mac.css @@ -877,7 +877,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2091,47 +2092,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-mac.css.map b/browser/components/newtab/css/activity-stream-mac.css.map index c0d117828794..6cbb2f24909e 100644 --- a/browser/components/newtab/css/activity-stream-mac.css.map +++ b/browser/components/newtab/css/activity-stream-mac.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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[lwt-newtab-brighttext] {\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/css/activity-stream-windows.css b/browser/components/newtab/css/activity-stream-windows.css index f436f069d8d7..5eb1902d15dc 100644 --- a/browser/components/newtab/css/activity-stream-windows.css +++ b/browser/components/newtab/css/activity-stream-windows.css @@ -874,7 +874,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2088,47 +2089,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-windows.css.map b/browser/components/newtab/css/activity-stream-windows.css.map index e1c3f86c8292..b3e4e4919398 100644 --- a/browser/components/newtab/css/activity-stream-windows.css.map +++ b/browser/components/newtab/css/activity-stream-windows.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js index 63c998f32af7..b7f729a3593b 100644 --- a/browser/components/newtab/data/content/activity-stream.bundle.js +++ b/browser/components/newtab/data/content/activity-stream.bundle.js @@ -101,7 +101,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(5); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(46); @@ -930,14 +930,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var content_src_lib_init_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7); /* harmony import */ var _components_ImpressionsWrapper_ImpressionsWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); /* harmony import */ var fluent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44); -/* harmony import */ var _templates_NewsletterSnippet_NewsletterSnippet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); -/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(47); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11); -/* harmony import */ var _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48); +/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11); +/* harmony import */ var _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(47); +/* harmony import */ var _templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -954,8 +954,9 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument // Key names matching schema name of templates const SnippetComponents = { - simple_snippet: _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_10__["SimpleSnippet"], - newsletter_snippet: _templates_NewsletterSnippet_NewsletterSnippet__WEBPACK_IMPORTED_MODULE_5__["NewsletterSnippet"] + simple_snippet: _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__["SimpleSnippet"], + newsletter_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "POST" })), + fxa_signup_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "GET" })) }; const INCOMING_MESSAGE_NAME = "ASRouter:parent-to-child"; @@ -1031,12 +1032,12 @@ function generateMessages(content) { // Elements allowed in snippet content const ALLOWED_TAGS = { - b: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("b", null), - i: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("i", null), - u: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("u", null), - strong: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("strong", null), - em: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("em", null), - br: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("br", null) + b: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("b", null), + i: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("i", null), + u: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("u", null), + strong: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("strong", null), + em: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("em", null), + br: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("br", null) }; /** @@ -1048,9 +1049,9 @@ function convertLinks(links, sendClick) { return Object.keys(links).reduce((acc, linkTag) => { const { action } = links[linkTag]; // Setting the value to false will not include the attribute in the anchor - const url = action ? false : Object(_template_utils__WEBPACK_IMPORTED_MODULE_9__["safeURI"])(links[linkTag].url); + const url = action ? false : Object(_template_utils__WEBPACK_IMPORTED_MODULE_8__["safeURI"])(links[linkTag].url); - acc[linkTag] = react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("a", { href: url, + acc[linkTag] = react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("a", { href: url, "data-metric": links[linkTag].metric, "data-action": action, "data-args": links[linkTag].args, @@ -1066,10 +1067,10 @@ function convertLinks(links, sendClick) { * Message wrapper used to sanitize markup and render HTML. */ function RichText(props) { - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( fluent_react__WEBPACK_IMPORTED_MODULE_0__["Localized"], _extends({ id: props.localization_id }, ALLOWED_TAGS, convertLinks(props.links, props.sendClick)), - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "span", null, props.text @@ -1077,7 +1078,7 @@ function RichText(props) { ); } -class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.PureComponent { +class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_6___default.a.PureComponent { constructor(props) { super(props); this.onMessageFromParent = this.onMessageFromParent.bind(this); @@ -1196,13 +1197,13 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur const { content } = this.state.message; if (this.state.message.template === "newsletter_snippet") { - privacyNoticeRichText = react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(RichText, { text: content.scene2_privacy_html, + privacyNoticeRichText = react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(RichText, { text: content.scene2_privacy_html, localization_id: "privacy_notice", links: content.links, sendClick: this.sendClick }); } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( _components_ImpressionsWrapper_ImpressionsWrapper__WEBPACK_IMPORTED_MODULE_3__["ImpressionsWrapper"], { id: "NEWTAB_FOOTER_BAR", @@ -1211,14 +1212,14 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur shouldSendImpressionOnUpdate: shouldSendImpressionOnUpdate // This helps with testing , document: this.props.document }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( fluent_react__WEBPACK_IMPORTED_MODULE_0__["LocalizationProvider"], { messages: generateMessages({ - privacy_notice: content.privacy_notice_text, - snippet_text: content.text + privacy_notice: content.scene2_privacy_html, + snippet_text: content.text || content.scene1_text }) }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(SnippetComponent, _extends({}, this.state.message, { - richText: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(RichText, { text: this.state.message.content.text, + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(SnippetComponent, _extends({}, this.state.message, { + richText: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(RichText, { text: content.text || content.scene1_text, localization_id: "snippet_text", links: this.state.message.content.links, sendClick: this.sendClick }), @@ -1233,7 +1234,7 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur } renderOnboarding() { - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_6__["OnboardingMessage"], _extends({}, this.state.bundle, { + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__["OnboardingMessage"], _extends({}, this.state.bundle, { UISurface: "NEWTAB_OVERLAY", onAction: ASRouterUtils.executeAction, onDoneButton: this.clearBundle(this.state.bundle.bundle), @@ -1245,11 +1246,11 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur return null; } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "div", { className: "snippets-preview-banner" }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("span", { className: "icon icon-small-spacer icon-info" }), - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("span", { className: "icon icon-small-spacer icon-info" }), + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "span", null, "Preview Purposes Only" @@ -1262,8 +1263,8 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur if (!message.id && !bundle.template) { return null; } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( - react__WEBPACK_IMPORTED_MODULE_7___default.a.Fragment, + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.Fragment, null, this.renderPreviewBanner(), bundle.template === "onboarding" ? this.renderOnboarding() : this.renderSnippets() @@ -1288,11 +1289,11 @@ class ASRouterContent { global.document.body.appendChild(this.containerElement); } - react_dom__WEBPACK_IMPORTED_MODULE_8___default.a.render(react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(ASRouterUISurface, null), this.containerElement); + react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.render(react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(ASRouterUISurface, null), this.containerElement); } _unmount() { - react_dom__WEBPACK_IMPORTED_MODULE_8___default.a.unmountComponentAtNode(this.containerElement); + react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.unmountComponentAtNode(this.containerElement); } init() { @@ -1555,155 +1556,9 @@ ImpressionsWrapper.defaultProps = { /***/ }), /* 10 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewsletterSnippet", function() { return NewsletterSnippet; }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48); -/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } - - - - - -class NewsletterSnippet extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent { - constructor(props) { - super(props); - this.expandSnippet = this.expandSnippet.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - this.state = { - expanded: false, - signupSubmitted: false, - signupSuccess: false - }; - } - - handleSubmit(event) { - var _this = this; - - return _asyncToGenerator(function* () { - let json; - const fetchConfig = { - body: new FormData(_this.refs.newsletterForm), - method: "POST" - }; - - event.preventDefault(); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - - try { - const fetchRequest = new Request(_this.refs.newsletterForm.action, fetchConfig); - const response = yield fetch(fetchRequest); - json = yield response.json(); - } catch (err) { - console.log(err); // eslint-disable-line no-console - } - if (json && json.status === "ok") { - _this.setState({ signupSuccess: true, signupSubmitted: true }); - _this.props.onBlock({ preventDismiss: true }); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - } else { - _this.setState({ signupSuccess: false, signupSubmitted: true }); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - } - })(); - } - - expandSnippet() { - this.setState({ - expanded: true, - signupSuccess: false, - signupSubmitted: false - }); - } - - renderHiddenFormInputs() { - const { hidden_inputs } = this.props.content; - - if (!hidden_inputs) { - return null; - } - - return Object.keys(hidden_inputs).map((key, idx) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] })); - } - - renderFormPrivacyNotice() { - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "label", - { className: "privacy-notice", htmlFor: "id_privacy" }, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "p", - null, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "span", - null, - this.props.privacyNoticeRichText - ) - ) - ); - } - - renderSignupSubmitted() { - const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text; - const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null; - - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], { className: this.props.className, - onButtonClick: onButtonClick, - provider: this.props.provider, - content: { button_label: this.props.content.button_label, text: message } }); - } - - renderSignupView() { - const { content } = this.props; - - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__["SnippetBase"], - _extends({}, this.props, { className: "NewsletterSnippet", footerDismiss: true }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "div", - { className: "message" }, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "p", - null, - content.scene2_text - ) - ), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "form", - { action: content.form_action, method: "POST", onSubmit: this.handleSubmit, ref: "newsletterForm" }, - this.renderHiddenFormInputs(), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "div", - null, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "email", name: "email", required: "required", placeholder: content.scene2_email_placeholder_text, autoFocus: true }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "button", - { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" }, - content.scene2_button_label - ) - ), - this.renderFormPrivacyNotice() - ) - ); - } - - render() { - if (this.state.signupSubmitted) { - return this.renderSignupSubmitted(); - } - if (this.state.expanded) { - return this.renderSignupView(); - } - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], _extends({}, this.props, { onButtonClick: this.expandSnippet })); - } -} +module.exports = ReactDOM; /***/ }), /* 11 */ @@ -1789,9 +1644,178 @@ class SnippetBase extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureCompo /***/ }), /* 13 */ -/***/ (function(module, exports) { +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = ReactDOM; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubmitFormSnippet", function() { return SubmitFormSnippet; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47); +/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + + + + + +class SubmitFormSnippet extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent { + constructor(props) { + super(props); + this.expandSnippet = this.expandSnippet.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + this.state = { + expanded: false, + signupSubmitted: false, + signupSuccess: false, + disableForm: false + }; + } + + handleSubmit(event) { + var _this = this; + + return _asyncToGenerator(function* () { + let json; + + if (_this.state.disableForm) { + return; + } + + event.preventDefault(); + _this.setState({ disableForm: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + + if (_this.props.form_method.toUpperCase() === "GET") { + _this.refs.form.submit(); + return; + } + + const fetchConfig = { + body: new FormData(_this.refs.form), + method: "POST" + }; + + try { + const fetchRequest = new Request(_this.refs.form.action, fetchConfig); + const response = yield fetch(fetchRequest); + json = yield response.json(); + } catch (err) { + console.log(err); // eslint-disable-line no-console + } + if (json && json.status === "ok") { + _this.setState({ signupSuccess: true, signupSubmitted: true }); + _this.props.onBlock({ preventDismiss: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + } else { + _this.setState({ signupSuccess: false, signupSubmitted: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + } + + _this.setState({ disableForm: false }); + })(); + } + + expandSnippet() { + this.setState({ + expanded: true, + signupSuccess: false, + signupSubmitted: false + }); + } + + renderHiddenFormInputs() { + const { hidden_inputs } = this.props.content; + + if (!hidden_inputs) { + return null; + } + + return Object.keys(hidden_inputs).map((key, idx) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] })); + } + + renderFormPrivacyNotice() { + return this.props.privacyNoticeRichText && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "label", + { className: "privacy-notice", htmlFor: "id_privacy" }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "p", + null, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "span", + null, + this.props.privacyNoticeRichText + ) + ) + ); + } + + renderSignupSubmitted() { + const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text; + const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], { className: this.props.className, + onButtonClick: onButtonClick, + provider: this.props.provider, + content: { button_label: this.props.content.scene1_button_label, text: message } }); + } + + renderSignupView() { + const { content } = this.props; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__["SnippetBase"], + _extends({}, this.props, { className: "SubmitFormSnippet", footerDismiss: true }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "div", + { className: "message" }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "p", + null, + content.scene2_text + ) + ), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "form", + { action: content.form_action, method: this.props.form_method, onSubmit: this.handleSubmit, ref: "form" }, + this.renderHiddenFormInputs(), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "div", + null, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "email", name: "email", required: "required", placeholder: content.scene2_email_placeholder_text, autoFocus: true }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "button", + { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" }, + content.scene2_button_label + ) + ), + this.renderFormPrivacyNotice() + ) + ); + } + + getFirstSceneContent() { + return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => { + acc[key.substr(7)] = this.props.content[key]; + return acc; + }, {}); + } + + render() { + const content = Object.assign({}, this.props.content, this.getFirstSceneContent()); + + if (this.state.signupSubmitted) { + return this.renderSignupSubmitted(); + } + if (this.state.expanded) { + return this.renderSignupView(); + } + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], _extends({}, this.props, { content: content, onButtonClick: this.expandSnippet })); + } +} /***/ }), /* 14 */ @@ -8789,6 +8813,138 @@ var reducers = { TopSites, App, ASRouter, Snippets, Prefs, Dialog, Sections, Poc var external_React_ = __webpack_require__(5); var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); +// CONCATENATED MODULE: ./content-src/asrouter/components/Button/Button.jsx + + +const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"]; + +const Button = props => { + const style = {}; + + // Add allowed style tags from props, e.g. props.color becomes style={color: props.color} + for (const tag of ALLOWED_STYLE_TAGS) { + if (typeof props[tag] !== "undefined") { + style[tag] = props[tag]; + } + } + // remove border if bg is set to something custom + if (style.backgroundColor) { + style.border = "0"; + } + + return external_React_default.a.createElement( + "button", + { onClick: props.onClick, + className: props.className || "ASRouterButton", + style: style }, + props.children + ); +}; +// EXTERNAL MODULE: ./content-src/asrouter/template-utils.js +var template_utils = __webpack_require__(11); + +// EXTERNAL MODULE: ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx +var SnippetBase = __webpack_require__(12); + +// CONCATENATED MODULE: ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleSnippet", function() { return SimpleSnippet_SimpleSnippet; }); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + + + +const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png"; + +class SimpleSnippet_SimpleSnippet extends external_React_default.a.PureComponent { + constructor(props) { + super(props); + this.onButtonClick = this.onButtonClick.bind(this); + } + + onButtonClick() { + if (this.props.provider !== "preview") { + this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface }); + } + this.props.onAction({ + type: this.props.content.button_action, + data: { args: this.props.content.button_action_args } + }); + if (!this.props.content.do_not_autoblock) { + this.props.onBlock(); + } + } + + renderTitle() { + const { title } = this.props.content; + return title ? external_React_default.a.createElement( + "h3", + { className: "title" }, + title + ) : null; + } + + renderTitleIcon() { + const titleIcon = Object(template_utils["safeURI"])(this.props.content.title_icon); + return titleIcon ? external_React_default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null; + } + + renderButton() { + const { props } = this; + if (!props.content.button_action && !props.onButtonClick) { + return null; + } + + return external_React_default.a.createElement( + Button, + { + onClick: props.onButtonClick || this.onButtonClick, + color: props.content.button_color, + backgroundColor: props.content.button_background_color }, + props.content.button_label + ); + } + + render() { + const { props } = this; + const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`; + return external_React_default.a.createElement( + SnippetBase["SnippetBase"], + _extends({}, props, { className: className }), + external_React_default.a.createElement("img", { src: Object(template_utils["safeURI"])(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }), + external_React_default.a.createElement( + "div", + null, + this.renderTitleIcon(), + " ", + this.renderTitle(), + " ", + external_React_default.a.createElement( + "p", + { className: "body" }, + props.richText || props.content.text + ) + ), + external_React_default.a.createElement( + "div", + null, + this.renderButton() + ) + ); + } +} + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXTERNAL MODULE: external "React" +var external_React_ = __webpack_require__(5); +var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); + // CONCATENATED MODULE: ./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx @@ -8923,138 +9079,6 @@ class OnboardingMessage_OnboardingMessage extends external_React_default.a.PureC } } -/***/ }), -/* 48 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// EXTERNAL MODULE: external "React" -var external_React_ = __webpack_require__(5); -var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); - -// CONCATENATED MODULE: ./content-src/asrouter/components/Button/Button.jsx - - -const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"]; - -const Button = props => { - const style = {}; - - // Add allowed style tags from props, e.g. props.color becomes style={color: props.color} - for (const tag of ALLOWED_STYLE_TAGS) { - if (typeof props[tag] !== "undefined") { - style[tag] = props[tag]; - } - } - // remove border if bg is set to something custom - if (style.backgroundColor) { - style.border = "0"; - } - - return external_React_default.a.createElement( - "button", - { onClick: props.onClick, - className: props.className || "ASRouterButton", - style: style }, - props.children - ); -}; -// EXTERNAL MODULE: ./content-src/asrouter/template-utils.js -var template_utils = __webpack_require__(11); - -// EXTERNAL MODULE: ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx -var SnippetBase = __webpack_require__(12); - -// CONCATENATED MODULE: ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleSnippet", function() { return SimpleSnippet_SimpleSnippet; }); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - - - - - -const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png"; - -class SimpleSnippet_SimpleSnippet extends external_React_default.a.PureComponent { - constructor(props) { - super(props); - this.onButtonClick = this.onButtonClick.bind(this); - } - - onButtonClick() { - if (this.props.provider !== "preview") { - this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface }); - } - this.props.onAction({ - type: this.props.content.button_action, - data: { args: this.props.content.button_action_args } - }); - if (!this.props.content.do_not_autoblock) { - this.props.onBlock(); - } - } - - renderTitle() { - const { title } = this.props.content; - return title ? external_React_default.a.createElement( - "h3", - { className: "title" }, - title - ) : null; - } - - renderTitleIcon() { - const titleIcon = Object(template_utils["safeURI"])(this.props.content.title_icon); - return titleIcon ? external_React_default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null; - } - - renderButton() { - const { props } = this; - if (!props.content.button_action && !props.onButtonClick) { - return null; - } - - return external_React_default.a.createElement( - Button, - { - onClick: props.onButtonClick || this.onButtonClick, - color: props.content.button_color, - backgroundColor: props.content.button_background_color }, - props.content.button_label - ); - } - - render() { - const { props } = this; - const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`; - return external_React_default.a.createElement( - SnippetBase["SnippetBase"], - _extends({}, props, { className: className }), - external_React_default.a.createElement("img", { src: Object(template_utils["safeURI"])(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }), - external_React_default.a.createElement( - "div", - null, - this.renderTitleIcon(), - " ", - this.renderTitle(), - " ", - external_React_default.a.createElement( - "p", - { className: "body" }, - props.richText || props.content.text - ) - ), - external_React_default.a.createElement( - "div", - null, - this.renderButton() - ) - ); - } -} - /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js.map b/browser/components/newtab/data/content/activity-stream.bundle.js.map index 4c2b4901fd5c..5bf98eeee060 100644 --- a/browser/components/newtab/data/content/activity-stream.bundle.js.map +++ b/browser/components/newtab/data/content/activity-stream.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///external \"ReactDOM\"","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.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/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/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","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:///./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:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","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/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","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","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","log","SnippetComponents","simple_snippet","newsletter_snippet","NewsletterSnippet","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","links","sendClick","reduce","acc","linkTag","safeURI","metric","args","RichText","props","localization_id","ASRouterUISurface","React","PureComponent","onMessageFromParent","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","dataset","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","privacyNoticeRichText","SnippetComponent","template","scene2_privacy_html","privacy_notice","privacy_notice_text","snippet_text","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","expandSnippet","handleSubmit","expanded","signupSubmitted","signupSuccess","json","fetchConfig","FormData","refs","newsletterForm","method","preventDefault","fetchRequest","Request","onBlock","preventDismiss","renderHiddenFormInputs","hidden_inputs","map","idx","renderFormPrivacyNotice","renderSignupSubmitted","success_text","error_text","onButtonClick","className","button_label","renderSignupView","scene2_text","form_action","scene2_email_placeholder_text","scene2_button_label","protocol","isAllowed","warn","SnippetBase","onBlockClicked","UISurface","renderDismissButton","footerDismiss","block_button_text","onDismiss","dismiss_button_label","containerClassName","PrefsButton","injectIntl","onClick","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","filter","v","join","App","strings","prefs","hash","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","length","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","renderTableHead","renderProviders","providers","label","bucket","lastUpdated","toString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","icon","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","title","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","find","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","backgroundImage","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","checked","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","val","getPattern","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","test","fun","Array","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","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","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","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","onDoneButton","onAction","header","extraTemplateStrings","ALLOWED_STYLE_TAGS","Button","tag","border","DEFAULT_ICON_PATH","button_action_args","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_color","button_background_color","tall","richText","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","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\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);\nconst asrouterContent = new ASRouterContent();\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(\n \n, document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","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\") g = 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","/* 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_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\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 \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\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 \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\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_PREVIEW_MODE\",\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 \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\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_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\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 \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\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","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\";\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\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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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 _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.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"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.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"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\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\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 // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {LocalizationProvider, Localized} from \"fluent-react\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {MessageContext} from \"fluent\";\nimport {NewsletterSnippet} from \"./templates/NewsletterSnippet/NewsletterSnippet\";\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\n// Key names matching schema name of templates\nconst SnippetComponents = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: NewsletterSnippet,\n};\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\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 overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to , not \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 Object.keys(content).forEach(key => {\n cx.addMessages(`${key} = ${content[key]}`);\n });\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: ,\n i: ,\n u: ,\n strong: ,\n em: ,\n 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 const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = ();\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 \n {props.text}\n \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 if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\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 const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(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_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n let privacyNoticeRichText;\n const SnippetComponent = SnippetComponents[this.state.message.template];\n const {content} = this.state.message;\n\n if (this.state.message.template === \"newsletter_snippet\") {\n privacyNoticeRichText = ();\n }\n\n return (\n \n \n }\n privacyNoticeRichText={privacyNoticeRichText}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n onBlock={this.onBlockById(this.state.message.id)}\n onDismiss={this.onDismissById(this.state.message.id)}\n onAction={ASRouterUtils.executeAction}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n \n );\n }\n\n renderOnboarding() {\n return (\n );\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n \n \n Preview Purposes Only\n \n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n \n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\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(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render(, 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","module.exports = React;","module.exports = PropTypes;","/* 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 RPMSendAsyncMessage(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.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(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","module.exports = Redux;","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","import React from \"react\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class NewsletterSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n const fetchConfig = {\n body: new FormData(this.refs.newsletterForm),\n method: \"POST\",\n };\n\n event.preventDefault();\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n try {\n const fetchRequest = new Request(this.refs.newsletterForm.action, fetchConfig);\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n this.props.onBlock({preventDismiss: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) => );\n }\n\n renderFormPrivacyNotice() {\n return (\n \n \n {this.props.privacyNoticeRichText}\n \n );\n }\n\n renderSignupSubmitted() {\n const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text;\n const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null;\n\n return ();\n }\n\n renderSignupView() {\n const {content} = this.props;\n\n return (\n \n {content.scene2_text}\n \n \n {this.renderHiddenFormInputs()}\n \n \n {content.scene2_button_label}\n \n {this.renderFormPrivacyNotice()}\n \n );\n }\n\n render() {\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return ;\n }\n}\n","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","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n \n \n {this.props.content.dismiss_button_label}\n \n \n );\n }\n\n return (\n \n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (\n \n {props.children}\n \n {this.renderDismissButton()}\n );\n }\n}\n","module.exports = ReactDOM;","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 \n \n \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\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\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();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\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[\"asrouter.devtoolsEnabled\"] && window.location.hash === \"#asrouter\") {\n return ();\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\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 const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n \n {prefs.showSearch &&\n \n \n \n \n \n }\n \n {!prefs.migrationExpired &&\n \n \n \n }\n \n \n \n \n \n \n {this.props.isFirstrun && }\n );\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\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 expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"}\n {isBlocked ? null : Show}\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)}\n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n );\n }\n\n renderTableHead() {\n return (\n \n id\n source\n last updated\n \n );\n }\n\n renderProviders() {\n return ({this.renderTableHead()}\n {this.state.providers.map((provider, i) => {\n let label = \"(local)\";\n if (provider.type === \"remote\") {\n label = {provider.url};\n } else if (provider.type === \"remote-settings\") {\n label = `${provider.bucket} (Remote Settings)`;\n }\n return (\n {provider.id}\n {label}\n {provider.lastUpdated ? new Date(provider.lastUpdated).toString() : \"\"}\n );\n })}\n );\n }\n\n render() {\n return (\n AS Router Admin\n Targeting Utilities\n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers\n {this.state.providers ? this.renderProviders() : null}\n Messages\n {this.renderMessages()}\n );\n }\n}\n","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 (\n {message_body.map(msg => )}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (\n \n \n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","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 \n \n \n \n \n \n \n \n \n \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 ;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","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 (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","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","/* 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 (\n {this.props.showLogo &&\n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\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\" ? {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 componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\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 componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\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 // 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(initialized) {\n if (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 {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\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 const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\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 let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n \n ) : (\n \n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n // <-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && (\n {cards}\n )}\n {shouldShowEmptyState &&\n \n \n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n :\n }\n \n {getFormattedMessage(emptyState.message)}\n \n \n }\n {id === \"topstories\" &&\n \n {shouldShowTopics && }\n {shouldShowPocketCta && }\n {read_more_endpoint &&\n }\n }\n \n );\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, Pocket: state.Pocket}))(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();\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push();\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n \n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","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.open_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: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\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-save\",\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","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 || site.searchTopSite) ? 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 ();\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","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 (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n () :\n (option.type !== \"empty\" && )\n ))}\n \n );\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 \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\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","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\" ? {message} : ;\n}\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._getSectionBodyHeight()}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 _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\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 ;\n }\n return ;\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, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n \n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n {showContextMenu &&\n \n }\n \n \n \n \n {this.props.children}\n \n \n \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","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 ();\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","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 AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\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","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","/* 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","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","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 ({name});\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )}\n \n );\n }\n}\n","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 {SearchShortcutsForm} from \"./SearchShortcutsForm\";\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.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.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 const searchShortcuts = topSites.filter(site => !!site.searchTopSite).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: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\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 onEditFormClose() {\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 onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n \n \n \n \n \n \n }\n {showSearchShortcutsForm &&\n \n \n \n \n \n \n }\n \n \n );\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","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\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","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\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n \n \n \n \n \n \n \n \n \n {shortcut.keyword}\n \n \n \n \n \n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n \n \n \n \n \n {this.state.shortcuts.map(shortcut => )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n","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_SEARCH_SHORTCUTS_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 this.onKeyPress = this.onKeyPress.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 // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\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 onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\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.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\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 (\n \n \n \n \n {link.searchTopSite && }\n {showSmallFavicon && }\n \n \n {link.isPinned && }\n {title}\n \n \n {children}\n \n );\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 if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\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 if (!this.props.link.searchTopSite) {\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 } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\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 (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n \n );\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 (\n \n );\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 // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\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 \n ) : (\n \n ));\n }\n return (\n {topSitesUI}\n );\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\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 this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\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 document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ();\n let privacyLink = ();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.intl.formatMessage({id: \"firstrun_invalid_input\"})}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","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","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","/* 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}\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) { // _ \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) { // _- \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}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* 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 * @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 * @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","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} 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}\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 * []\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 * 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 * @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} ids\n * @returns {MessageContext|Array}\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} ids\n * @returns {Promise>}\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","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} 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 * @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","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","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 * \n * …\n * \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","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","/* 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 * 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 * 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","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 * \n * {'Hello, world!'}\n * \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 * \n * {'Hello, { $username }!'}\n * \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 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 \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 * @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 * \n * \n * {'Hello, world!'}\n * \n * \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","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","/* 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 },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: 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 // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\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\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\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.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\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 case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\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 case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\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 Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\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, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","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 \n \n \n {title} \n {this.props.children}\n \n {button_label} \n \n \n \n );\n }\n}\n","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 const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n \n \n \n {content.title} \n {content.text} \n \n \n {content.button_label} \n \n \n \n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n \n \n );\n }\n}\n","import React from \"react\";\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 (\n {props.children}\n );\n};\n","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n this.props.onAction({\n type: this.props.content.button_action,\n data: {args: this.props.content.button_action_args},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? {title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? : null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick) {\n return null;\n }\n\n return (\n {props.content.button_label}\n );\n }\n\n render() {\n const {props} = this;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (\n \n \n {this.renderTitleIcon()} {this.renderTitle()} {props.richText || props.content.text}\n \n {{this.renderButton()}}\n );\n }\n}\n","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","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 (\n \n \n \n {hasImage &&\n \n }\n \n \n {link.type === \"download\" && }\n {link.hostname &&\n \n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n \n }\n \n {link.title}\n {link.description}\n \n \n {icon && !link.context && }\n {link.icon && link.context && }\n {intlID && !link.context && }\n {link.context && {link.context}}\n \n \n \n \n {!props.placeholder && \n {`Open context menu for ${link.title}`}\n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => ;\n","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 (\n \n {this.props.loading ?\n :\n showClearButton && }\n \n {validationError &&\n }\n \n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","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 (\n \n );\n }\n return (\n \n );\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 \n \n \n \n \n \n \n \n \n {this._renderCustomScreenshotInput()}\n \n \n \n \n \n \n \n \n {previewMode ?\n \n \n :\n \n \n }\n \n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///external \"ReactDOM\"","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.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/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/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","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:///./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:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","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","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","log","SnippetComponents","simple_snippet","newsletter_snippet","props","fxa_signup_snippet","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","links","sendClick","reduce","acc","linkTag","safeURI","metric","args","RichText","localization_id","ASRouterUISurface","React","PureComponent","onMessageFromParent","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","dataset","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","privacyNoticeRichText","SnippetComponent","template","scene2_privacy_html","privacy_notice","snippet_text","scene1_text","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","protocol","isAllowed","warn","SnippetBase","onBlockClicked","UISurface","onBlock","renderDismissButton","footerDismiss","block_button_text","onDismiss","dismiss_button_label","containerClassName","className","SubmitFormSnippet","expandSnippet","handleSubmit","expanded","signupSubmitted","signupSuccess","disableForm","json","preventDefault","form_method","toUpperCase","refs","form","submit","fetchConfig","FormData","method","fetchRequest","Request","preventDismiss","renderHiddenFormInputs","hidden_inputs","map","idx","renderFormPrivacyNotice","renderSignupSubmitted","success_text","error_text","onButtonClick","button_label","scene1_button_label","renderSignupView","scene2_text","form_action","scene2_email_placeholder_text","scene2_button_label","getFirstSceneContent","filter","substr","PrefsButton","injectIntl","onClick","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","v","join","App","strings","prefs","hash","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","length","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","renderTableHead","renderProviders","providers","label","bucket","lastUpdated","toString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","icon","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","title","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","find","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","backgroundImage","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","checked","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","val","getPattern","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","test","fun","Array","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","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","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","ALLOWED_STYLE_TAGS","Button","tag","border","DEFAULT_ICON_PATH","onAction","button_action_args","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_color","button_background_color","tall","richText","onDoneButton","header","extraTemplateStrings","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","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\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);\nconst asrouterContent = new ASRouterContent();\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(\n \n, document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","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\") g = 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","/* 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_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\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 \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\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 \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\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_PREVIEW_MODE\",\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 \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\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_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\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 \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\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","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\";\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\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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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 _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.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"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.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"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\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\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 // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {LocalizationProvider, Localized} from \"fluent-react\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {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\";\nimport {SubmitFormSnippet} from \"./templates/SubmitFormSnippet/SubmitFormSnippet\";\n\n// Key names matching schema name of templates\nconst SnippetComponents = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: props => ,\n fxa_signup_snippet: props => ,\n};\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\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 overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to , not \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 Object.keys(content).forEach(key => {\n cx.addMessages(`${key} = ${content[key]}`);\n });\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: ,\n i: ,\n u: ,\n strong: ,\n em: ,\n 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 const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = ();\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 \n {props.text}\n \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 if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\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 const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(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_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n let privacyNoticeRichText;\n const SnippetComponent = SnippetComponents[this.state.message.template];\n const {content} = this.state.message;\n\n if (this.state.message.template === \"newsletter_snippet\") {\n privacyNoticeRichText = ();\n }\n\n return (\n \n \n }\n privacyNoticeRichText={privacyNoticeRichText}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n onBlock={this.onBlockById(this.state.message.id)}\n onDismiss={this.onDismissById(this.state.message.id)}\n onAction={ASRouterUtils.executeAction}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n \n );\n }\n\n renderOnboarding() {\n return (\n );\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n \n \n Preview Purposes Only\n \n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n \n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\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(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render(, 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","module.exports = React;","module.exports = PropTypes;","/* 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 RPMSendAsyncMessage(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.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(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","module.exports = Redux;","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","module.exports = ReactDOM;","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","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n \n \n {this.props.content.dismiss_button_label}\n \n \n );\n }\n\n return (\n \n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (\n \n {props.children}\n \n {this.renderDismissButton()}\n );\n }\n}\n","import React from \"react\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class SubmitFormSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n disableForm: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n\n if (this.state.disableForm) {\n return;\n }\n\n event.preventDefault();\n this.setState({disableForm: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n if (this.props.form_method.toUpperCase() === \"GET\") {\n this.refs.form.submit();\n return;\n }\n\n const fetchConfig = {\n body: new FormData(this.refs.form),\n method: \"POST\",\n };\n\n try {\n const fetchRequest = new Request(this.refs.form.action, fetchConfig);\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n this.props.onBlock({preventDismiss: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n\n this.setState({disableForm: false});\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) => );\n }\n\n renderFormPrivacyNotice() {\n return this.props.privacyNoticeRichText && (\n \n \n {this.props.privacyNoticeRichText}\n \n );\n }\n\n renderSignupSubmitted() {\n const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text;\n const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null;\n\n return ();\n }\n\n renderSignupView() {\n const {content} = this.props;\n\n return (\n \n {content.scene2_text}\n \n \n {this.renderHiddenFormInputs()}\n \n \n {content.scene2_button_label}\n \n {this.renderFormPrivacyNotice()}\n \n );\n }\n\n getFirstSceneContent() {\n return Object.keys(this.props.content).filter(key => key.includes(\"scene1\")).reduce((acc, key) => {\n acc[key.substr(7)] = this.props.content[key];\n return acc;\n }, {});\n }\n\n render() {\n const content = {...this.props.content, ...this.getFirstSceneContent()};\n\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return ;\n }\n}\n","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 \n \n \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\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\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();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\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[\"asrouter.devtoolsEnabled\"] && window.location.hash === \"#asrouter\") {\n return ();\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\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 const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n \n {prefs.showSearch &&\n \n \n \n \n \n }\n \n {!prefs.migrationExpired &&\n \n \n \n }\n \n \n \n \n \n \n {this.props.isFirstrun && }\n );\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\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 expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"}\n {isBlocked ? null : Show}\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)}\n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n );\n }\n\n renderTableHead() {\n return (\n \n id\n source\n last updated\n \n );\n }\n\n renderProviders() {\n return ({this.renderTableHead()}\n {this.state.providers.map((provider, i) => {\n let label = \"(local)\";\n if (provider.type === \"remote\") {\n label = {provider.url};\n } else if (provider.type === \"remote-settings\") {\n label = `${provider.bucket} (Remote Settings)`;\n }\n return (\n {provider.id}\n {label}\n {provider.lastUpdated ? new Date(provider.lastUpdated).toString() : \"\"}\n );\n })}\n );\n }\n\n render() {\n return (\n AS Router Admin\n Targeting Utilities\n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers\n {this.state.providers ? this.renderProviders() : null}\n Messages\n {this.renderMessages()}\n );\n }\n}\n","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 (\n {message_body.map(msg => )}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (\n \n \n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","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 \n \n \n \n \n \n \n \n \n \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 ;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","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 (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","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","/* 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 (\n {this.props.showLogo &&\n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\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\" ? {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 componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\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 componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\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 // 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(initialized) {\n if (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 {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\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 const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\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 let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n \n ) : (\n \n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n // <-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && (\n {cards}\n )}\n {shouldShowEmptyState &&\n \n \n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n :\n }\n \n {getFormattedMessage(emptyState.message)}\n \n \n }\n {id === \"topstories\" &&\n \n {shouldShowTopics && }\n {shouldShowPocketCta && }\n {read_more_endpoint &&\n }\n }\n \n );\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, Pocket: state.Pocket}))(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();\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push();\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n \n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","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.open_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: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\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-save\",\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","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 || site.searchTopSite) ? 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 ();\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","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 (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n () :\n (option.type !== \"empty\" && )\n ))}\n \n );\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 \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\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","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\" ? {message} : ;\n}\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._getSectionBodyHeight()}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 _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\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 ;\n }\n return ;\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, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n \n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n {showContextMenu &&\n \n }\n \n \n \n \n {this.props.children}\n \n \n \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","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 ();\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","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 AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\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","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","/* 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","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","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 ({name});\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )}\n \n );\n }\n}\n","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 {SearchShortcutsForm} from \"./SearchShortcutsForm\";\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.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.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 const searchShortcuts = topSites.filter(site => !!site.searchTopSite).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: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\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 onEditFormClose() {\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 onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n \n \n \n \n \n \n }\n {showSearchShortcutsForm &&\n \n \n \n \n \n \n }\n \n \n );\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","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\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","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\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n \n \n \n \n \n \n \n \n \n {shortcut.keyword}\n \n \n \n \n \n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n \n \n \n \n \n {this.state.shortcuts.map(shortcut => )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n","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_SEARCH_SHORTCUTS_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 this.onKeyPress = this.onKeyPress.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 // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\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 onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\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.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\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 (\n \n \n \n \n {link.searchTopSite && }\n {showSmallFavicon && }\n \n \n {link.isPinned && }\n {title}\n \n \n {children}\n \n );\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 if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\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 if (!this.props.link.searchTopSite) {\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 } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\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 (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n \n );\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 (\n \n );\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 // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\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 \n ) : (\n \n ));\n }\n return (\n {topSitesUI}\n );\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\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 this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\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 document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ();\n let privacyLink = ();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.intl.formatMessage({id: \"firstrun_invalid_input\"})}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","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","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","/* 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}\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) { // _ \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) { // _- \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}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* 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 * @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 * @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","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} 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}\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 * []\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 * 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 * @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} ids\n * @returns {MessageContext|Array}\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} ids\n * @returns {Promise>}\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","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} 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 * @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","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","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 * \n * …\n * \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","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","/* 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 * 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 * 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","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 * \n * {'Hello, world!'}\n * \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 * \n * {'Hello, { $username }!'}\n * \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 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 \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 * @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 * \n * \n * {'Hello, world!'}\n * \n * \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","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","/* 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 },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: 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 // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\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\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\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.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\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 case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\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 case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\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 Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\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, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","import React from \"react\";\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 (\n {props.children}\n );\n};\n","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n this.props.onAction({\n type: this.props.content.button_action,\n data: {args: this.props.content.button_action_args},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? {title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? : null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick) {\n return null;\n }\n\n return (\n {props.content.button_label}\n );\n }\n\n render() {\n const {props} = this;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (\n \n \n {this.renderTitleIcon()} {this.renderTitle()} {props.richText || props.content.text}\n \n {{this.renderButton()}}\n );\n }\n}\n","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 \n \n \n {title} \n {this.props.children}\n \n {button_label} \n \n \n \n );\n }\n}\n","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 const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n \n \n \n {content.title} \n {content.text} \n \n \n {content.button_label} \n \n \n \n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n \n \n );\n }\n}\n","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","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 (\n \n \n \n {hasImage &&\n \n }\n \n \n {link.type === \"download\" && }\n {link.hostname &&\n \n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n \n }\n \n {link.title}\n {link.description}\n \n \n {icon && !link.context && }\n {link.icon && link.context && }\n {intlID && !link.context && }\n {link.context && {link.context}}\n \n \n \n \n {!props.placeholder && \n {`Open context menu for ${link.title}`}\n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => ;\n","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 (\n \n {this.props.loading ?\n :\n showClearButton && }\n \n {validationError &&\n }\n \n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","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 (\n \n );\n }\n return (\n \n );\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 \n \n \n \n \n \n \n \n \n {this._renderCustomScreenshotInput()}\n \n \n \n \n \n \n \n \n {previewMode ?\n \n \n :\n \n \n }\n \n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/browser/components/newtab/lib/ASRouter.jsm b/browser/components/newtab/lib/ASRouter.jsm index 94bd3b93a08a..15ba49d54add 100644 --- a/browser/components/newtab/lib/ASRouter.jsm +++ b/browser/components/newtab/lib/ASRouter.jsm @@ -892,7 +892,7 @@ class _ASRouter { UITour.showMenu(target.browser.ownerGlobal, action.data.args); break; case ra.INSTALL_ADDON_FROM_URL: - await MessageLoaderUtils.installAddonFromURL(target.browser, action.data.args); + await MessageLoaderUtils.installAddonFromURL(target.browser, action.data.url); break; case ra.SHOW_FIREFOX_ACCOUNTS: const url = await FxAccounts.config.promiseSignUpURI("snippets"); diff --git a/browser/components/newtab/lib/ASRouterTargeting.jsm b/browser/components/newtab/lib/ASRouterTargeting.jsm index 8800409895d5..6b9f61f29c05 100644 --- a/browser/components/newtab/lib/ASRouterTargeting.jsm +++ b/browser/components/newtab/lib/ASRouterTargeting.jsm @@ -140,6 +140,10 @@ const TargetingGetters = { totalDevices: Services.prefs.getIntPref("services.sync.numClients", 0), }; }, + get xpinstallEnabled() { + // This is needed for all add-on recommendations, to know if we allow xpi installs in the first place + return Services.prefs.getBoolPref("xpinstall.enabled", true); + }, get addonsInfo() { return AddonManager.getActiveAddons(["extension", "service"]) .then(({addons, fullData}) => { diff --git a/browser/components/newtab/lib/ActivityStream.jsm b/browser/components/newtab/lib/ActivityStream.jsm index cb8816304780..87f6514877a1 100644 --- a/browser/components/newtab/lib/ActivityStream.jsm +++ b/browser/components/newtab/lib/ActivityStream.jsm @@ -182,7 +182,7 @@ const PREFS_CONFIG = new Map([ } else { searchShortcuts.push("google"); } - if (["DE", "FR", "GB", "IT", "JP", "US"].includes(geo)) { + if (["AT", "DE", "FR", "GB", "IT", "JP", "US"].includes(geo)) { searchShortcuts.push("amazon"); } return searchShortcuts.join(","); @@ -209,7 +209,7 @@ const PREFS_CONFIG = new Map([ id: "onboarding", type: "local", localProvider: "OnboardingMessageProvider", - enabled: false, + enabled: true, }, { id: "snippets", type: "remote", diff --git a/browser/components/newtab/lib/CFRMessageProvider.jsm b/browser/components/newtab/lib/CFRMessageProvider.jsm index facd5946295a..9d69869be8f0 100644 --- a/browser/components/newtab/lib/CFRMessageProvider.jsm +++ b/browser/components/newtab/lib/CFRMessageProvider.jsm @@ -84,6 +84,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "one_per_day_amazon") && + (xpinstallEnabled == true) && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${AMAZON_ASSISTANT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: AMAZON_ASSISTANT_PARAMS.open_urls}, @@ -127,6 +128,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day_amazon") && + (xpinstallEnabled == true) && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${AMAZON_ASSISTANT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: AMAZON_ASSISTANT_PARAMS.open_urls}, @@ -170,6 +172,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${FACEBOOK_CONTAINER_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: FACEBOOK_CONTAINER_PARAMS.open_urls}, @@ -213,6 +216,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${FACEBOOK_CONTAINER_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: FACEBOOK_CONTAINER_PARAMS.open_urls}, @@ -256,6 +260,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${GOOGLE_TRANSLATE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: GOOGLE_TRANSLATE_PARAMS.open_urls}, @@ -299,6 +304,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${GOOGLE_TRANSLATE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: GOOGLE_TRANSLATE_PARAMS.open_urls}, @@ -342,6 +348,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${YOUTUBE_ENHANCE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: YOUTUBE_ENHANCE_PARAMS.open_urls}, @@ -385,6 +392,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${YOUTUBE_ENHANCE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: YOUTUBE_ENHANCE_PARAMS.open_urls}, @@ -428,6 +436,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls}, @@ -471,6 +480,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls}, @@ -514,6 +524,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${REDDIT_ENHANCEMENT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: REDDIT_ENHANCEMENT_PARAMS.open_urls}, @@ -557,6 +568,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${REDDIT_ENHANCEMENT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: REDDIT_ENHANCEMENT_PARAMS.open_urls}, diff --git a/browser/components/newtab/lib/PlacesFeed.jsm b/browser/components/newtab/lib/PlacesFeed.jsm index 9242e8a190b9..34311ec36ac1 100644 --- a/browser/components/newtab/lib/PlacesFeed.jsm +++ b/browser/components/newtab/lib/PlacesFeed.jsm @@ -124,10 +124,10 @@ class BookmarksObserver extends Observer { class PlacesObserver extends Observer { constructor(dispatch) { super(dispatch, Ci.nsINavBookmarkObserver); - this.handlePlacesEvents = this.handlePlacesEvents.bind(this); + this.handlePlacesEvent = this.handlePlacesEvent.bind(this); } - handlePlacesEvents(events) { + handlePlacesEvent(events) { for (let {itemType, source, dateAdded, guid, title, url, isTagging} of events) { // Skips items that are not bookmarks (like folders), about:* pages or // default bookmarks, added when the profile is created. @@ -148,8 +148,8 @@ class PlacesObserver extends Observer { bookmarkGuid: guid, bookmarkTitle: title, dateAdded: dateAdded * 1000, - url - } + url, + }, }); } } @@ -173,7 +173,7 @@ class PlacesFeed { .getService(Ci.nsINavBookmarksService) .addObserver(this.bookmarksObserver, true); PlacesUtils.observers.addListener(["bookmark-added"], - this.placesObserver.handlePlacesEvents); + this.placesObserver.handlePlacesEvent); Services.obs.addObserver(this, LINK_BLOCKED_EVENT); } @@ -215,7 +215,7 @@ class PlacesFeed { PlacesUtils.history.removeObserver(this.historyObserver); PlacesUtils.bookmarks.removeObserver(this.bookmarksObserver); PlacesUtils.observers.removeListener(["bookmark-added"], - this.placesObserver.handlePlacesEvents); + this.placesObserver.handlePlacesEvent); Services.obs.removeObserver(this, LINK_BLOCKED_EVENT); } @@ -336,5 +336,6 @@ this.PlacesFeed = PlacesFeed; // Exported for testing only PlacesFeed.HistoryObserver = HistoryObserver; PlacesFeed.BookmarksObserver = BookmarksObserver; +PlacesFeed.PlacesObserver = PlacesObserver; const EXPORTED_SYMBOLS = ["PlacesFeed"]; diff --git a/browser/components/newtab/locales/ar/strings.properties b/browser/components/newtab/locales/ar/strings.properties index a82ab501ef2f..027816ccd8ca 100644 --- a/browser/components/newtab/locales/ar/strings.properties +++ b/browser/components/newtab/locales/ar/strings.properties @@ -146,6 +146,8 @@ pocket_read_even_more=اعرض المزيد من الأخبار pocket_more_reccommendations=مقترحات أخرى pocket_learn_more=اطّلع على المزيد +pocket_cta_button=نزِّل بوكِت +pocket_cta_text=احفظ القصص التي تحبّها في بوكِت، وزوّد عقلك بمقالات رائعة. highlights_empty_state=ابدأ التصفح وسنعرض أمامك بعض المقالات والفيديوهات والمواقع الأخرى التي زرتها حديثا أو أضفتها إلى العلامات هنا. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/ca/strings.properties b/browser/components/newtab/locales/ca/strings.properties index 57453d09f4f2..6cee2c34612c 100644 --- a/browser/components/newtab/locales/ca/strings.properties +++ b/browser/components/newtab/locales/ca/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Temes populars: # end of the list of popular topic links. pocket_read_even_more=Mostra més articles +pocket_more_reccommendations=Més recomanacions +pocket_learn_more=Més informació +pocket_cta_button=Obtén el Pocket +pocket_cta_text=Deseu els vostres articles preferits al Pocket i gaudiu d'altres recomanacions fascinants. + highlights_empty_state=Comenceu a navegar i aquí us mostrarem els millors articles, vídeos i altres pàgines que hàgiu visitat o afegit a les adreces d'interès recentment. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. diff --git a/browser/components/newtab/locales/cs/strings.properties b/browser/components/newtab/locales/cs/strings.properties index 69068c62fee7..4a74b3f4dec4 100644 --- a/browser/components/newtab/locales/cs/strings.properties +++ b/browser/components/newtab/locales/cs/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Zobrazit více článků pocket_more_reccommendations=Další doporučení pocket_learn_more=Zjistit více +pocket_how_it_works=Jak to funguje pocket_cta_button=Získejte Pocket pocket_cta_text=Ukládejte si články do služby Pocket a užívejte si skvělé čtení. diff --git a/browser/components/newtab/locales/da/strings.properties b/browser/components/newtab/locales/da/strings.properties index fe5b5ac54e9a..fe1a7c465394 100644 --- a/browser/components/newtab/locales/da/strings.properties +++ b/browser/components/newtab/locales/da/strings.properties @@ -155,6 +155,12 @@ pocket_read_more=Populære emner: # 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=Se flere historier + +pocket_more_reccommendations=Flere anbefalinger +pocket_learn_more=Læs mere +pocket_cta_button=Hent Pocket +pocket_cta_text=Gem dine yndlingshistorier i Pocket og hav dem altid ved hånden. + # LOCALIZATION NOTE (pocket_description): This is shown in the settings pane # to provide more information about Pocket. pocket_description=Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla. diff --git a/browser/components/newtab/locales/en-CA/strings.properties b/browser/components/newtab/locales/en-CA/strings.properties index 37cc699be4b1..c4c8d67fda25 100644 --- a/browser/components/newtab/locales/en-CA/strings.properties +++ b/browser/components/newtab/locales/en-CA/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=View More Stories pocket_more_reccommendations=More Recommendations pocket_learn_more=Learn More +pocket_how_it_works=How it works pocket_cta_button=Get Pocket pocket_cta_text=Save the stories you love in Pocket, and fuel your mind with fascinating reads. diff --git a/browser/components/newtab/locales/eo/strings.properties b/browser/components/newtab/locales/eo/strings.properties index 38d171bb266e..a02a4e0c2634 100644 --- a/browser/components/newtab/locales/eo/strings.properties +++ b/browser/components/newtab/locales/eo/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Ĉefaj temoj: # end of the list of popular topic links. pocket_read_even_more=Montri pli da artikoloj +pocket_more_reccommendations=Pli da rekomendoj +pocket_learn_more=Pli da informo +pocket_cta_button=Instali Pocket +pocket_cta_text=Konservu viajn ŝatatajn artikolojn en Pocket, kaj stimulu vian menson per ravaj legaĵoj. + highlights_empty_state=Komencu retumi kaj ĉi tie ni montros al vi kelkajn el la plej bonaj artikoloj, filmetoj kaj aliaj paĝoj, kiujn vi antaŭ nelonge vizits aŭ por kiuj vi aldonis legosignon. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. diff --git a/browser/components/newtab/locales/gn/strings.properties b/browser/components/newtab/locales/gn/strings.properties index 14dfdffad036..634f247961e1 100644 --- a/browser/components/newtab/locales/gn/strings.properties +++ b/browser/components/newtab/locales/gn/strings.properties @@ -146,7 +146,9 @@ pocket_read_even_more=Ahechaseve Mombe'upy pocket_more_reccommendations=Hetave je’eporã pocket_learn_more=Kuaave +pocket_how_it_works=Mba’éichapa omba’apo pocket_cta_button=Eguereko Pocket +pocket_cta_text=Eñongatu umi eipotáva tembiasakue Pocket-pe ha emombarete ne akã ñemoñe’ẽ ha’evévape. highlights_empty_state=Eñepyrũ eikundaha ha rohechaukáta ndéve mba'ehai, mba'erecharã oĩva ha ambue ñandutirenda reikeva'ekue ýrõ rembotechaukava'ekue. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/hi-IN/strings.properties b/browser/components/newtab/locales/hi-IN/strings.properties index 7970bab4e7da..6d9dda7894ec 100644 --- a/browser/components/newtab/locales/hi-IN/strings.properties +++ b/browser/components/newtab/locales/hi-IN/strings.properties @@ -64,7 +64,7 @@ menu_action_remove_download=इतिहास से हटाएँ # LOCALIZATION NOTE (search_button): This is screenreader only text for the # search button. -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 @@ -78,7 +78,7 @@ search_web_placeholder=वेब पर खोजें # 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=वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा. +section_disclaimer_topstories=वेब पर सबसे दिलचस्प कहानियाँ, आपके पढने के आधार पर चयनित। Pocket के द्वारा, जो अब Mozilla का हिस्सा है। section_disclaimer_topstories_linktext=जाने यह कैसे काम करता है. # LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of # the button used to acknowledge, and hide this disclaimer in the future. @@ -144,6 +144,8 @@ pocket_read_more=लोकप्रिय विषय: # end of the list of popular topic links. pocket_read_even_more=और कहानियाँ देखें +pocket_learn_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. diff --git a/browser/components/newtab/locales/it/strings.properties b/browser/components/newtab/locales/it/strings.properties index 45222c35c35e..a02c154f609e 100644 --- a/browser/components/newtab/locales/it/strings.properties +++ b/browser/components/newtab/locales/it/strings.properties @@ -145,6 +145,7 @@ pocket_read_more=Argomenti popolari: pocket_read_even_more=Visualizza altre storie pocket_more_reccommendations = Altri suggerimenti pocket_learn_more = Ulteriori informazioni +pocket_how_it_works = Come funziona pocket_cta_button = Ottieni Pocket pocket_cta_text = Salva le storie che ami in Pocket e nutri la tua mente con letture appassionanti. diff --git a/browser/components/newtab/locales/kk/strings.properties b/browser/components/newtab/locales/kk/strings.properties index 07580d5876ba..0899c8ba8157 100644 --- a/browser/components/newtab/locales/kk/strings.properties +++ b/browser/components/newtab/locales/kk/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Көбірек хикаяларды қарау pocket_more_reccommendations=Көбірек ұсыныстар pocket_learn_more=Көбірек білу pocket_cta_button=Pocket-ті алу +pocket_cta_text=Өзіңіз ұнатқан хикаяларды Pocket ішіне сақтап, миіңізді тамаша оқумен толықтырыңыз. highlights_empty_state=Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/lv/strings.properties b/browser/components/newtab/locales/lv/strings.properties index ac6fa3ffadae..78c05b338fca 100644 --- a/browser/components/newtab/locales/lv/strings.properties +++ b/browser/components/newtab/locales/lv/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Populārās tēmas: # end of the list of popular topic links. pocket_read_even_more=Parādīt vairāk lapas +pocket_more_reccommendations=Vairāk ieteikumu +pocket_learn_more=Uzzināt vairāk +pocket_cta_button=Izmēģiniet Pocket +pocket_cta_text=Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu. + highlights_empty_state=Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. @@ -173,6 +178,7 @@ section_menu_action_expand_section=Izvērst sadaļu section_menu_action_manage_section=Pārvaldīt sadaļu section_menu_action_manage_webext=Pārvaldīt paplašinājumu section_menu_action_add_topsite=Pievienot populāru lapu +section_menu_action_add_search_engine=Pievienot meklētāju section_menu_action_move_up=Pārvietot augšup section_menu_action_move_down=Pārvietot lejup section_menu_action_privacy_notice=Privātuma politika @@ -201,4 +207,3 @@ firstrun_privacy_notice=Privātuma politikai firstrun_continue_to_login=Turpināt firstrun_skip_login=Izlaist šo soli -section_menu_action_add_search_engine=Pievienot meklētāju diff --git a/browser/components/newtab/locales/ms/strings.properties b/browser/components/newtab/locales/ms/strings.properties index 60b6ee07f28c..657b4139917c 100644 --- a/browser/components/newtab/locales/ms/strings.properties +++ b/browser/components/newtab/locales/ms/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Papar Kisah Selanjutnya pocket_more_reccommendations=Saranan Lain pocket_learn_more=Ketahui Selanjutnya +pocket_how_it_works=Cara pelaksanaan pocket_cta_button=Dapatkan Pocket pocket_cta_text=Simpan cerita yang anda suka dalam Pocket dan jana minda dengan bahan bacaan yang menarik. diff --git a/browser/components/newtab/locales/nb-NO/strings.properties b/browser/components/newtab/locales/nb-NO/strings.properties index d8ae9c52beea..7980e054327c 100644 --- a/browser/components/newtab/locales/nb-NO/strings.properties +++ b/browser/components/newtab/locales/nb-NO/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Vis flere saker pocket_more_reccommendations=Flere anbefalinger pocket_learn_more=Les mer pocket_cta_button=Hent Pocket +pocket_cta_text=Lagre artiklene du synes er interessante i Pocket, og stimuler dine tanker med fasinerende lesermateriell. highlights_empty_state=Begynn å surfe, og vi viser noen av de beste artiklene, videoer og andre sider du nylig har besøkt eller bokmerket her. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/nl/strings.properties b/browser/components/newtab/locales/nl/strings.properties index c5e8b471e519..c0c35f2c6543 100644 --- a/browser/components/newtab/locales/nl/strings.properties +++ b/browser/components/newtab/locales/nl/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Meer verhalen bekijken pocket_more_reccommendations=Meer aanbevelingen pocket_learn_more=Meer info +pocket_how_it_works=Hoe het werkt pocket_cta_button=Pocket gebruiken pocket_cta_text=Bewaar de verhalen die u interessant vindt in Pocket, en stimuleer uw gedachten met boeiende leesstof. diff --git a/browser/components/newtab/locales/nn-NO/strings.properties b/browser/components/newtab/locales/nn-NO/strings.properties index 36196551d117..c11d6ff57d2d 100644 --- a/browser/components/newtab/locales/nn-NO/strings.properties +++ b/browser/components/newtab/locales/nn-NO/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Vis fleire saker pocket_more_reccommendations=Fleire tilrådingar pocket_learn_more=Les meir pocket_cta_button=Last ned Pocket +pocket_cta_text=Lagre artiklane du synest er interessante i Pocket, og stimuler tankane dine med fasinerande lesemateriell. highlights_empty_state=Begynn å surfe, og vi vil vise deg nokre av dei beste artiklane, videoane og andre sider du nyleg har besøkt eller bokmerka her. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/pt-PT/strings.properties b/browser/components/newtab/locales/pt-PT/strings.properties index 55aa5268511b..f8cb7123f41c 100644 --- a/browser/components/newtab/locales/pt-PT/strings.properties +++ b/browser/components/newtab/locales/pt-PT/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Ver mais histórias pocket_more_reccommendations=Mais recomendações pocket_learn_more=Saber mais +pocket_how_it_works=Como funciona pocket_cta_button=Obter o Pocket pocket_cta_text=Guarde as histórias que adora no Pocket, e abasteça a sua mente com leituras fascinantes. diff --git a/browser/components/newtab/locales/ro/strings.properties b/browser/components/newtab/locales/ro/strings.properties index e0bb342c6f53..5c3cbe2329e3 100644 --- a/browser/components/newtab/locales/ro/strings.properties +++ b/browser/components/newtab/locales/ro/strings.properties @@ -36,11 +36,11 @@ menu_action_dismiss=Înlătură menu_action_delete=Șterge din istoric menu_action_pin=Fixează menu_action_unpin=Anulează fixarea -confirm_history_delete_p1=Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric? +confirm_history_delete_p1=Sigur vrei să ștergi fiecare instanță a paginii din istoric? # 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=Această acțiune este ireversibilă. +confirm_history_delete_notice_p2=Acțiunea este ireversibilă. menu_action_save_to_pocket=Salvează în Pocket menu_action_delete_pocket=Şterge din Pocket menu_action_archive_pocket=Arhivează în Pocket diff --git a/browser/components/newtab/locales/sl/strings.properties b/browser/components/newtab/locales/sl/strings.properties index 88422146b55b..bb171eebdaa8 100644 --- a/browser/components/newtab/locales/sl/strings.properties +++ b/browser/components/newtab/locales/sl/strings.properties @@ -146,6 +146,8 @@ pocket_read_even_more=Prikaži več vesti pocket_more_reccommendations=Več priporočil pocket_learn_more=Več o tem +pocket_cta_button=Prenesi Pocket +pocket_cta_text=Shranite zgodbe, ki jih imate radi, v Pocket, in napolnite svoje misli z navdušujočim branjem. 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, diff --git a/browser/components/newtab/locales/sv-SE/strings.properties b/browser/components/newtab/locales/sv-SE/strings.properties index e07ce8022c48..4d503e4057fe 100644 --- a/browser/components/newtab/locales/sv-SE/strings.properties +++ b/browser/components/newtab/locales/sv-SE/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Visa fler nyheter pocket_more_reccommendations=Fler rekommendationer pocket_learn_more=Läs mer +pocket_how_it_works=Hur fungerar det pocket_cta_button=Hämta Pocket pocket_cta_text=Spara de historier som du tycker är intressant i Pocket, och stimulera dina tankar med fascinerande läsmaterial. diff --git a/browser/components/newtab/locales/tr/strings.properties b/browser/components/newtab/locales/tr/strings.properties index 110ab6f531ba..00d835339f3f 100644 --- a/browser/components/newtab/locales/tr/strings.properties +++ b/browser/components/newtab/locales/tr/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Daha fazla yazı göster pocket_more_reccommendations=Daha fazla öneri pocket_learn_more=Daha fazla bilgi al +pocket_how_it_works=Nasıl çalışıyor? pocket_cta_button=Pocket’ı edinin pocket_cta_text=Sevdiğiniz yazıları Pocket’a kaydedin, aklınız okumaya değer şeylerle doldurun. diff --git a/browser/components/newtab/locales/zh-TW/strings.properties b/browser/components/newtab/locales/zh-TW/strings.properties index 5e39d7fb9ed7..d8deb62c0d95 100644 --- a/browser/components/newtab/locales/zh-TW/strings.properties +++ b/browser/components/newtab/locales/zh-TW/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=檢視更多文章 pocket_more_reccommendations=更多推薦項目 pocket_learn_more=了解更多 +pocket_how_it_works=原理是什麼 pocket_cta_button=取得 Pocket pocket_cta_text=將您喜愛的故事儲存到 Pocket,閱讀一篇篇好文章。 diff --git a/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js index 3b5f00d6510c..b27eb5cdd505 100644 --- a/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js @@ -76,8 +76,8 @@ window.gActivityStreamStrings = { "pocket_read_even_more": "اعرض المزيد من الأخبار", "pocket_more_reccommendations": "مقترحات أخرى", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "نزِّل بوكِت", + "pocket_cta_text": "احفظ القصص التي تحبّها في بوكِت، وزوّد عقلك بمقالات رائعة.", "highlights_empty_state": "ابدأ التصفح وسنعرض أمامك بعض المقالات والفيديوهات والمواقع الأخرى التي زرتها حديثا أو أضفتها إلى العلامات هنا.", "topstories_empty_state": "لا جديد. تحقق لاحقًا للحصول على مزيد من أهم الأخبار من {provider}. لا يمكنك الانتظار؟ اختر موضوعًا شائعًا للعثور على المزيد من القصص الرائعة من جميع أنحاء الوِب.", "manual_migration_explanation2": "جرب فَيَرفُكس مع العلامات، و التأريخ، و كلمات السر من متصفح آخر.", diff --git a/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js index 1f608a4f081f..96dc16919eab 100644 --- a/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "S'ha produït un error en carregar la imatge. Proveu un altre URL.", "pocket_read_more": "Temes populars:", "pocket_read_even_more": "Mostra més articles", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Més recomanacions", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Obtén el Pocket", + "pocket_cta_text": "Deseu els vostres articles preferits al Pocket i gaudiu d'altres recomanacions fascinants.", "highlights_empty_state": "Comenceu a navegar i aquí us mostrarem els millors articles, vídeos i altres pàgines que hàgiu visitat o afegit a les adreces d'interès recentment.", "topstories_empty_state": "Ja esteu al dia. Torneu més tard per veure més articles populars de {provider}. No podeu esperar? Trieu un tema popular per descobrir els articles més interessants de tot el web.", "manual_migration_explanation2": "Proveu el Firefox amb les adreces d'interès, l'historial i les contrasenyes d'un altre navegador.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "Condicions del servei", "firstrun_privacy_notice": "Avís de privadesa", "firstrun_continue_to_login": "Continua", - "firstrun_skip_login": "Omet aquest pas" + "firstrun_skip_login": "Omet aquest pas", + "pocket_learn_more": "Més informació" }; diff --git a/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js index e1d1749e0b02..62ec91d37763 100644 --- a/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populární témata:", "pocket_read_even_more": "Zobrazit více článků", "pocket_more_reccommendations": "Další doporučení", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Jak to funguje", "pocket_cta_button": "Získejte Pocket", "pocket_cta_text": "Ukládejte si články do služby Pocket a užívejte si skvělé čtení.", "highlights_empty_state": "Začněte prohlížet a my vám zde ukážeme některé skvělé články, videa a další stránky, které jste nedávno viděli nebo uložili do záložek.", diff --git a/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js index 5fe6f9a1ba6a..6db7dc17d450 100644 --- a/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "Kunne ikke indlæse billede. Prøv en anden URL.", "pocket_read_more": "Populære emner:", "pocket_read_even_more": "Se flere historier", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Flere anbefalinger", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Hent Pocket", + "pocket_cta_text": "Gem dine yndlingshistorier i Pocket og hav dem altid ved hånden.", "highlights_empty_state": "Gå i gang med at browse, så vil vi vise dig nogle af de artikler, videoer og andre sider, du har besøgt eller gemt et bogmærke til for nylig.", "topstories_empty_state": "Der er ikke flere nye historier. Kom tilbage senere for at se flere tophistorier fra {provider}. Kan du ikke vente? Vælg et populært emne og find flere spændende historier fra hele verden.", "manual_migration_explanation2": "Prøv Firefox med bogmærkerne, historikken og adgangskoderne fra en anden browser.", @@ -119,5 +119,6 @@ window.gActivityStreamStrings = { "settings_pane_snippets_body": "Læs korte opdateringer fra Mozilla om Firefox, internet-kultur og lidt underholdning fra tid til anden.", "settings_pane_done_button": "Færdig", "settings_pane_topstories_options_sponsored": "Vis sponsorerede historier", + "pocket_learn_more": "Læs mere", "pocket_description": "Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla." }; diff --git a/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js index 0cea906831bf..2dde17883a5c 100644 --- a/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "Ne eblis ŝargi la bildon. Klopodu alian retadreson.", "pocket_read_more": "Ĉefaj temoj:", "pocket_read_even_more": "Montri pli da artikoloj", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Pli da rekomendoj", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Instali Pocket", + "pocket_cta_text": "Konservu viajn ŝatatajn artikolojn en Pocket, kaj stimulu vian menson per ravaj legaĵoj.", "highlights_empty_state": "Komencu retumi kaj ĉi tie ni montros al vi kelkajn el la plej bonaj artikoloj, filmetoj kaj aliaj paĝoj, kiujn vi antaŭ nelonge vizits aŭ por kiuj vi aldonis legosignon.", "topstories_empty_state": "Vi legis ĉion. Kontrolu denove poste ĉu estas pli da novaĵon de {provider}. Ĉu vi ne povas atendi? Elektu popularan temon por trovi pli da interesaj artikoloj en la tuta teksaĵo.", "manual_migration_explanation2": "Provu Firefox kun la legosignoj, historio kaj pasvortoj de alia retumilo.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "kondiĉojn de uzo", "firstrun_privacy_notice": "rimarkon pri privateco", "firstrun_continue_to_login": "Daŭrigi", - "firstrun_skip_login": "Pretersalti tiun ĉi paŝon" + "firstrun_skip_login": "Pretersalti tiun ĉi paŝon", + "pocket_learn_more": "Pli da informo" }; diff --git a/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js index ee8dfe1ab79a..1fbb8ce14f21 100644 --- a/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js @@ -75,9 +75,9 @@ window.gActivityStreamStrings = { "pocket_read_more": "Ñe'ẽmbyrã Ojehayhuvéva:", "pocket_read_even_more": "Ahechaseve Mombe'upy", "pocket_more_reccommendations": "Hetave je’eporã", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Mba’éichapa omba’apo", "pocket_cta_button": "Eguereko Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Eñongatu umi eipotáva tembiasakue Pocket-pe ha emombarete ne akã ñemoñe’ẽ ha’evévape.", "highlights_empty_state": "Eñepyrũ eikundaha ha rohechaukáta ndéve mba'ehai, mba'erecharã oĩva ha ambue ñandutirenda reikeva'ekue ýrõ rembotechaukava'ekue.", "topstories_empty_state": "Ko'ág̃a reikuaapáma ipyahúva. Eikejey ag̃ave ápe eikuaávo mombe'upy pyahu {provider} oikuave'ẽva ndéve. Ndaikatuvéima reha'ãrõ? Eiporavo peteĩ ñe'ẽmbyrã ha emoñe'ẽve oĩvéva ñande yvy ape ári.", "manual_migration_explanation2": "Eipuru Firefox reheve techaukaha, tembiasakue ha ñe'ẽñemi ambue kundaharapegua.", diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html index dad8b60fc990..de69818cdadb 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html @@ -9,7 +9,7 @@ - वेब पर खोजेंखोजसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें + वेब पर खोजेंखोजेंसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html index 8587e8ad893b..921bf3b2168e 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ - वेब पर खोजेंखोजसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें + वेब पर खोजेंखोजेंसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js index 204c290e4ec8..8fc8e01a678b 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js @@ -32,10 +32,10 @@ window.gActivityStreamStrings = { "menu_action_copy_download_link": "डाउनलोड लिंक कॉपी करें", "menu_action_go_to_download_page": "डाउनलोड पृष्ठ पर जाएं", "menu_action_remove_download": "इतिहास से हटाएँ", - "search_button": "खोज", + "search_button": "खोजें", "search_header": "{search_engine_name} खोज", "search_web_placeholder": "वेब पर खोजें", - "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा.", + "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पढने के आधार पर चयनित। Pocket के द्वारा, जो अब Mozilla का हिस्सा है।", "section_disclaimer_topstories_linktext": "जाने यह कैसे काम करता है.", "section_disclaimer_topstories_buttontext": "ठीक है, समझ गए", "prefs_home_header": "Firefox होम सामग्री", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "सेवा की शर्तें", "firstrun_privacy_notice": "गोपनीयता नीति", "firstrun_continue_to_login": "जारी रखें", - "firstrun_skip_login": "इस चरण को छोड़ दें" + "firstrun_skip_login": "इस चरण को छोड़ दें", + "pocket_learn_more": "अधिक जानें" }; diff --git a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js index 6a313462644e..b5c740567c84 100644 --- a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Argomenti popolari:", "pocket_read_even_more": "Visualizza altre storie", "pocket_more_reccommendations": "Altri suggerimenti", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Come funziona", "pocket_cta_button": "Ottieni Pocket", "pocket_cta_text": "Salva le storie che ami in Pocket e nutri la tua mente con letture appassionanti.", "highlights_empty_state": "Inizia a navigare e, in questa sezione, verranno visualizzati articoli, video e altre pagine visitate di recente o aggiunte ai segnalibri.", diff --git a/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js index 19c736eb08f2..27ebd8d0008d 100644 --- a/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Көбірек ұсыныстар", "pocket_how_it_works": "How it works", "pocket_cta_button": "Pocket-ті алу", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Өзіңіз ұнатқан хикаяларды Pocket ішіне сақтап, миіңізді тамаша оқумен толықтырыңыз.", "highlights_empty_state": "Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі.", "topstories_empty_state": "Дайын. {provider} ұсынған көбірек мақалаларды алу үшін кейінірек тексеріңіз. Күте алмайсыз ба? Интернеттен көбірек тамаша мақалаларды алу үшін әйгілі теманы таңдаңыз.", "manual_migration_explanation2": "Firefox қолданбасын басқа браузер бетбелгілері, тарихы және парольдерімен қолданып көріңіз.", diff --git a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js index d75336a713d7..95d8e83d4a52 100644 --- a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "NEizdevās ielādēt attēlu. Izmēģiniet citu adresi.", "pocket_read_more": "Populārās tēmas:", "pocket_read_even_more": "Parādīt vairāk lapas", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Vairāk ieteikumu", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Izmēģiniet Pocket", + "pocket_cta_text": "Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu.", "highlights_empty_state": "Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas.", "topstories_empty_state": "Viss ir apskatīts! Atnāciet atpakaļ nedaudz vēlāk, lai redzētu populāros stāstus no {provider}. Nevarat sagaidīt? Izvēlieties kādu no tēmām jau tagad.", "manual_migration_explanation2": "Izmēģiniet Firefox ar grāmatzīmēm, vēsturi un parolēm no cita pārlūka.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "Lietošanas noteikumiem", "firstrun_privacy_notice": "Privātuma politikai", "firstrun_continue_to_login": "Turpināt", - "firstrun_skip_login": "Izlaist šo soli" + "firstrun_skip_login": "Izlaist šo soli", + "pocket_learn_more": "Uzzināt vairāk" }; diff --git a/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js index dffcdc70316f..ff748c751628 100644 --- a/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Topik Popular:", "pocket_read_even_more": "Papar Kisah Selanjutnya", "pocket_more_reccommendations": "Saranan Lain", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Cara pelaksanaan", "pocket_cta_button": "Dapatkan Pocket", "pocket_cta_text": "Simpan cerita yang anda suka dalam Pocket dan jana minda dengan bahan bacaan yang menarik.", "highlights_empty_state": "Mulakan melayar dan kami akan paparkan beberapa artikel, video dan halaman menarik lain yang sudah anda layari dan tandabuku di sini.", diff --git a/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js index c05567f277c4..1455f269e6fa 100644 --- a/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Flere anbefalinger", "pocket_how_it_works": "How it works", "pocket_cta_button": "Hent Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Lagre artiklene du synes er interessante i Pocket, og stimuler dine tanker med fasinerende lesermateriell.", "highlights_empty_state": "Begynn å surfe, og vi viser noen av de beste artiklene, videoer og andre sider du nylig har besøkt eller bokmerket her.", "topstories_empty_state": "Du har tatt igjen. Kom tilbake senere for flere topphistorier fra {provider}. Kan du ikke vente? Velg et populært emne for å finne flere gode artikler fra hele Internett.", "manual_migration_explanation2": "Prøv Firefox med bokmerkene, historikk og passord fra en annen nettleser.", diff --git a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js index 3b6fcdea50a4..f66451be7c1d 100644 --- a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populaire onderwerpen:", "pocket_read_even_more": "Meer verhalen bekijken", "pocket_more_reccommendations": "Meer aanbevelingen", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Hoe het werkt", "pocket_cta_button": "Pocket gebruiken", "pocket_cta_text": "Bewaar de verhalen die u interessant vindt in Pocket, en stimuleer uw gedachten met boeiende leesstof.", "highlights_empty_state": "Begin met surfen, en we tonen hier een aantal geweldige artikelen, video’s en andere pagina’s die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.", diff --git a/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js index 34d16de47c0d..441d7d8a81be 100644 --- a/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Fleire tilrådingar", "pocket_how_it_works": "How it works", "pocket_cta_button": "Last ned Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Lagre artiklane du synest er interessante i Pocket, og stimuler tankane dine med fasinerande lesemateriell.", "highlights_empty_state": "Begynn å surfe, og vi vil vise deg nokre av dei beste artiklane, videoane og andre sider du nyleg har besøkt eller bokmerka her.", "topstories_empty_state": "Det finst ikkje fleire. Kom tilbake seinare for fleire topphistoriar frå {provider}. Kan du ikkje vente? Vel eit populært emne for å finne fleire gode artiklar frå heile nettet.", "manual_migration_explanation2": "Prøv Firefox med bokmerka, historikk og passord frå ein annan nettlesar.", diff --git a/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js index 3096a7b3333a..cf38293f6456 100644 --- a/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Tópicos populares:", "pocket_read_even_more": "Ver mais histórias", "pocket_more_reccommendations": "Mais recomendações", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Como funciona", "pocket_cta_button": "Obter o Pocket", "pocket_cta_text": "Salve as histórias que você gosta no Pocket e abasteça sua mente com leituras fascinantes.", "highlights_empty_state": "Comece a navegar e nós mostraremos aqui alguns ótimos artigos, vídeos e outras páginas que você favoritou ou visitou recentemente.", diff --git a/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js index f16e5ab081b1..c183a49699f3 100644 --- a/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Tópicos populares:", "pocket_read_even_more": "Ver mais histórias", "pocket_more_reccommendations": "Mais recomendações", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Como funciona", "pocket_cta_button": "Obter o Pocket", "pocket_cta_text": "Guarde as histórias que adora no Pocket, e abasteça a sua mente com leituras fascinantes.", "highlights_empty_state": "Comece a navegar, e iremos mostrar-lhe alguns dos ótimos artigos, vídeos, e outras páginas que visitou recentemente ou adicionou aos marcadores aqui.", diff --git a/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js index 16d1a3e75c11..f90728887607 100644 --- a/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js @@ -19,8 +19,8 @@ window.gActivityStreamStrings = { "menu_action_delete": "Șterge din istoric", "menu_action_pin": "Fixează", "menu_action_unpin": "Anulează fixarea", - "confirm_history_delete_p1": "Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric?", - "confirm_history_delete_notice_p2": "Această acțiune este ireversibilă.", + "confirm_history_delete_p1": "Sigur vrei să ștergi fiecare instanță a paginii din istoric?", + "confirm_history_delete_notice_p2": "Acțiunea este ireversibilă.", "menu_action_save_to_pocket": "Salvează în Pocket", "menu_action_delete_pocket": "Şterge din Pocket", "menu_action_archive_pocket": "Arhivează în Pocket", diff --git a/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js index 498c64915535..d0933187e0d6 100644 --- a/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js @@ -76,8 +76,8 @@ window.gActivityStreamStrings = { "pocket_read_even_more": "Prikaži več vesti", "pocket_more_reccommendations": "Več priporočil", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Prenesi Pocket", + "pocket_cta_text": "Shranite zgodbe, ki jih imate radi, v Pocket, in napolnite svoje misli z navdušujočim branjem.", "highlights_empty_state": "Začnite z brskanjem, mi pa vam bomo tu prikazovali odlične članke, videoposnetke ter druge strani, ki ste jih nedavno obiskali ali shranili med zaznamke.", "topstories_empty_state": "Zdaj ste seznanjeni z novicami. Vrnite se pozneje in si oglejte nove prispevke iz {provider}. Komaj čakate? Izberite priljubljeno temo in odkrijte več velikih zgodb na spletu.", "manual_migration_explanation2": "Preskusite Firefox z zaznamki, zgodovino in gesli iz drugega brskalnika.", diff --git a/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js index 3fd8026e522d..4769d8e4ff51 100644 --- a/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populära ämnen:", "pocket_read_even_more": "Visa fler nyheter", "pocket_more_reccommendations": "Fler rekommendationer", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Hur fungerar det", "pocket_cta_button": "Hämta Pocket", "pocket_cta_text": "Spara de historier som du tycker är intressant i Pocket, och stimulera dina tankar med fascinerande läsmaterial.", "highlights_empty_state": "Börja surfa, och vi visar några av de bästa artiklarna, videoklippen och andra sidor du nyligen har besökt eller bokmärkt här.", diff --git a/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js index d9e558715e23..aa741d35045e 100644 --- a/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Popüler konular:", "pocket_read_even_more": "Daha fazla yazı göster", "pocket_more_reccommendations": "Daha fazla öneri", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Nasıl çalışıyor?", "pocket_cta_button": "Pocket’ı edinin", "pocket_cta_text": "Sevdiğiniz yazıları Pocket’a kaydedin, aklınız okumaya değer şeylerle doldurun.", "highlights_empty_state": "Gezinmeye başlayın. Son zamanlarda baktığınız veya yer imlerinize eklediğiniz bazı güzel makaleleri, videoları ve diğer sayfaları burada göstereceğiz.", diff --git a/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js index a90be0015a38..36b49c145b70 100644 --- a/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "热门主题:", "pocket_read_even_more": "查看更多文章", "pocket_more_reccommendations": "更多推荐", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "原理是什麼", "pocket_cta_button": "获取 Pocket", "pocket_cta_text": "将您喜爱的故事保存到 Pocket,用精彩的读物为思想注入活力。", "highlights_empty_state": "开始网上冲浪之旅吧,之后这里会显示您最近看过或加了书签的精彩文章、视频与其他页面。", diff --git a/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js index cc23f5296c21..a5131ba08b52 100644 --- a/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "熱門主題:", "pocket_read_even_more": "檢視更多文章", "pocket_more_reccommendations": "更多推薦項目", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "原理是什麼", "pocket_cta_button": "取得 Pocket", "pocket_cta_text": "將您喜愛的故事儲存到 Pocket,閱讀一篇篇好文章。", "highlights_empty_state": "開始上網,我們就會把您在網路上發現的好文章、影片、剛加入書籤的頁面顯示於此。", diff --git a/browser/components/newtab/test/browser/browser_asrouter_targeting.js b/browser/components/newtab/test/browser/browser_asrouter_targeting.js index be53ef93ff84..f1004b852853 100644 --- a/browser/components/newtab/test/browser/browser_asrouter_targeting.js +++ b/browser/components/newtab/test/browser/browser_asrouter_targeting.js @@ -362,3 +362,14 @@ add_task(async function check_provider_cohorts() { is(await ASRouterTargeting.Environment.providerCohorts.onboarding, "foo"); is(await ASRouterTargeting.Environment.providerCohorts.cfr, "bar"); }); + +add_task(async function check_xpinstall_enabled() { + // should default to true if pref doesn't exist + is(await ASRouterTargeting.Environment.xpinstallEnabled, true); + // flip to false, check targeting reflects that + await pushPrefs(["xpinstall.enabled", false]); + is(await ASRouterTargeting.Environment.xpinstallEnabled, false); + // flip to true, check targeting reflects that + await pushPrefs(["xpinstall.enabled", true]); + is(await ASRouterTargeting.Environment.xpinstallEnabled, true); +}); diff --git a/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js b/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js index 3eae1d382520..5def0304c670 100644 --- a/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js +++ b/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js @@ -8,11 +8,11 @@ test_newtab({ before: setDefaultTopSites, // Test verifies the menu options for a default top site. test: async function defaultTopSites_menuOptions() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); - let contextMenuItems = content.openContextMenuAndGetOptions(".top-sites-list li:not(.search-shortcut)").map(v => v.textContent); - + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector).map(v => v.textContent); Assert.equal(contextMenuItems.length, 5, "Number of options is correct"); const expectedItemsText = ["Pin", "Edit", "Open in a New Window", "Open in a New Private Window", "Dismiss"]; @@ -27,26 +27,27 @@ test_newtab({ before: setDefaultTopSites, // Test verifies that the next top site in queue replaces a dismissed top site. test: async function defaultTopSites_dismiss() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); // Don't count search topsites - let defaultTopSitesNumber = content.document.querySelectorAll(".top-site-outer:not(.placeholder):not(.search-shortcut)").length; + const defaultTopSitesNumber = content.document.querySelectorAll(siteSelector).length; Assert.equal(defaultTopSitesNumber, 5, "5 top sites are loaded by default"); // Skip the search topsites select the second default topsite - let secondTopSite = content.document.querySelectorAll(".top-sites-list li:not(.search-shortcut):not(.placeholder)")[1].getAttribute("href"); + const secondTopSite = content.document.querySelectorAll(siteSelector)[1].getAttribute("href"); - let contextMenuItems = content.openContextMenuAndGetOptions("li:not(.search-shortcut)"); + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector); Assert.equal(contextMenuItems[4].textContent, "Dismiss", "'Dismiss' is the 5th item in the context menu list"); contextMenuItems[4].querySelector("a").click(); // Wait for the topsite to be dismissed and the second one to replace it - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-sites-list li:not(.search-shortcut):not(.placeholder)").getAttribute("href") === secondTopSite, + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector).getAttribute("href") === secondTopSite, "First default topsite was dismissed"); - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".top-site-outer:not(.placeholder):not(.search-shortcut)").length === 4, "4 top sites are displayed after one of them is dismissed"); + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 4, "4 top sites are displayed after one of them is dismissed"); }, async after() { await new Promise(resolve => NewTabUtils.undoAll(resolve)); @@ -56,16 +57,17 @@ test_newtab({ test_newtab({ before: setDefaultTopSites, test: async function searchTopSites_dismiss() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".search-shortcut").length === 2, + const siteSelector = ".search-shortcut"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 2, "2 search topsites are loaded by default"); - let contextMenuItems = content.openContextMenuAndGetOptions(".search-shortcut"); + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector); is(contextMenuItems.length, 2, "Search TopSites should only have Unpin and Dismiss"); // Unpin contextMenuItems[0].querySelector("a").click(); - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".search-shortcut").length === 1, + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 1, "1 search topsite displayed after we unpin the other one"); }, after: () => { diff --git a/browser/components/newtab/test/browser/browser_topsites_section.js b/browser/components/newtab/test/browser/browser_topsites_section.js index 509d6a15c8f7..804e2c348e57 100644 --- a/browser/components/newtab/test/browser/browser_topsites_section.js +++ b/browser/components/newtab/test/browser/browser_topsites_section.js @@ -25,10 +25,11 @@ test_newtab({ before: setDefaultTopSites, // it should pin the website when we click the first option of the topsite context menu. test: async function topsites_pin_unpin() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); // There are only topsites on the page, the selector with find the first topsite menu button. - let topsiteEl = content.document.querySelector(".top-site-outer:not(.search-shortcut)"); + let topsiteEl = content.document.querySelector(siteSelector); let topsiteContextBtn = topsiteEl.querySelector(".context-menu-button"); topsiteContextBtn.click(); diff --git a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js index 815e648e4ae1..59167bcaaf3a 100644 --- a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js +++ b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js @@ -793,7 +793,7 @@ describe("ASRouter", () => { describe("#onMessage: INSTALL_ADDON_FROM_URL", () => { it("should call installAddonFromURL with correct arguments", async () => { sandbox.stub(MessageLoaderUtils, "installAddonFromURL").resolves(null); - const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {args: "foo.com"}}); + const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {url: "foo.com"}}); await Router.onMessage(msg); diff --git a/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js index 98bef5393105..850e37056456 100644 --- a/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js +++ b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js @@ -41,4 +41,12 @@ describe("CFRMessageProvider", () => { assert.deepEqual(cohort3.frequency, {lifetime: 3}, "three day cohort has the right frequency cap"); assert.include(cohort3.targeting, `(providerCohorts.cfr == "three_per_day_amazon")`); }); + it("should always have xpinstallEnabled as targeting if it is an addon", () => { + for (const message of messages) { + // Ensure that the CFR messages that are recommending an addon have this targeting. + // In the future when we can do targeting based on category, this test will change. + // See bug 1494778 and 1497653 + assert.include(message.targeting, `(xpinstallEnabled == true)`); + } + }); }); diff --git a/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx b/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx index 6e8e68d22a61..2f6aba4503bb 100644 --- a/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx +++ b/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx @@ -5,6 +5,8 @@ import {GlobalOverrider} from "test/unit/utils"; import {mount} from "enzyme"; import React from "react"; let [FAKE_MESSAGE] = FAKE_LOCAL_MESSAGES; +const FAKE_NEWSLETTER_SNIPPET = FAKE_LOCAL_MESSAGES.find(msg => msg.id === "newsletter"); +const FAKE_FXA_SNIPPET = FAKE_LOCAL_MESSAGES.find(msg => msg.id === "fxa"); FAKE_MESSAGE = Object.assign({}, FAKE_MESSAGE, {provider: "fakeprovider"}); const FAKE_BUNDLED_MESSAGE = {bundle: [{id: "foo", template: "onboarding", content: {title: "Foo", body: "Foo123"}}], extraTemplateStrings: {}, template: "onboarding"}; @@ -85,6 +87,20 @@ describe("ASRouterUISurface", () => { assert.isTrue(wrapper.exists()); }); + it("should pass in the correct form_method for newsletter snippets", () => { + wrapper.setState({message: FAKE_NEWSLETTER_SNIPPET}); + + assert.isTrue(wrapper.find("SubmitFormSnippet").exists()); + assert.propertyVal(wrapper.find("SubmitFormSnippet").props(), "form_method", "POST"); + }); + + it("should pass in the correct form_method for fxa snippets", () => { + wrapper.setState({message: FAKE_FXA_SNIPPET}); + + assert.isTrue(wrapper.find("SubmitFormSnippet").exists()); + assert.propertyVal(wrapper.find("SubmitFormSnippet").props(), "form_method", "GET"); + }); + it("should render the component if a bundle of messages is defined", () => { wrapper.setState({bundle: FAKE_BUNDLED_MESSAGE}); assert.isTrue(wrapper.exists()); diff --git a/browser/components/newtab/test/unit/asrouter/constants.js b/browser/components/newtab/test/unit/asrouter/constants.js index 1bf5d8a502f1..c33c29e4f86e 100644 --- a/browser/components/newtab/test/unit/asrouter/constants.js +++ b/browser/components/newtab/test/unit/asrouter/constants.js @@ -7,6 +7,8 @@ export const FAKE_LOCAL_MESSAGES = [ {id: "foo2", template: "simple_snippet", bundled: 2, order: 2, content: {title: "Foo2", body: "Foo123-2"}}, {id: "bar", template: "fancy_template", content: {title: "Foo", body: "Foo123"}}, {id: "baz", content: {title: "Foo", body: "Foo123"}}, + {id: "newsletter", template: "newsletter_snippet", content: {title: "Foo", body: "Foo123"}}, + {id: "fxa", template: "fxa_signup_snippet", content: {title: "Foo", body: "Foo123"}}, ]; export const FAKE_LOCAL_PROVIDER = {id: "onboarding", type: "local", localProvider: "FAKE_LOCAL_PROVIDER", enabled: true, cohort: 0}; export const FAKE_LOCAL_PROVIDERS = {FAKE_LOCAL_PROVIDER: {getMessages: () => FAKE_LOCAL_MESSAGES}}; diff --git a/browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx similarity index 77% rename from browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx rename to browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx index 2bdd2acd6ed1..6809c3428b41 100644 --- a/browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx +++ b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx @@ -1,25 +1,27 @@ import {mount} from "enzyme"; -import {NewsletterSnippet} from "content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx"; import React from "react"; -import schema from "content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json"; +import schema from "content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json"; +import {SubmitFormSnippet} from "content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx"; const DEFAULT_CONTENT = { - text: "foo", + scene1_text: "foo", scene2_text: "bar", - button_label: "Sign Up", + scene1_button_label: "Sign Up", form_action: "foo.com", hidden_inputs: {"foo": "foo"}, + error_text: "error", + success_text: "success", }; -describe("NewsletterSnippet", () => { +describe("SubmitFormSnippet", () => { let sandbox; let onBlockStub; /** - * mountAndCheckProps - Mounts a NewsletterSnippet with DEFAULT_CONTENT extended with any props + * mountAndCheckProps - Mounts a SubmitFormSnippet with DEFAULT_CONTENT extended with any props * passed in the content param and validates props against the schema. * @param {obj} content Object containing custom message content (e.g. {text, icon, title}) - * @returns enzyme wrapper for SimpleSnippet + * @returns enzyme wrapper for SubmitFormSnippet */ function mountAndCheckProps(content = {}) { const props = { @@ -28,9 +30,10 @@ describe("NewsletterSnippet", () => { onDismiss: sandbox.stub(), sendUserActionTelemetry: sandbox.stub(), onAction: sandbox.stub(), + form_method: "POST", }; assert.jsonSchema(props.content, schema); - return mount(); + return mount(); } beforeEach(() => { @@ -43,7 +46,7 @@ describe("NewsletterSnippet", () => { }); it("should render .text", () => { - const wrapper = mountAndCheckProps({text: "bar"}); + const wrapper = mountAndCheckProps({scene1_text: "bar"}); assert.equal(wrapper.find(".body").text(), "bar"); }); it("should not render title element if no .title prop is supplied", () => { @@ -51,15 +54,15 @@ describe("NewsletterSnippet", () => { assert.lengthOf(wrapper.find(".title"), 0); }); it("should render .title", () => { - const wrapper = mountAndCheckProps({title: "Foo"}); + const wrapper = mountAndCheckProps({scene1_title: "Foo"}); assert.equal(wrapper.find(".title").text(), "Foo"); }); it("should render .icon", () => { - const wrapper = mountAndCheckProps({icon: "data:image/gif;base64,R0lGODl"}); + const wrapper = mountAndCheckProps({scene1_icon: "data:image/gif;base64,R0lGODl"}); assert.equal(wrapper.find(".icon").prop("src"), "data:image/gif;base64,R0lGODl"); }); it("should render .button_label and default className", () => { - const wrapper = mountAndCheckProps({button_label: "Click here"}); + const wrapper = mountAndCheckProps({scene1_button_label: "Click here"}); const button = wrapper.find("button.ASRouterButton"); assert.equal(button.text(), "Click here"); @@ -73,7 +76,7 @@ describe("NewsletterSnippet", () => { beforeEach(() => { wrapper = mountAndCheckProps({ - text: "bar", + scene1_text: "bar", scene2_email_placeholder_text: "Email", scene2_text: "signup", }); @@ -167,5 +170,25 @@ describe("NewsletterSnippet", () => { assert.equal(wrapper.state().signupSubmitted, false); }); + it("should not render the privacy notice checkbox if prop is missing", () => { + wrapper.setState({expanded: true}); + + assert.isFalse(wrapper.find(".privacy-notice").exists()); + }); + it("should render the privacy notice checkbox if prop is provided", () => { + wrapper.setProps({privacyNoticeRichText: "privacy notice"}); + wrapper.setState({expanded: true}); + + assert.isTrue(wrapper.find(".privacy-notice").exists()); + }); + it("should not call fetch if form_method is GET", async () => { + sandbox.stub(window, "fetch").resolves(fetchOk); + wrapper.setProps({form_method: "GET"}); + wrapper.setState({expanded: true}); + + await wrapper.instance().handleSubmit({preventDefault: sandbox.stub()}); + + assert.notCalled(window.fetch); + }); }); }); diff --git a/browser/components/newtab/test/unit/lib/PlacesFeed.test.js b/browser/components/newtab/test/unit/lib/PlacesFeed.test.js index d1142f0b2d62..1a3163987632 100644 --- a/browser/components/newtab/test/unit/lib/PlacesFeed.test.js +++ b/browser/components/newtab/test/unit/lib/PlacesFeed.test.js @@ -1,7 +1,7 @@ import {actionCreators as ac, actionTypes as at} from "common/Actions.jsm"; import {GlobalOverrider} from "test/unit/utils"; import {PlacesFeed} from "lib/PlacesFeed.jsm"; -const {HistoryObserver, BookmarksObserver} = PlacesFeed; +const {HistoryObserver, BookmarksObserver, PlacesObserver} = PlacesFeed; const FAKE_BOOKMARK = {bookmarkGuid: "xi31", bookmarkTitle: "Foo", dateAdded: 123214232, url: "foo.com"}; const TYPE_BOOKMARK = 0; // This is fake, for testing @@ -38,6 +38,8 @@ describe("PlacesFeed", () => { sandbox.spy(global.PlacesUtils.bookmarks, "removeObserver"); sandbox.spy(global.PlacesUtils.history, "addObserver"); sandbox.spy(global.PlacesUtils.history, "removeObserver"); + sandbox.spy(global.PlacesUtils.observers, "addListener"); + sandbox.spy(global.PlacesUtils.observers, "removeListener"); sandbox.spy(global.Services.obs, "addObserver"); sandbox.spy(global.Services.obs, "removeObserver"); sandbox.spy(global.Cu, "reportError"); @@ -74,21 +76,33 @@ describe("PlacesFeed", () => { assert.calledOnce(feed.store.dispatch); assert.equal(feed.store.dispatch.firstCall.args[0].type, action.type); }); + + it("should have a PlacesObserver that dispatches to the store", () => { + assert.instanceOf(feed.placesObserver, PlacesObserver); + const action = {type: "FOO"}; + + feed.placesObserver.dispatch(action); + + assert.calledOnce(feed.store.dispatch); + assert.equal(feed.store.dispatch.firstCall.args[0].type, action.type); + }); describe("#onAction", () => { - it("should add bookmark, history, blocked observers on INIT", () => { + it("should add bookmark, history, places, blocked observers on INIT", () => { feed.onAction({type: at.INIT}); assert.calledWith(global.PlacesUtils.history.addObserver, feed.historyObserver, true); assert.calledWith(global.PlacesUtils.bookmarks.addObserver, feed.bookmarksObserver, true); + assert.calledWith(global.PlacesUtils.observers.addListener, ["bookmark-added"], feed.placesObserver.handlePlacesEvent); assert.calledWith(global.Services.obs.addObserver, feed, BLOCKED_EVENT); }); - it("should remove bookmark, history, blocked observers, and timers on UNINIT", () => { + it("should remove bookmark, history, places, blocked observers, and timers on UNINIT", () => { feed.placesChangedTimer = global.Cc["@mozilla.org/timer;1"].createInstance(); let spy = feed.placesChangedTimer.cancel; feed.onAction({type: at.UNINIT}); assert.calledWith(global.PlacesUtils.history.removeObserver, feed.historyObserver); assert.calledWith(global.PlacesUtils.bookmarks.removeObserver, feed.bookmarksObserver); + assert.calledWith(global.PlacesUtils.observers.removeListener, ["bookmark-added"], feed.placesObserver.handlePlacesEvent); assert.calledWith(global.Services.obs.removeObserver, feed, BLOCKED_EVENT); assert.equal(feed.placesChangedTimer, null); assert.calledOnce(spy); @@ -343,19 +357,21 @@ describe("PlacesFeed", () => { }); describe("Custom dispatch", () => { - it("should only dispatch 1 PLACES_LINKS_CHANGED action if many onItemAdded notifications happened at once", async () => { - const args = { - type: "bookmark-added", + it("should only dispatch 1 PLACES_LINKS_CHANGED action if many bookmark-added notifications happened at once", async () => { + // Yes, onItemAdded has at least 8 arguments. See function definition for docs. + const args = [{ itemType: TYPE_BOOKMARK, - url: "https://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await feed.placesObserver.handlePlacesEvents([args]); - await feed.placesObserver.handlePlacesEvents([args]); - await feed.placesObserver.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); assert.calledOnce(feed.store.dispatch.withArgs(ac.OnlyToMain({type: at.PLACES_LINKS_CHANGED}))); }); it("should only dispatch 1 PLACES_LINKS_CHANGED action if many onItemRemoved notifications happened at once", async () => { @@ -377,125 +393,138 @@ describe("PlacesFeed", () => { }); describe("PlacesObserver", () => { - let dispatch; - let observer; - beforeEach(() => { - dispatch = sandbox.spy(); - observer = new PlacesObserver(dispatch); - }); - - describe("#handlePlacesEvents", () => { + describe("#bookmark-added", () => { + let dispatch; + let observer; beforeEach(() => { + dispatch = sandbox.spy(); + observer = new PlacesObserver(dispatch); }); - it("should dispatch a PLACES_BOOKMARK_ADDED action with the bookmark data - http", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "http://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); - assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); + assert.calledWith(dispatch.secondCall, { + type: at.PLACES_BOOKMARK_ADDED, + data: { + bookmarkGuid: FAKE_BOOKMARK.bookmarkGuid, + bookmarkTitle: FAKE_BOOKMARK.bookmarkTitle, + dateAdded: FAKE_BOOKMARK.dateAdded * 1000, + url: "http://www.foo.com", + }, + }); }); it("should dispatch a PLACES_BOOKMARK_ADDED action with the bookmark data - https", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "https://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); - assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); + assert.calledWith(dispatch.secondCall, { + type: at.PLACES_BOOKMARK_ADDED, + data: { + bookmarkGuid: FAKE_BOOKMARK.bookmarkGuid, + bookmarkTitle: FAKE_BOOKMARK.bookmarkTitle, + dateAdded: FAKE_BOOKMARK.dateAdded * 1000, + url: "https://www.foo.com", + }, + }); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - not http/https", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "places://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); + assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has IMPORT source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.IMPORT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.IMPORT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has RESTORE source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.RESTORE, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.RESTORE, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has RESTORE_ON_STARTUP source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.RESTORE_ON_STARTUP, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.RESTORE_ON_STARTUP, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has SYNC source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.SYNC, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.SYNC, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should ignore events that are not of TYPE_BOOKMARK", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: "nottypebookmark", - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.SYNC, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); diff --git a/browser/components/newtab/test/unit/unit-entry.js b/browser/components/newtab/test/unit/unit-entry.js index fc9dd01bac58..f02b16044e0d 100644 --- a/browser/components/newtab/test/unit/unit-entry.js +++ b/browser/components/newtab/test/unit/unit-entry.js @@ -91,6 +91,10 @@ const TEST_GLOBAL = { get history() { return TEST_GLOBAL.Cc["@mozilla.org/browser/nav-history-service;1"]; }, + observers: { + addListener() {}, + removeListener() {}, + }, }, PluralForm: {get() {}}, Preferences: FakePrefs,
{this.props.privacyNoticeRichText} @@ -75,17 +89,17 @@ export class NewsletterSnippet extends React.PureComponent { return (); + content={{button_label: this.props.content.scene1_button_label, text: message}} />); } renderSignupView() { const {content} = this.props; - return ( + return ( {content.scene2_text} - + {this.renderHiddenFormInputs()} @@ -96,13 +110,22 @@ export class NewsletterSnippet extends React.PureComponent { ); } + getFirstSceneContent() { + return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => { + acc[key.substr(7)] = this.props.content[key]; + return acc; + }, {}); + } + render() { + const content = {...this.props.content, ...this.getFirstSceneContent()}; + if (this.state.signupSubmitted) { return this.renderSignupSubmitted(); } if (this.state.expanded) { return this.renderSignupView(); } - return ; + return ; } } diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json similarity index 81% rename from browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json rename to browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json index b9d74cff8154..971c43c374c9 100644 --- a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json +++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json @@ -1,5 +1,5 @@ { - "title": "NewsletterSchema", + "title": "SubmitFormSnippet", "description": "A template with two states: a SimpleSnippet and another that contains a form", "version": "1.0.0", "type": "object", @@ -19,23 +19,29 @@ } }, "properties": { - "title": { - "allOf": [ - {"$ref": "#/definitions/plainText"}, - {"description": "Snippet title displayed before snippet text"} + "scene1_title": { + "allof": [ + {"$ref": "#/definitions/plaintext"}, + {"description": "snippet title displayed before snippet text"} ] }, - "text": { + "scene1_text": { "allOf": [ {"$ref": "#/definitions/richText"}, {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} ] }, - "icon": { + "scene2_text": { + "allOf": [ + {"$ref": "#/definitions/richText"}, + {"description": "Main body text of snippet. HTML subset allowed: i, b, u, strong, em, br"} + ] + }, + "scene1_icon": { "type": "string", "description": "Snippet icon. 64x64px. SVG or PNG preferred." }, - "title_icon": { + "scene1_title_icon": { "type": "string", "description": "Small icon that shows up before the title / text. 16x16px. SVG or PNG preferred. Grayscale." }, @@ -51,10 +57,6 @@ "type": "string", "description": "Message shown if registration failed." }, - "scene2_text": { - "type": "string", - "description": "Main body of the snippet in the second scene." - }, "scene2_email_placeholder_text": { "type": "string", "description": "Value to show while input is empty." @@ -71,7 +73,7 @@ "type": "object", "description": "Each entry represents a hidden input, key is used as value for the name property." }, - "button_label": { + "scene1_button_label": { "allOf": [ {"$ref": "#/definitions/plainText"}, {"description": "Text for a button next to main snippet text that links to button_url. Requires button_url."} @@ -105,9 +107,9 @@ } }, "additionalProperties": false, - "required": ["text", "form_action", "scene2_text", "hidden_inputs"], + "required": ["scene1_text", "form_action", "scene2_text", "hidden_inputs", "error_text", "success_text", "scene1_button_label"], "dependencies": { - "button_color": ["button_label"], - "button_background_color": ["button_label"] + "scene1_button_color": ["scene1_button_label"], + "scene1_button_background_color": ["scene1_button_label"] } } diff --git a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss similarity index 98% rename from browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss rename to browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss index 8b835fef9ba7..05d7cd62282c 100644 --- a/browser/components/newtab/content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss +++ b/browser/components/newtab/content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss @@ -1,4 +1,4 @@ -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; diff --git a/browser/components/newtab/content-src/components/Sections/_Sections.scss b/browser/components/newtab/content-src/components/Sections/_Sections.scss index 5d4eaf3ba313..81d0f7aa5127 100644 --- a/browser/components/newtab/content-src/components/Sections/_Sections.scss +++ b/browser/components/newtab/content-src/components/Sections/_Sections.scss @@ -22,7 +22,9 @@ } @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) { - :nth-child(3n) { + // 3n for normal cards, 4n for compact cards + :nth-child(3n), + :nth-child(4n) { @include context-menu-open-left; } } diff --git a/browser/components/newtab/content-src/styles/_activity-stream.scss b/browser/components/newtab/content-src/styles/_activity-stream.scss index 7ae47fc5b774..6fcd8be168b8 100644 --- a/browser/components/newtab/content-src/styles/_activity-stream.scss +++ b/browser/components/newtab/content-src/styles/_activity-stream.scss @@ -150,5 +150,5 @@ input { @import '../asrouter/components/SnippetBase/SnippetBase'; @import '../asrouter/components/ModalOverlay/ModalOverlay'; @import '../asrouter/templates/SimpleSnippet/SimpleSnippet'; -@import '../asrouter/templates/NewsletterSnippet/NewsletterSnippet'; +@import '../asrouter/templates/SubmitFormSnippet/SubmitFormSnippet'; @import '../asrouter/templates/OnboardingMessage/OnboardingMessage'; diff --git a/browser/components/newtab/contributing.md b/browser/components/newtab/contributing.md index 574573cfdd11..c696622f26b2 100644 --- a/browser/components/newtab/contributing.md +++ b/browser/components/newtab/contributing.md @@ -111,7 +111,7 @@ You can also write a detailed description of the commit: Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes" It should include the motivation for the change and contrast this with previous behavior. -###Footer +### Footer The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**. diff --git a/browser/components/newtab/css/activity-stream-linux.css b/browser/components/newtab/css/activity-stream-linux.css index 238b998d9909..607de0599afa 100644 --- a/browser/components/newtab/css/activity-stream-linux.css +++ b/browser/components/newtab/css/activity-stream-linux.css @@ -874,7 +874,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2088,47 +2089,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-linux.css.map b/browser/components/newtab/css/activity-stream-linux.css.map index 1a2edd7570eb..397391c1769e 100644 --- a/browser/components/newtab/css/activity-stream-linux.css.map +++ b/browser/components/newtab/css/activity-stream-linux.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/css/activity-stream-mac.css b/browser/components/newtab/css/activity-stream-mac.css index d6c4656b238f..a2c0efb134bf 100644 --- a/browser/components/newtab/css/activity-stream-mac.css +++ b/browser/components/newtab/css/activity-stream-mac.css @@ -877,7 +877,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2091,47 +2092,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-mac.css.map b/browser/components/newtab/css/activity-stream-mac.css.map index c0d117828794..6cbb2f24909e 100644 --- a/browser/components/newtab/css/activity-stream-mac.css.map +++ b/browser/components/newtab/css/activity-stream-mac.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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[lwt-newtab-brighttext] {\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/css/activity-stream-windows.css b/browser/components/newtab/css/activity-stream-windows.css index f436f069d8d7..5eb1902d15dc 100644 --- a/browser/components/newtab/css/activity-stream-windows.css +++ b/browser/components/newtab/css/activity-stream-windows.css @@ -874,7 +874,8 @@ main { inset-inline-end: 0; inset-inline-start: auto; } } @media (min-width: 1122px) and (max-width: 1570px) { - .sections-list .section-list :nth-child(3n) .context-menu { + .sections-list .section-list :nth-child(3n) .context-menu, + .sections-list .section-list :nth-child(4n) .context-menu { margin-inline-end: 5px; margin-inline-start: auto; inset-inline-end: 0; @@ -2088,47 +2089,47 @@ a.firstrun-link { .SimpleSnippet .ASRouterButton { cursor: pointer; } -.NewsletterSnippet { +.SubmitFormSnippet { flex-direction: column; flex: 1 1 100%; width: 100%; } - .NewsletterSnippet .ASRouterButton.primary { + .SubmitFormSnippet .ASRouterButton.primary { font-size: 15px; flex: 1 1 0; } - .NewsletterSnippet form { + .SubmitFormSnippet form { display: flex; flex-direction: column; width: 100%; } - .NewsletterSnippet .message { + .SubmitFormSnippet .message { font-size: 14px; align-self: stretch; flex: 0 0 100%; } - .NewsletterSnippet .privacy-notice { + .SubmitFormSnippet .privacy-notice { color: var(--newtab-text-secondary-color); flex: 0 0 100%; } - .NewsletterSnippet .innerWrapper { + .SubmitFormSnippet .innerWrapper { max-width: 670px; flex-wrap: wrap; justify-items: center; } - .NewsletterSnippet .footer { + .SubmitFormSnippet .footer { width: 100%; margin: 0 auto; text-align: right; background: #EDEDF0; padding: 10px 0; } - .NewsletterSnippet .footer .footer-content { + .SubmitFormSnippet .footer .footer-content { margin: 0 auto; max-width: 768px; width: 100%; text-align: right; } - .NewsletterSnippet input[type='email'] { + .SubmitFormSnippet input[type='email'] { background-color: var(--newtab-textbox-background-color); border: 1px solid var(--newtab-textbox-border); padding: 0 8px; height: 32px; font-size: 15px; width: 50%; } - .NewsletterSnippet input[type='email']:focus { + .SubmitFormSnippet input[type='email']:focus { border: 1px solid var(--newtab-textbox-focus-color); box-shadow: var(--newtab-textbox-focus-boxshadow); } diff --git a/browser/components/newtab/css/activity-stream-windows.css.map b/browser/components/newtab/css/activity-stream-windows.css.map index e1c3f86c8292..b3e4e4919398 100644 --- a/browser/components/newtab/css/activity-stream-windows.css.map +++ b/browser/components/newtab/css/activity-stream-windows.css.map @@ -27,12 +27,12 @@ "../content-src/asrouter/components/SnippetBase/_SnippetBase.scss", "../content-src/asrouter/components/ModalOverlay/_ModalOverlay.scss", "../content-src/asrouter/templates/SimpleSnippet/_SimpleSnippet.scss", - "../content-src/asrouter/templates/NewsletterSnippet/_NewsletterSnippet.scss", + "../content-src/asrouter/templates/SubmitFormSnippet/_SubmitFormSnippet.scss", "../content-src/asrouter/templates/OnboardingMessage/_OnboardingMessage.scss" ], "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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/NewsletterSnippet/NewsletterSnippet';\n@import '../asrouter/templates/OnboardingMessage/OnboardingMessage';\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@import '../components/PocketLoggedInCta/PocketLoggedInCta';\n@import '../components/MoreRecommendations/MoreRecommendations';\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/SubmitFormSnippet/SubmitFormSnippet';\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-10-95: rgba($grey-10, 0.95);\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-60-70: rgba($grey-60, 0.7);\n$grey-80-95: rgba($grey-80, 0.95);\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$pocket-red: #EF4056;\n$bookmark-icon-fill: #0A84FF;\n$download-icon-fill: #12BC00;\n$pocket-icon-fill: #D70022;\n$email-input-focus: rgba($blue-50, 0.3);\n$email-input-invalid: rgba($red-60, 0.3);\n$aw-extra-blue-1: #004EC2;\n$aw-extra-blue-2: #0080FF;\n$aw-extra-blue-3: #00C7FF;\n$about-welcome-gradient: linear-gradient(to bottom, $blue-70 40%, $aw-extra-blue-1 60%, $blue-60 80%, $aw-extra-blue-2 90%, $aw-extra-blue-3 100%);\n$about-welcome-extra-links: #676F7E;\n$firefox-wordmark-default-color: #363959;\n$firefox-wordmark-darktheme-color: $white;\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$searchbar-width-smallest: $grid-unit * 2 + $base-gutter * 1;\n$searchbar-width-small: $grid-unit * 3 + $base-gutter * 2;\n$searchbar-width-medium: $grid-unit * 4 + $base-gutter * 3;\n$searchbar-width-large: $grid-unit * 6 + $base-gutter * 5;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n// 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 inset-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: 150ms;\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 transition-delay: 333ms;\n }\n}\n\n@mixin context-menu-open-middle {\n .context-menu {\n margin-inline-end: auto;\n margin-inline-start: auto;\n inset-inline-end: auto;\n inset-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 inset-inline-end: 0;\n inset-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-header-background-color: $grey-10-95;\n --newtab-search-icon-color: $grey-90-40;\n --newtab-search-wordmark-color: $firefox-wordmark-default-color;\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 &[lwt-newtab-brighttext] {\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-header-background-color: $grey-80-95;\n --newtab-search-icon-color: $grey-10-60;\n --newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;\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}\n", @@ -40,7 +40,7 @@ ".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 &.only-search {\n display: block;\n padding-top: 134px;\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 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 .hide-main & {\n visibility: hidden;\n }\n\n}\n\n.base-content-fallback {\n // Make the error message be centered against the viewport\n height: 100vh;\n}\n\n.body-wrapper {\n // Hide certain elements so the page structure is fixed, e.g., placeholders,\n // while avoiding flashes of changing content, e.g., icons and text\n $selectors-to-hide: '\n .section-title,\n .sections-list .section:last-of-type,\n .topics\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 inset-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$hover-transition-duration: 150ms;\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 cursor: pointer;\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; // sass-lint:disable-line no-disallowed-properties\n transition: box-shadow $hover-transition-duration;\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 inset-inline-start: 0;\n top: 0;\n width: 100%;\n }\n\n .default-icon,\n .search-topsite {\n background-size: $default-icon-size;\n bottom: -$default-icon-offset;\n height: $default-icon-wrapper-size;\n inset-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 .search-topsite {\n background-image: url('#{$image-path}glyph-search-16.svg');\n background-size: 26px;\n background-color: $blue-60;\n border-radius: $default-icon-wrapper-size;\n -moz-context-properties: fill;\n fill: $white;\n box-shadow: var(--newtab-card-shadow);\n transition-duration: $hover-transition-duration;\n transition-property: background-size, bottom, inset-inline-end, height, width;\n }\n\n &:hover .search-topsite {\n $hover-icon-wrapper-size: $default-icon-wrapper-size + 4;\n $hover-icon-offset: -$default-icon-offset - 3;\n\n background-size: 28px;\n border-radius: $hover-icon-wrapper-size;\n bottom: $hover-icon-offset;\n height: $hover-icon-wrapper-size;\n inset-inline-end: $hover-icon-offset;\n width: $hover-icon-wrapper-size;\n }\n\n // We want all search shortcuts to have a white background in case they have transparency.\n &.search-shortcut {\n .rich-icon {\n background-color: $white;\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 inset-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 max-height: calc(100% - 40px);\n overflow-y: 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 .section-title {\n font-size: 16px;\n margin: 0 0 16px;\n }\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 pointer-events: none;\n }\n }\n\n .search-shortcuts-container {\n max-width: 700px;\n margin: 0 auto;\n padding: $form-spacing;\n\n > div {\n margin-inline-end: -39px;\n }\n\n .top-site-outer {\n margin-inline-start: 0;\n margin-inline-end: 39px;\n }\n }\n\n .top-site-outer {\n padding: 0;\n margin: 24px 0 0;\n margin-inline-start: $form-spacing;\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 inset-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 inset-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 inset-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 inset-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 // prevent text selection of keyword label when clicking to select\n .title {\n -moz-user-select: none;\n }\n\n // CSS styled checkbox\n [type='checkbox']:not(:checked),\n [type='checkbox']:checked {\n inset-inline-start: -9999px;\n position: absolute;\n }\n\n [type='checkbox']:not(:checked) + label,\n [type='checkbox']:checked + label {\n cursor: pointer;\n display: block;\n position: relative;\n }\n\n $checkbox-offset: -8px;\n\n [type='checkbox']:not(:checked) + label::before,\n [type='checkbox']:checked + label::before {\n background: var(--newtab-background-color);\n border: $input-border;\n border-radius: $border-radius;\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n z-index: 1;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // checkmark\n [type='checkbox']:not(:checked) + label::after,\n [type='checkbox']:checked + label::after {\n background: url('chrome://global/skin/icons/check.svg') no-repeat center center; // sass-lint:disable-line no-url-domains\n content: '';\n height: 21px;\n left: $checkbox-offset;\n position: absolute;\n top: $checkbox-offset;\n width: 21px;\n -moz-context-properties: fill;\n fill: var(--newtab-link-primary-color);\n z-index: 2;\n\n [dir='rtl'] & {\n left: auto;\n right: $checkbox-offset;\n }\n }\n\n // when selected, highlight the tile\n [type='checkbox']:checked + label {\n .tile {\n box-shadow: 0 0 0 2px var(--newtab-link-primary-color);\n }\n }\n\n // checkmark changes\n [type='checkbox']:not(:checked) + label::after {\n opacity: 0;\n }\n\n [type='checkbox']:checked + label::after {\n opacity: 1;\n }\n\n // accessibility\n [type='checkbox']:checked:focus + label::before,\n [type='checkbox']:not(:checked):focus + label::before {\n border: 1px dotted var(--newtab-link-primary-color);\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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", + ".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 // 3n for normal cards, 4n for compact cards\n :nth-child(3n),\n :nth-child(4n) {\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.top-stories-bottom-container {\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 a {\n color: var(--newtab-link-secondary-color);\n font-weight: bold;\n\n &.more-recommendations {\n font-weight: normal;\n font-size: 13px;\n }\n }\n\n @media (min-width: $break-point-large) {\n line-height: 16px;\n height: 16px;\n }\n\n // This is a clearfix to for the more-recommendations 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\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: absolute;\n top: 0;\n left: 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,\nbody.hide-main { // sass-lint:disable-line no-qualifying-elements\n width: 100%;\n height: 100%;\n display: block;\n background-image: url('#{$image-path}fox-tail.png'), $about-welcome-gradient;\n background-position-x: center;\n background-position-y: -200px, top;\n background-repeat: no-repeat;\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 form {\n position: relative;\n }\n\n .extra-links {\n font-size: 12px;\n max-width: 340px;\n margin: 17px 50px;\n color: $about-welcome-extra-links;\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 $email-input-focus;\n }\n\n &.invalid {\n border-color: $red-60;\n }\n\n &.invalid:focus {\n box-shadow: 0 0 0 3px $email-input-invalid;\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: 20px;\n margin-bottom: 20px;\n background-color: $grey-10;\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: $grey-20;\n border-color: $grey-40;\n color: $grey-50;\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\na.firstrun-link { // sass-lint:disable-line no-qualifying-elements\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 &:dir(rtl) {\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\n.error {\n display: none;\n}\n\n.error.active {\n display: block;\n padding: 5px 12px;\n animation: fade-down 450ms;\n font-size: 12px;\n font-weight: 500;\n color: $white;\n background-color: $red-60;\n position: absolute;\n inset-inline-start: 50px;\n top: -28px;\n border-radius: 2px;\n\n &::before {\n inset-inline-start: 12px;\n background: $red-60;\n bottom: -8px;\n content: '.';\n height: 16px;\n position: absolute;\n text-indent: -999px;\n transform: rotate(45deg);\n white-space: nowrap;\n width: 16px;\n z-index: -1;\n }\n}\n\n@keyframes fade-down {\n 0% {\n opacity: 0;\n transform: translateY(-15px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n", ".topics {\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 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", ".search-wrapper {\n $search-height: 48px;\n $search-icon-size: 24px;\n $search-icon-padding: 12px;\n $search-icon-width: 2 * $search-icon-padding + $search-icon-size -2;\n $search-button-width: 48px;\n $glyph-forward: url('chrome://browser/skin/forward.svg');\n\n padding: 34px 0 64px;\n\n @media (max-height: 700px) {\n & {\n padding: 0 0 30px;\n }\n }\n\n .only-search & {\n padding: 0 0 64px;\n }\n\n .logo-and-wordmark {\n $logo-size: 97px;\n $wordmark-size: 142px;\n\n align-items: center;\n display: flex;\n justify-content: center;\n margin-bottom: 49px;\n\n .logo {\n background: url('chrome://branding/content/icon128.png') no-repeat center center;\n background-size: $logo-size;\n display: inline-block;\n height: $logo-size;\n width: $logo-size;\n }\n\n .wordmark {\n background: url('#{$image-path}firefox-wordmark.svg') no-repeat center center;\n background-size: $wordmark-size;\n -moz-context-properties: fill;\n display: inline-block;\n fill: var(--newtab-search-wordmark-color);\n height: $logo-size;\n margin-inline-start: 15px;\n width: $wordmark-size;\n }\n\n @media (max-width: $break-point-small - 1) {\n $logo-size-small: 64px;\n $wordmark-small-size: 100px;\n\n .logo {\n background-size: $logo-size-small;\n height: $logo-size-small;\n width: $logo-size-small;\n }\n\n .wordmark {\n background-size: $wordmark-small-size;\n height: $logo-size-small;\n width: $wordmark-small-size;\n }\n }\n }\n\n .search-inner-wrapper {\n cursor: default;\n display: flex;\n height: $search-height;\n margin: 0 auto;\n position: relative;\n width: $searchbar-width-smallest;\n\n @media (min-width: $break-point-small) {\n width: $searchbar-width-small;\n }\n\n @media (min-width: $break-point-medium) {\n width: $searchbar-width-medium;\n }\n\n @media (min-width: $break-point-large) {\n width: $searchbar-width-large;\n }\n }\n\n input {\n background: var(--newtab-textbox-background-color) var(--newtab-search-icon) $search-icon-padding center no-repeat;\n background-size: $search-icon-size;\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 .search-inner-wrapper: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 inset-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@media (min-height: 701px) {\n .fixed-search {\n main {\n padding-top: 146px;\n }\n\n .search-wrapper {\n $search-header-bar-height: 95px;\n $search-height: 35px;\n $search-icon-size: 16px;\n $search-icon-padding: 16px;\n\n background-color: var(--newtab-search-header-background-color);\n border-bottom: solid 1px var(--newtab-border-secondary-color);\n height: $search-header-bar-height;\n left: 0;\n padding: 30px 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9;\n\n .search-inner-wrapper {\n height: $search-height;\n }\n\n input {\n background-position-x: $search-icon-padding;\n background-size: $search-icon-size;\n\n &:dir(rtl) {\n background-position-x: right $search-icon-padding;\n }\n }\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 .contentSearchHeaderRow > td > img,\n .contentSearchSuggestionRow > td > .historyIcon {\n margin-inline-start: 7px;\n margin-inline-end: 15px;\n }\n}\n", @@ -56,9 +56,9 @@ ".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 a {\n cursor: pointer;\n color: var(--newtab-link-primary-color);\n }\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 inset-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 inset-inline-end: 24px;\n }\n }\n\n &:hover .blockButton {\n display: block;\n }\n\n .icon {\n height: 42px;\n width: 42px;\n margin-inline-end: 12px;\n flex-shrink: 0;\n }\n}\n\n.snippets-preview-banner {\n font-size: 15px;\n line-height: 42px;\n color: $grey-60-70;\n background: $grey-30-60;\n text-align: center;\n position: absolute;\n top: 0;\n width: 100%;\n\n span {\n vertical-align: middle;\n }\n}\n", ".activity-stream {\n &.modal-open {\n overflow: hidden;\n }\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;\n font-size: 15px;\n\n &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\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 &.tall .icon {\n margin-inline-end: 20px;\n }\n\n .ASRouterButton {\n cursor: pointer;\n }\n}\n", - ".NewsletterSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\n }\n}\n", + ".SubmitFormSnippet {\n flex-direction: column;\n flex: 1 1 100%;\n width: 100%;\n\n .ASRouterButton {\n &.primary {\n font-size: 15px;\n flex: 1 1 0;\n }\n }\n\n form {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .message {\n font-size: 14px;\n align-self: stretch;\n flex: 0 0 100%;\n }\n\n .privacy-notice {\n color: var(--newtab-text-secondary-color);\n flex: 0 0 100%;\n }\n\n .innerWrapper {\n max-width: 670px;\n flex-wrap: wrap;\n justify-items: center;\n }\n\n .footer {\n width: 100%;\n margin: 0 auto;\n text-align: right;\n background: $grey-20;\n padding: 10px 0;\n\n .footer-content {\n margin: 0 auto;\n max-width: 768px;\n width: 100%;\n text-align: right;\n }\n }\n\n input {\n &[type='email'] {\n background-color: var(--newtab-textbox-background-color);\n border: $input-border;\n padding: 0 8px;\n height: 32px;\n font-size: 15px;\n width: 50%;\n\n &:focus {\n border: $input-border-active;\n box-shadow: var(--newtab-textbox-focus-boxshadow);\n }\n }\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 $grey-30;\n display: flex;\n margin-bottom: 11px;\n\n &:last-child {\n border: 0;\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: 0;\n }\n }\n }\n\n .onboardingButton {\n background-color: $grey-90-10;\n border: 0;\n width: 150px;\n height: 30px;\n margin-bottom: 23px;\n padding: 4px 0 6px;\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 &:focus,\n &.active,\n &:hover {\n box-shadow: 0 0 0 5px $grey-30;\n transition: box-shadow 150ms;\n }\n }\n\n\n &::before {\n content: '';\n height: 220px;\n width: 1px;\n position: absolute;\n background-color: $grey-30;\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 diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js index 63c998f32af7..b7f729a3593b 100644 --- a/browser/components/newtab/data/content/activity-stream.bundle.js +++ b/browser/components/newtab/data/content/activity-stream.bundle.js @@ -101,7 +101,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(5); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var common_Reducers_jsm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(46); @@ -930,14 +930,14 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var content_src_lib_init_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7); /* harmony import */ var _components_ImpressionsWrapper_ImpressionsWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); /* harmony import */ var fluent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44); -/* harmony import */ var _templates_NewsletterSnippet_NewsletterSnippet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); -/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(47); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11); -/* harmony import */ var _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48); +/* harmony import */ var _templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _template_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11); +/* harmony import */ var _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(47); +/* harmony import */ var _templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; @@ -954,8 +954,9 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument // Key names matching schema name of templates const SnippetComponents = { - simple_snippet: _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_10__["SimpleSnippet"], - newsletter_snippet: _templates_NewsletterSnippet_NewsletterSnippet__WEBPACK_IMPORTED_MODULE_5__["NewsletterSnippet"] + simple_snippet: _templates_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_9__["SimpleSnippet"], + newsletter_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "POST" })), + fxa_signup_snippet: props => react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_SubmitFormSnippet_SubmitFormSnippet__WEBPACK_IMPORTED_MODULE_10__["SubmitFormSnippet"], _extends({}, props, { form_method: "GET" })) }; const INCOMING_MESSAGE_NAME = "ASRouter:parent-to-child"; @@ -1031,12 +1032,12 @@ function generateMessages(content) { // Elements allowed in snippet content const ALLOWED_TAGS = { - b: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("b", null), - i: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("i", null), - u: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("u", null), - strong: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("strong", null), - em: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("em", null), - br: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("br", null) + b: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("b", null), + i: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("i", null), + u: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("u", null), + strong: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("strong", null), + em: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("em", null), + br: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("br", null) }; /** @@ -1048,9 +1049,9 @@ function convertLinks(links, sendClick) { return Object.keys(links).reduce((acc, linkTag) => { const { action } = links[linkTag]; // Setting the value to false will not include the attribute in the anchor - const url = action ? false : Object(_template_utils__WEBPACK_IMPORTED_MODULE_9__["safeURI"])(links[linkTag].url); + const url = action ? false : Object(_template_utils__WEBPACK_IMPORTED_MODULE_8__["safeURI"])(links[linkTag].url); - acc[linkTag] = react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("a", { href: url, + acc[linkTag] = react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("a", { href: url, "data-metric": links[linkTag].metric, "data-action": action, "data-args": links[linkTag].args, @@ -1066,10 +1067,10 @@ function convertLinks(links, sendClick) { * Message wrapper used to sanitize markup and render HTML. */ function RichText(props) { - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( fluent_react__WEBPACK_IMPORTED_MODULE_0__["Localized"], _extends({ id: props.localization_id }, ALLOWED_TAGS, convertLinks(props.links, props.sendClick)), - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "span", null, props.text @@ -1077,7 +1078,7 @@ function RichText(props) { ); } -class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.PureComponent { +class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_6___default.a.PureComponent { constructor(props) { super(props); this.onMessageFromParent = this.onMessageFromParent.bind(this); @@ -1196,13 +1197,13 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur const { content } = this.state.message; if (this.state.message.template === "newsletter_snippet") { - privacyNoticeRichText = react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(RichText, { text: content.scene2_privacy_html, + privacyNoticeRichText = react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(RichText, { text: content.scene2_privacy_html, localization_id: "privacy_notice", links: content.links, sendClick: this.sendClick }); } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( _components_ImpressionsWrapper_ImpressionsWrapper__WEBPACK_IMPORTED_MODULE_3__["ImpressionsWrapper"], { id: "NEWTAB_FOOTER_BAR", @@ -1211,14 +1212,14 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur shouldSendImpressionOnUpdate: shouldSendImpressionOnUpdate // This helps with testing , document: this.props.document }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( fluent_react__WEBPACK_IMPORTED_MODULE_0__["LocalizationProvider"], { messages: generateMessages({ - privacy_notice: content.privacy_notice_text, - snippet_text: content.text + privacy_notice: content.scene2_privacy_html, + snippet_text: content.text || content.scene1_text }) }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(SnippetComponent, _extends({}, this.state.message, { - richText: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(RichText, { text: this.state.message.content.text, + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(SnippetComponent, _extends({}, this.state.message, { + richText: react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(RichText, { text: content.text || content.scene1_text, localization_id: "snippet_text", links: this.state.message.content.links, sendClick: this.sendClick }), @@ -1233,7 +1234,7 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur } renderOnboarding() { - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_6__["OnboardingMessage"], _extends({}, this.state.bundle, { + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_templates_OnboardingMessage_OnboardingMessage__WEBPACK_IMPORTED_MODULE_5__["OnboardingMessage"], _extends({}, this.state.bundle, { UISurface: "NEWTAB_OVERLAY", onAction: ASRouterUtils.executeAction, onDoneButton: this.clearBundle(this.state.bundle.bundle), @@ -1245,11 +1246,11 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur return null; } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "div", { className: "snippets-preview-banner" }, - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("span", { className: "icon icon-small-spacer icon-info" }), - react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement("span", { className: "icon icon-small-spacer icon-info" }), + react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( "span", null, "Preview Purposes Only" @@ -1262,8 +1263,8 @@ class ASRouterUISurface extends react__WEBPACK_IMPORTED_MODULE_7___default.a.Pur if (!message.id && !bundle.template) { return null; } - return react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement( - react__WEBPACK_IMPORTED_MODULE_7___default.a.Fragment, + return react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement( + react__WEBPACK_IMPORTED_MODULE_6___default.a.Fragment, null, this.renderPreviewBanner(), bundle.template === "onboarding" ? this.renderOnboarding() : this.renderSnippets() @@ -1288,11 +1289,11 @@ class ASRouterContent { global.document.body.appendChild(this.containerElement); } - react_dom__WEBPACK_IMPORTED_MODULE_8___default.a.render(react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(ASRouterUISurface, null), this.containerElement); + react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.render(react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(ASRouterUISurface, null), this.containerElement); } _unmount() { - react_dom__WEBPACK_IMPORTED_MODULE_8___default.a.unmountComponentAtNode(this.containerElement); + react_dom__WEBPACK_IMPORTED_MODULE_7___default.a.unmountComponentAtNode(this.containerElement); } init() { @@ -1555,155 +1556,9 @@ ImpressionsWrapper.defaultProps = { /***/ }), /* 10 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewsletterSnippet", function() { return NewsletterSnippet; }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48); -/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } - - - - - -class NewsletterSnippet extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent { - constructor(props) { - super(props); - this.expandSnippet = this.expandSnippet.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - this.state = { - expanded: false, - signupSubmitted: false, - signupSuccess: false - }; - } - - handleSubmit(event) { - var _this = this; - - return _asyncToGenerator(function* () { - let json; - const fetchConfig = { - body: new FormData(_this.refs.newsletterForm), - method: "POST" - }; - - event.preventDefault(); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - - try { - const fetchRequest = new Request(_this.refs.newsletterForm.action, fetchConfig); - const response = yield fetch(fetchRequest); - json = yield response.json(); - } catch (err) { - console.log(err); // eslint-disable-line no-console - } - if (json && json.status === "ok") { - _this.setState({ signupSuccess: true, signupSubmitted: true }); - _this.props.onBlock({ preventDismiss: true }); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - } else { - _this.setState({ signupSuccess: false, signupSubmitted: true }); - _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" }); - } - })(); - } - - expandSnippet() { - this.setState({ - expanded: true, - signupSuccess: false, - signupSubmitted: false - }); - } - - renderHiddenFormInputs() { - const { hidden_inputs } = this.props.content; - - if (!hidden_inputs) { - return null; - } - - return Object.keys(hidden_inputs).map((key, idx) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] })); - } - - renderFormPrivacyNotice() { - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "label", - { className: "privacy-notice", htmlFor: "id_privacy" }, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "p", - null, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "span", - null, - this.props.privacyNoticeRichText - ) - ) - ); - } - - renderSignupSubmitted() { - const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text; - const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null; - - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], { className: this.props.className, - onButtonClick: onButtonClick, - provider: this.props.provider, - content: { button_label: this.props.content.button_label, text: message } }); - } - - renderSignupView() { - const { content } = this.props; - - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__["SnippetBase"], - _extends({}, this.props, { className: "NewsletterSnippet", footerDismiss: true }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "div", - { className: "message" }, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "p", - null, - content.scene2_text - ) - ), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "form", - { action: content.form_action, method: "POST", onSubmit: this.handleSubmit, ref: "newsletterForm" }, - this.renderHiddenFormInputs(), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "div", - null, - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "email", name: "email", required: "required", placeholder: content.scene2_email_placeholder_text, autoFocus: true }), - react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( - "button", - { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" }, - content.scene2_button_label - ) - ), - this.renderFormPrivacyNotice() - ) - ); - } - - render() { - if (this.state.signupSubmitted) { - return this.renderSignupSubmitted(); - } - if (this.state.expanded) { - return this.renderSignupView(); - } - return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], _extends({}, this.props, { onButtonClick: this.expandSnippet })); - } -} +module.exports = ReactDOM; /***/ }), /* 11 */ @@ -1789,9 +1644,178 @@ class SnippetBase extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureCompo /***/ }), /* 13 */ -/***/ (function(module, exports) { +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = ReactDOM; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubmitFormSnippet", function() { return SubmitFormSnippet; }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47); +/* harmony import */ var _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + + + + + +class SubmitFormSnippet extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent { + constructor(props) { + super(props); + this.expandSnippet = this.expandSnippet.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + this.state = { + expanded: false, + signupSubmitted: false, + signupSuccess: false, + disableForm: false + }; + } + + handleSubmit(event) { + var _this = this; + + return _asyncToGenerator(function* () { + let json; + + if (_this.state.disableForm) { + return; + } + + event.preventDefault(); + _this.setState({ disableForm: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "conversion-subscribe-activation", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + + if (_this.props.form_method.toUpperCase() === "GET") { + _this.refs.form.submit(); + return; + } + + const fetchConfig = { + body: new FormData(_this.refs.form), + method: "POST" + }; + + try { + const fetchRequest = new Request(_this.refs.form.action, fetchConfig); + const response = yield fetch(fetchRequest); + json = yield response.json(); + } catch (err) { + console.log(err); // eslint-disable-line no-console + } + if (json && json.status === "ok") { + _this.setState({ signupSuccess: true, signupSubmitted: true }); + _this.props.onBlock({ preventDismiss: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-success", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + } else { + _this.setState({ signupSuccess: false, signupSubmitted: true }); + _this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", value: "subscribe-error", id: "NEWTAB_FOOTER_BAR_CONTENT" }); + } + + _this.setState({ disableForm: false }); + })(); + } + + expandSnippet() { + this.setState({ + expanded: true, + signupSuccess: false, + signupSubmitted: false + }); + } + + renderHiddenFormInputs() { + const { hidden_inputs } = this.props.content; + + if (!hidden_inputs) { + return null; + } + + return Object.keys(hidden_inputs).map((key, idx) => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { key: idx, type: "hidden", name: key, value: hidden_inputs[key] })); + } + + renderFormPrivacyNotice() { + return this.props.privacyNoticeRichText && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "label", + { className: "privacy-notice", htmlFor: "id_privacy" }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "p", + null, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "checkbox", id: "id_privacy", name: "privacy", required: "required" }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "span", + null, + this.props.privacyNoticeRichText + ) + ) + ); + } + + renderSignupSubmitted() { + const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text; + const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], { className: this.props.className, + onButtonClick: onButtonClick, + provider: this.props.provider, + content: { button_label: this.props.content.scene1_button_label, text: message } }); + } + + renderSignupView() { + const { content } = this.props; + + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + _components_SnippetBase_SnippetBase__WEBPACK_IMPORTED_MODULE_2__["SnippetBase"], + _extends({}, this.props, { className: "SubmitFormSnippet", footerDismiss: true }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "div", + { className: "message" }, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "p", + null, + content.scene2_text + ) + ), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "form", + { action: content.form_action, method: this.props.form_method, onSubmit: this.handleSubmit, ref: "form" }, + this.renderHiddenFormInputs(), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "div", + null, + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("input", { type: "email", name: "email", required: "required", placeholder: content.scene2_email_placeholder_text, autoFocus: true }), + react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement( + "button", + { type: "submit", className: "ASRouterButton primary", ref: "formSubmitBtn" }, + content.scene2_button_label + ) + ), + this.renderFormPrivacyNotice() + ) + ); + } + + getFirstSceneContent() { + return Object.keys(this.props.content).filter(key => key.includes("scene1")).reduce((acc, key) => { + acc[key.substr(7)] = this.props.content[key]; + return acc; + }, {}); + } + + render() { + const content = Object.assign({}, this.props.content, this.getFirstSceneContent()); + + if (this.state.signupSubmitted) { + return this.renderSignupSubmitted(); + } + if (this.state.expanded) { + return this.renderSignupView(); + } + return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SimpleSnippet_SimpleSnippet__WEBPACK_IMPORTED_MODULE_1__["SimpleSnippet"], _extends({}, this.props, { content: content, onButtonClick: this.expandSnippet })); + } +} /***/ }), /* 14 */ @@ -8789,6 +8813,138 @@ var reducers = { TopSites, App, ASRouter, Snippets, Prefs, Dialog, Sections, Poc var external_React_ = __webpack_require__(5); var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); +// CONCATENATED MODULE: ./content-src/asrouter/components/Button/Button.jsx + + +const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"]; + +const Button = props => { + const style = {}; + + // Add allowed style tags from props, e.g. props.color becomes style={color: props.color} + for (const tag of ALLOWED_STYLE_TAGS) { + if (typeof props[tag] !== "undefined") { + style[tag] = props[tag]; + } + } + // remove border if bg is set to something custom + if (style.backgroundColor) { + style.border = "0"; + } + + return external_React_default.a.createElement( + "button", + { onClick: props.onClick, + className: props.className || "ASRouterButton", + style: style }, + props.children + ); +}; +// EXTERNAL MODULE: ./content-src/asrouter/template-utils.js +var template_utils = __webpack_require__(11); + +// EXTERNAL MODULE: ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx +var SnippetBase = __webpack_require__(12); + +// CONCATENATED MODULE: ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleSnippet", function() { return SimpleSnippet_SimpleSnippet; }); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + + + + + +const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png"; + +class SimpleSnippet_SimpleSnippet extends external_React_default.a.PureComponent { + constructor(props) { + super(props); + this.onButtonClick = this.onButtonClick.bind(this); + } + + onButtonClick() { + if (this.props.provider !== "preview") { + this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface }); + } + this.props.onAction({ + type: this.props.content.button_action, + data: { args: this.props.content.button_action_args } + }); + if (!this.props.content.do_not_autoblock) { + this.props.onBlock(); + } + } + + renderTitle() { + const { title } = this.props.content; + return title ? external_React_default.a.createElement( + "h3", + { className: "title" }, + title + ) : null; + } + + renderTitleIcon() { + const titleIcon = Object(template_utils["safeURI"])(this.props.content.title_icon); + return titleIcon ? external_React_default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null; + } + + renderButton() { + const { props } = this; + if (!props.content.button_action && !props.onButtonClick) { + return null; + } + + return external_React_default.a.createElement( + Button, + { + onClick: props.onButtonClick || this.onButtonClick, + color: props.content.button_color, + backgroundColor: props.content.button_background_color }, + props.content.button_label + ); + } + + render() { + const { props } = this; + const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`; + return external_React_default.a.createElement( + SnippetBase["SnippetBase"], + _extends({}, props, { className: className }), + external_React_default.a.createElement("img", { src: Object(template_utils["safeURI"])(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }), + external_React_default.a.createElement( + "div", + null, + this.renderTitleIcon(), + " ", + this.renderTitle(), + " ", + external_React_default.a.createElement( + "p", + { className: "body" }, + props.richText || props.content.text + ) + ), + external_React_default.a.createElement( + "div", + null, + this.renderButton() + ) + ); + } +} + +/***/ }), +/* 48 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// EXTERNAL MODULE: external "React" +var external_React_ = __webpack_require__(5); +var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); + // CONCATENATED MODULE: ./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx @@ -8923,138 +9079,6 @@ class OnboardingMessage_OnboardingMessage extends external_React_default.a.PureC } } -/***/ }), -/* 48 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - -// EXTERNAL MODULE: external "React" -var external_React_ = __webpack_require__(5); -var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_); - -// CONCATENATED MODULE: ./content-src/asrouter/components/Button/Button.jsx - - -const ALLOWED_STYLE_TAGS = ["color", "backgroundColor"]; - -const Button = props => { - const style = {}; - - // Add allowed style tags from props, e.g. props.color becomes style={color: props.color} - for (const tag of ALLOWED_STYLE_TAGS) { - if (typeof props[tag] !== "undefined") { - style[tag] = props[tag]; - } - } - // remove border if bg is set to something custom - if (style.backgroundColor) { - style.border = "0"; - } - - return external_React_default.a.createElement( - "button", - { onClick: props.onClick, - className: props.className || "ASRouterButton", - style: style }, - props.children - ); -}; -// EXTERNAL MODULE: ./content-src/asrouter/template-utils.js -var template_utils = __webpack_require__(11); - -// EXTERNAL MODULE: ./content-src/asrouter/components/SnippetBase/SnippetBase.jsx -var SnippetBase = __webpack_require__(12); - -// CONCATENATED MODULE: ./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleSnippet", function() { return SimpleSnippet_SimpleSnippet; }); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - - - - - -const DEFAULT_ICON_PATH = "chrome://branding/content/icon64.png"; - -class SimpleSnippet_SimpleSnippet extends external_React_default.a.PureComponent { - constructor(props) { - super(props); - this.onButtonClick = this.onButtonClick.bind(this); - } - - onButtonClick() { - if (this.props.provider !== "preview") { - this.props.sendUserActionTelemetry({ event: "CLICK_BUTTON", id: this.props.UISurface }); - } - this.props.onAction({ - type: this.props.content.button_action, - data: { args: this.props.content.button_action_args } - }); - if (!this.props.content.do_not_autoblock) { - this.props.onBlock(); - } - } - - renderTitle() { - const { title } = this.props.content; - return title ? external_React_default.a.createElement( - "h3", - { className: "title" }, - title - ) : null; - } - - renderTitleIcon() { - const titleIcon = Object(template_utils["safeURI"])(this.props.content.title_icon); - return titleIcon ? external_React_default.a.createElement("span", { className: "titleIcon", style: { backgroundImage: `url("${titleIcon}")` } }) : null; - } - - renderButton() { - const { props } = this; - if (!props.content.button_action && !props.onButtonClick) { - return null; - } - - return external_React_default.a.createElement( - Button, - { - onClick: props.onButtonClick || this.onButtonClick, - color: props.content.button_color, - backgroundColor: props.content.button_background_color }, - props.content.button_label - ); - } - - render() { - const { props } = this; - const className = `SimpleSnippet${props.content.tall ? " tall" : ""}`; - return external_React_default.a.createElement( - SnippetBase["SnippetBase"], - _extends({}, props, { className: className }), - external_React_default.a.createElement("img", { src: Object(template_utils["safeURI"])(props.content.icon) || DEFAULT_ICON_PATH, className: "icon" }), - external_React_default.a.createElement( - "div", - null, - this.renderTitleIcon(), - " ", - this.renderTitle(), - " ", - external_React_default.a.createElement( - "p", - { className: "body" }, - props.richText || props.content.text - ) - ), - external_React_default.a.createElement( - "div", - null, - this.renderButton() - ) - ); - } -} - /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js.map b/browser/components/newtab/data/content/activity-stream.bundle.js.map index 4c2b4901fd5c..5bf98eeee060 100644 --- a/browser/components/newtab/data/content/activity-stream.bundle.js.map +++ b/browser/components/newtab/data/content/activity-stream.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///./content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///external \"ReactDOM\"","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.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/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/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","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:///./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:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","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/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","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","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","log","SnippetComponents","simple_snippet","newsletter_snippet","NewsletterSnippet","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","links","sendClick","reduce","acc","linkTag","safeURI","metric","args","RichText","props","localization_id","ASRouterUISurface","React","PureComponent","onMessageFromParent","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","dataset","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","privacyNoticeRichText","SnippetComponent","template","scene2_privacy_html","privacy_notice","privacy_notice_text","snippet_text","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","expandSnippet","handleSubmit","expanded","signupSubmitted","signupSuccess","json","fetchConfig","FormData","refs","newsletterForm","method","preventDefault","fetchRequest","Request","onBlock","preventDismiss","renderHiddenFormInputs","hidden_inputs","map","idx","renderFormPrivacyNotice","renderSignupSubmitted","success_text","error_text","onButtonClick","className","button_label","renderSignupView","scene2_text","form_action","scene2_email_placeholder_text","scene2_button_label","protocol","isAllowed","warn","SnippetBase","onBlockClicked","UISurface","renderDismissButton","footerDismiss","block_button_text","onDismiss","dismiss_button_label","containerClassName","PrefsButton","injectIntl","onClick","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","filter","v","join","App","strings","prefs","hash","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","length","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","renderTableHead","renderProviders","providers","label","bucket","lastUpdated","toString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","icon","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","title","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","find","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","backgroundImage","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","checked","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","val","getPattern","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","test","fun","Array","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","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","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","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","onDoneButton","onAction","header","extraTemplateStrings","ALLOWED_STYLE_TAGS","Button","tag","border","DEFAULT_ICON_PATH","button_action_args","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_color","button_background_color","tall","richText","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","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\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);\nconst asrouterContent = new ASRouterContent();\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(\n \n, document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","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\") g = 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","/* 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_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\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 \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\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 \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\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_PREVIEW_MODE\",\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 \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\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_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\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 \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\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","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\";\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\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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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 _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.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"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.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"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\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\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 // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {LocalizationProvider, Localized} from \"fluent-react\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {MessageContext} from \"fluent\";\nimport {NewsletterSnippet} from \"./templates/NewsletterSnippet/NewsletterSnippet\";\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\n// Key names matching schema name of templates\nconst SnippetComponents = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: NewsletterSnippet,\n};\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\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 overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to , not \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 Object.keys(content).forEach(key => {\n cx.addMessages(`${key} = ${content[key]}`);\n });\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: ,\n i: ,\n u: ,\n strong: ,\n em: ,\n 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 const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = ();\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 \n {props.text}\n \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 if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\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 const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(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_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n let privacyNoticeRichText;\n const SnippetComponent = SnippetComponents[this.state.message.template];\n const {content} = this.state.message;\n\n if (this.state.message.template === \"newsletter_snippet\") {\n privacyNoticeRichText = ();\n }\n\n return (\n \n \n }\n privacyNoticeRichText={privacyNoticeRichText}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n onBlock={this.onBlockById(this.state.message.id)}\n onDismiss={this.onDismissById(this.state.message.id)}\n onAction={ASRouterUtils.executeAction}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n \n );\n }\n\n renderOnboarding() {\n return (\n );\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n \n \n Preview Purposes Only\n \n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n \n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\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(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render(, 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","module.exports = React;","module.exports = PropTypes;","/* 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 RPMSendAsyncMessage(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.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(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","module.exports = Redux;","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","import React from \"react\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class NewsletterSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n const fetchConfig = {\n body: new FormData(this.refs.newsletterForm),\n method: \"POST\",\n };\n\n event.preventDefault();\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n try {\n const fetchRequest = new Request(this.refs.newsletterForm.action, fetchConfig);\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n this.props.onBlock({preventDismiss: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) => );\n }\n\n renderFormPrivacyNotice() {\n return (\n \n \n {this.props.privacyNoticeRichText}\n \n );\n }\n\n renderSignupSubmitted() {\n const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text;\n const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null;\n\n return ();\n }\n\n renderSignupView() {\n const {content} = this.props;\n\n return (\n \n {content.scene2_text}\n \n \n {this.renderHiddenFormInputs()}\n \n \n {content.scene2_button_label}\n \n {this.renderFormPrivacyNotice()}\n \n );\n }\n\n render() {\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return ;\n }\n}\n","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","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n \n \n {this.props.content.dismiss_button_label}\n \n \n );\n }\n\n return (\n \n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (\n \n {props.children}\n \n {this.renderDismissButton()}\n );\n }\n}\n","module.exports = ReactDOM;","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 \n \n \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\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\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();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\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[\"asrouter.devtoolsEnabled\"] && window.location.hash === \"#asrouter\") {\n return ();\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\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 const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n \n {prefs.showSearch &&\n \n \n \n \n \n }\n \n {!prefs.migrationExpired &&\n \n \n \n }\n \n \n \n \n \n \n {this.props.isFirstrun && }\n );\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\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 expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"}\n {isBlocked ? null : Show}\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)}\n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n );\n }\n\n renderTableHead() {\n return (\n \n id\n source\n last updated\n \n );\n }\n\n renderProviders() {\n return ({this.renderTableHead()}\n {this.state.providers.map((provider, i) => {\n let label = \"(local)\";\n if (provider.type === \"remote\") {\n label = {provider.url};\n } else if (provider.type === \"remote-settings\") {\n label = `${provider.bucket} (Remote Settings)`;\n }\n return (\n {provider.id}\n {label}\n {provider.lastUpdated ? new Date(provider.lastUpdated).toString() : \"\"}\n );\n })}\n );\n }\n\n render() {\n return (\n AS Router Admin\n Targeting Utilities\n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers\n {this.state.providers ? this.renderProviders() : null}\n Messages\n {this.renderMessages()}\n );\n }\n}\n","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 (\n {message_body.map(msg => )}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (\n \n \n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","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 \n \n \n \n \n \n \n \n \n \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 ;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","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 (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","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","/* 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 (\n {this.props.showLogo &&\n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\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\" ? {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 componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\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 componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\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 // 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(initialized) {\n if (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 {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\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 const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\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 let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n \n ) : (\n \n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n // <-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && (\n {cards}\n )}\n {shouldShowEmptyState &&\n \n \n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n :\n }\n \n {getFormattedMessage(emptyState.message)}\n \n \n }\n {id === \"topstories\" &&\n \n {shouldShowTopics && }\n {shouldShowPocketCta && }\n {read_more_endpoint &&\n }\n }\n \n );\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, Pocket: state.Pocket}))(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();\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push();\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n \n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","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.open_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: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\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-save\",\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","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 || site.searchTopSite) ? 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 ();\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","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 (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n () :\n (option.type !== \"empty\" && )\n ))}\n \n );\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 \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\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","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\" ? {message} : ;\n}\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._getSectionBodyHeight()}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 _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\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 ;\n }\n return ;\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, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n \n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n {showContextMenu &&\n \n }\n \n \n \n \n {this.props.children}\n \n \n \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","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 ();\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","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 AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\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","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","/* 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","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","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 ({name});\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )}\n \n );\n }\n}\n","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 {SearchShortcutsForm} from \"./SearchShortcutsForm\";\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.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.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 const searchShortcuts = topSites.filter(site => !!site.searchTopSite).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: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\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 onEditFormClose() {\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 onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n \n \n \n \n \n \n }\n {showSearchShortcutsForm &&\n \n \n \n \n \n \n }\n \n \n );\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","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\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","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\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n \n \n \n \n \n \n \n \n \n {shortcut.keyword}\n \n \n \n \n \n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n \n \n \n \n \n {this.state.shortcuts.map(shortcut => )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n","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_SEARCH_SHORTCUTS_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 this.onKeyPress = this.onKeyPress.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 // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\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 onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\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.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\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 (\n \n \n \n \n {link.searchTopSite && }\n {showSmallFavicon && }\n \n \n {link.isPinned && }\n {title}\n \n \n {children}\n \n );\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 if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\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 if (!this.props.link.searchTopSite) {\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 } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\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 (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n \n );\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 (\n \n );\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 // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\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 \n ) : (\n \n ));\n }\n return (\n {topSitesUI}\n );\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\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 this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\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 document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ();\n let privacyLink = ();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.intl.formatMessage({id: \"firstrun_invalid_input\"})}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","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","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","/* 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}\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) { // _ \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) { // _- \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}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* 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 * @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 * @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","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} 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}\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 * []\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 * 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 * @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} ids\n * @returns {MessageContext|Array}\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} ids\n * @returns {Promise>}\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","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} 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 * @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","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","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 * \n * …\n * \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","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","/* 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 * 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 * 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","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 * \n * {'Hello, world!'}\n * \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 * \n * {'Hello, { $username }!'}\n * \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 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 \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 * @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 * \n * \n * {'Hello, world!'}\n * \n * \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","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","/* 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 },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: 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 // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\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\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\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.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\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 case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\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 case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\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 Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\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, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","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 \n \n \n {title} \n {this.props.children}\n \n {button_label} \n \n \n \n );\n }\n}\n","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 const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n \n \n \n {content.title} \n {content.text} \n \n \n {content.button_label} \n \n \n \n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n \n \n );\n }\n}\n","import React from \"react\";\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 (\n {props.children}\n );\n};\n","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n this.props.onAction({\n type: this.props.content.button_action,\n data: {args: this.props.content.button_action_args},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? {title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? : null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick) {\n return null;\n }\n\n return (\n {props.content.button_label}\n );\n }\n\n render() {\n const {props} = this;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (\n \n \n {this.renderTitleIcon()} {this.renderTitle()} {props.richText || props.content.text}\n \n {{this.renderButton()}}\n );\n }\n}\n","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","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 (\n \n \n \n {hasImage &&\n \n }\n \n \n {link.type === \"download\" && }\n {link.hostname &&\n \n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n \n }\n \n {link.title}\n {link.description}\n \n \n {icon && !link.context && }\n {link.icon && link.context && }\n {intlID && !link.context && }\n {link.context && {link.context}}\n \n \n \n \n {!props.placeholder && \n {`Open context menu for ${link.title}`}\n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => ;\n","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 (\n \n {this.props.loading ?\n :\n showClearButton && }\n \n {validationError &&\n }\n \n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","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 (\n \n );\n }\n return (\n \n );\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 \n \n \n \n \n \n \n \n \n {this._renderCustomScreenshotInput()}\n \n \n \n \n \n \n \n \n {previewMode ?\n \n \n :\n \n \n }\n \n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./content-src/activity-stream.jsx","webpack:///(webpack)/buildin/global.js","webpack:///./common/Actions.jsm","webpack:///./content-src/lib/snippets.js","webpack:///./content-src/asrouter/asrouter-content.jsx","webpack:///external \"React\"","webpack:///external \"PropTypes\"","webpack:///./content-src/lib/init-store.js","webpack:///external \"Redux\"","webpack:///./content-src/asrouter/components/ImpressionsWrapper/ImpressionsWrapper.jsx","webpack:///external \"ReactDOM\"","webpack:///./content-src/asrouter/template-utils.js","webpack:///./content-src/asrouter/components/SnippetBase/SnippetBase.jsx","webpack:///./content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx","webpack:///./content-src/components/Base/Base.jsx","webpack:///external \"ReactIntl\"","webpack:///./content-src/components/ASRouterAdmin/ASRouterAdmin.jsx","webpack:///./content-src/components/ConfirmDialog/ConfirmDialog.jsx","webpack:///external \"ReactRedux\"","webpack:///./content-src/components/ErrorBoundary/ErrorBoundary.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/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/components/SectionMenu/SectionMenu.jsx","webpack:///./content-src/lib/section-menu-options.js","webpack:///./content-src/components/ComponentPerfTimer/ComponentPerfTimer.jsx","webpack:///./common/PerfService.jsm","webpack:///./content-src/components/MoreRecommendations/MoreRecommendations.jsx","webpack:///./content-src/components/PocketLoggedInCta/PocketLoggedInCta.jsx","webpack:///./content-src/components/Topics/Topics.jsx","webpack:///./content-src/components/TopSites/TopSites.jsx","webpack:///./content-src/components/TopSites/TopSitesConstants.js","webpack:///./content-src/components/TopSites/SearchShortcutsForm.jsx","webpack:///./content-src/components/TopSites/TopSite.jsx","webpack:///./content-src/components/StartupOverlay/StartupOverlay.jsx","webpack:///./content-src/lib/detect-user-session-start.js","webpack:///./content-src/lib/asroutercontent.js","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:///./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:///./common/Dedupe.jsm","webpack:///./common/Reducers.jsm","webpack:///./content-src/asrouter/components/Button/Button.jsx","webpack:///./content-src/asrouter/templates/SimpleSnippet/SimpleSnippet.jsx","webpack:///./content-src/asrouter/components/ModalOverlay/ModalOverlay.jsx","webpack:///./content-src/asrouter/templates/OnboardingMessage/OnboardingMessage.jsx","webpack:///./content-src/components/Card/types.js","webpack:///./content-src/components/Card/Card.jsx","webpack:///./content-src/components/TopSites/TopSiteFormInput.jsx","webpack:///./content-src/components/TopSites/TopSiteForm.jsx"],"names":["store","initStore","global","gActivityStreamPrerenderedState","asrouterContent","sendEventOrAddListener","dispatch","ac","AlsoToMain","type","at","NEW_TAB_STATE_REQUEST","ReactDOM","hydrate","document","location","href","documentElement","lang","gActivityStreamStrings","getElementById","enableASRouterContent","addSnippetsSubscriber","globalImportContext","Window","BACKGROUND_PROCESS","UI_CODE","actionTypes","ASRouterActions","_RouteMessage","action","options","meta","from","to","Error","forEach","o","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","DATABASE_NAME","DATABASE_VERSION","SNIPPETS_OBJECTSTORE_NAME","SNIPPETS_UPDATE_INTERVAL_MS","SNIPPETS_ENABLED_EVENT","SNIPPETS_DISABLED_EVENT","SnippetsMap","Map","constructor","_db","_dispatch","set","key","_dbTransaction","db","put","delete","clear","SNIPPETS_BLOCKLIST_CLEARED","blockList","get","blockSnippetById","id","includes","push","SNIPPETS_BLOCKLIST_UPDATED","disableOnboarding","showFirefoxAccounts","SHOW_FIREFOX_ACCOUNTS","getTotalBookmarksCount","Promise","resolve","TOTAL_BOOKMARKS_REQUEST","RPMAddMessageListener","onMessage","TOTAL_BOOKMARKS_RESPONSE","RPMRemoveMessageListener","getAddonsInfo","ADDONS_INFO_REQUEST","ADDONS_INFO_RESPONSE","connect","_openDB","_restoreFromDb","modifier","reject","transaction","objectStore","onsuccess","event","onerror","error","openRequest","indexedDB","open","deleteDatabase","onupgradeneeded","result","objectStoreNames","contains","createObjectStore","err","console","onversionchange","versionChangeEvent","close","cursorRequest","openCursor","cursor","continue","SnippetsProvider","gSnippetsMap","_onAction","bind","snippetsMap","_refreshSnippets","cachedVersion","appData","version","lastUpdate","needsUpdate","Date","now","snippetsURL","response","fetch","status","payload","text","e","_noSnippetFallback","_showRemoteSnippets","snippetsEl","elementId","innerHTML","scriptEl","getElementsByTagName","relocatedScript","createElement","parentNode","replaceChild","msg","SNIPPET_BLOCKED","concat","style","display","init","Object","assign","keys","window","dispatchEvent","Event","initialized","uninit","snippets","initializing","subscribe","state","getState","Prefs","values","ASRouter","allowLegacySnippets","disableSnippets","Snippets","log","SnippetComponents","simple_snippet","newsletter_snippet","props","fxa_signup_snippet","INCOMING_MESSAGE_NAME","OUTGOING_MESSAGE_NAME","ASR_CONTAINER_ID","ASRouterUtils","addListener","listener","removeListener","sendMessage","RPMSendAsyncMessage","blockById","dismissById","blockBundle","bundle","executeAction","button_action","unblockById","unblockBundle","overrideMessage","sendTelemetry","ping","getPreviewEndpoint","params","URLSearchParams","slice","indexOf","endpoint","URL","url","snippetId","shouldSendImpressionOnUpdate","nextProps","prevProps","message","generateMessages","content","cx","addMessages","ALLOWED_TAGS","b","i","u","strong","em","br","convertLinks","links","sendClick","reduce","acc","linkTag","safeURI","metric","args","RichText","localization_id","ASRouterUISurface","React","PureComponent","onMessageFromParent","sendImpression","sendUserActionTelemetry","extraProps","message_id","eventType","provider","dataset","do_not_autoblock","onBlockById","onDismissById","clearBundle","setState","componentWillMount","trigger","componentWillUnmount","renderSnippets","privacyNoticeRichText","SnippetComponent","template","scene2_privacy_html","privacy_notice","snippet_text","scene1_text","renderOnboarding","renderPreviewBanner","render","defaultProps","ASRouterContent","containerElement","_mount","zIndex","body","appendChild","_unmount","unmountComponentAtNode","MERGE_STORE_ACTION","EARLY_QUEUED_ACTIONS","SAVE_SESSION_PERF_DATA","PAGE_PRERENDERED","mergeStateReducer","mainReducer","prevState","messageMiddleware","next","au","rehydrationMiddleware","_didRehydrate","isMergeStoreAction","isRehydrationRequest","_didRequestInitialState","INIT","queueEarlyMessageMiddleware","_receivedFromMain","_earlyActionQueue","reducers","initialState","createStore","combineReducers","applyMiddleware","ex","dump","JSON","stringify","stack","VISIBLE","VISIBILITY_CHANGE_EVENT","ImpressionsWrapper","sendImpressionOrAddListener","visibilityState","_onVisibilityChange","removeEventListener","addEventListener","componentDidMount","sendOnMount","componentDidUpdate","children","protocol","isAllowed","warn","SnippetBase","onBlockClicked","UISurface","onBlock","renderDismissButton","footerDismiss","block_button_text","onDismiss","dismiss_button_label","containerClassName","className","SubmitFormSnippet","expandSnippet","handleSubmit","expanded","signupSubmitted","signupSuccess","disableForm","json","preventDefault","form_method","toUpperCase","refs","form","submit","fetchConfig","FormData","method","fetchRequest","Request","preventDismiss","renderHiddenFormInputs","hidden_inputs","map","idx","renderFormPrivacyNotice","renderSignupSubmitted","success_text","error_text","onButtonClick","button_label","scene1_button_label","renderSignupView","scene2_text","form_action","scene2_email_placeholder_text","scene2_button_label","getFirstSceneContent","filter","substr","PrefsButton","injectIntl","onClick","intl","formatMessage","addLocaleDataForReactIntl","locale","addLocaleData","parentLocale","debounce","func","wait","timer","wakeUp","setTimeout","apply","_Base","isFirstrun","classList","add","isPrerendered","updateTheme","componentWillUpdate","bodyClassName","v","join","App","strings","prefs","hash","BaseContent","openPreferences","onWindowScroll","fixedSearch","SCROLL_THRESHOLD","scrollY","SETTINGS_OPEN","shouldBeFixedToTop","PrerenderData","arePrefsValid","noSectionsEnabled","Sections","section","enabled","length","outerClassName","showSearch","migrationExpired","Base","ASRouterAdmin","findOtherBundledMessagesOfSameTemplate","messages","bundled","handleBlock","handleUnblock","handleOverride","expireCache","renderMessageItem","isCurrent","lastMessageId","isBlocked","messageBlockList","impressions","messageImpressions","itemClassName","renderMessages","renderTableHead","renderProviders","providers","label","bucket","lastUpdated","toString","_ConfirmDialog","_handleCancelBtn","_handleConfirmBtn","DIALOG_CANCEL","eventSource","onConfirm","_renderModalMessage","message_body","body_string_id","visible","icon","cancel_button_string_id","confirm_button_string_id","ConfirmDialog","Dialog","ErrorBoundaryFallback","windowObj","reload","defaultClass","ErrorBoundary","hasError","componentDidCatch","info","FallbackComponent","_ManualMigration","onLaunchTour","onCancelTour","MIGRATION_START","MIGRATION_CANCEL","ManualMigration","_PrerenderData","initialPrefs","initialSections","_setValidation","validation","_validation","invalidatingPrefs","_invalidatingPrefs","oneOf","getPref","indexedDBPrefs","some","anyModifiedPrefs","prefName","pref","order","title","_Search","onInputMount","handleEvent","detail","gContentSearchController","search","input","healthReportKey","IS_NEWTAB","searchSource","ContentSearchUIController","showLogo","Search","documentURI","CARDS_PER_ROW_DEFAULT","CARDS_PER_ROW_COMPACT_WIDE","getFormattedMessage","Section","numRows","rowsPref","maxRows","_dispatchImpressionStats","cardsPerRow","compactCards","matchMedia","matches","maxCards","cards","rows","needsImpressionStats","tiles","link","guid","impressionCardGuids","sendImpressionStatsOrAddListener","shouldSendImpressionStats","collapsed","sendNewTabRehydrated","isCollapsed","wasCollapsed","renderNotified","NEW_TAB_REHYDRATED","Pocket","topics","emptyState","read_more_endpoint","contextMenuOptions","learnMore","privacyNoticeURL","isFirst","isLast","waitingForSpoc","maxCardsPerRow","maxCardsOnNarrow","pocketCta","isUserLoggedIn","useCta","isPocketLoggedInDefined","shouldShowPocketCta","shouldShowTopics","realRows","shouldShowEmptyState","usePlaceholder","isWebExtension","sectionClassName","feed","padding","startsWith","SectionIntl","_Sections","renderSections","sections","enabledSections","sectionOrder","showTopSites","expectedCount","sectionId","split","commonProps","find","s","_OpenInPrivateWindow","site","OPEN_PRIVATE_WINDOW","referrer","userEvent","GetPlatformString","platform","LinkMenuOptions","Separator","EmptyItem","RemoveBookmark","DELETE_BOOKMARK_BY_ID","bookmarkGuid","AddBookmark","BOOKMARK_URL","OpenInNewWindow","OPEN_NEW_WINDOW","typedBonus","BlockUrl","index","BLOCK_URL","open_url","pocket_id","impression","block","pos","WebExtDismiss","string_id","WEBEXT_DISMISS","action_position","DeleteUrl","isEnabled","siteInfo","DIALOG_OPEN","DELETE_HISTORY_URL","forceBlock","ShowFile","SHOW_DOWNLOAD_FILE","OpenFile","OPEN_DOWNLOAD_FILE","CopyDownloadLink","COPY_DOWNLOAD_LINK","GoToDownloadPage","OPEN_LINK","disabled","RemoveDownload","REMOVE_DOWNLOAD_FILE","PinTopSite","searchTopSite","TOP_SITES_PIN","UnpinTopSite","TOP_SITES_UNPIN","SaveToPocket","SAVE_TO_POCKET","pocket","DeleteFromPocket","DELETE_FROM_POCKET","ArchiveFromPocket","ARCHIVE_FROM_POCKET","EditTopSite","TOP_SITES_EDIT","CheckBookmark","CheckPinTopSite","isPinned","CheckSavedToPocket","CheckBookmarkOrArchive","OpenInPrivateWindow","DEFAULT_SITE_MENU_OPTIONS","_LinkMenu","getOptions","isPrivateBrowsingEnabled","propOptions","isDefault","option","userEventData","first","last","onUpdate","LinkMenu","ContextMenu","hideContext","stopPropagation","ContextMenuItem","onKeyDown","shiftKey","ScreenshotUtils","isBlob","isLocal","image","path","createLocalImageObject","remoteImage","createObjectURL","maybeRevokeBlobObjectURL","localImage","revokeObjectURL","isRemoteImageLocal","_CollapsibleSection","onBodyMount","onHeaderClick","onTransitionEnd","enableOrDisableAnimation","onMenuButtonClick","onMenuButtonMouseEnter","onMenuButtonMouseLeave","onMenuUpdate","enableAnimation","isAnimating","menuButtonHover","showContextMenu","sectionBody","scrollHeight","node","undefined","maxHeight","_getSectionBodyHeight","SectionMenuOptions","CheckCollapsed","div","currentTarget","renderIcon","backgroundImage","isCollapsible","extraMenuOptions","showPrefName","active","bodyStyle","CollapsibleSection","DEFAULT_SECTION_MENU_OPTIONS","WEBEXT_SECTION_MENU_OPTIONS","_SectionMenu","extraOptions","splice","SectionMenu","MoveUp","SECTION_MOVE","direction","MoveDown","RemoveSection","CollapseSection","UPDATE_SECTION_PREFS","ExpandSection","ManageSection","ManageWebExtension","OPEN_WEBEXT_SETTINGS","AddTopSite","AddSearchShortcut","TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL","PrivacyNotice","RECORDED_SECTIONS","ComponentPerfTimer","Component","perfSvc","_sendBadStateEvent","_sendPaintedEvent","_reportMissingData","_timestampHandled","_recordedFirstRender","_maybeSendPaintedEvent","_afterFramePaint","callback","requestAnimationFrame","_maybeSendBadStateEvent","_ensureFirstRenderTsRecorded","mark","dataReadyKey","firstRenderKey","parseInt","getMostRecentAbsMarkStartByName","ChromeUtils","import","usablePerfObj","Services","appShell","hiddenDOMWindow","performance","_PerfService","performanceObj","_perf","prototype","str","getEntriesByName","timeOrigin","absNow","entries","mostRecentEntry","startTime","MoreRecommendations","_PocketLoggedInCta","ctaUrl","ctaButton","ctaText","PocketLoggedInCta","Topic","Topics","t","topSiteIconType","customScreenshotURL","tippyTopIcon","faviconRef","faviconSize","screenshot","countTopSitesIconsTypes","topSites","countTopSitesTypes","_TopSites","onEditFormClose","onSearchShortcutsFormClose","_dispatchTopSitesStats","_getVisibleTopSites","topSitesIconsStats","topSitesPinned","searchShortcuts","topsites_icon_stats","topsites_pinned","topsites_search_shortcuts","sitesPerRow","TopSites","TopSitesRows","TOP_SITES_CANCEL_EDIT","TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL","editForm","showSearchShortcutsForm","topSitesRows","TOP_SITES_SOURCE","TOP_SITES_CONTEXT_MENU_OPTIONS","TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS","MIN_RICH_FAVICON_SIZE","MIN_CORNER_FAVICON_SIZE","SelectableSearchShortcut","shortcut","selected","imageStyle","keyword","onChange","SearchShortcutsForm","handleChange","onCancelButtonClick","onSaveButtonClick","shortcuts","isSelected","row","checked","ev","onClose","pinQueue","unpinQueue","alreadyPinned","_searchTopSite","searchVendor","shortURL","UPDATE_PINNED_SEARCH_SHORTCUTS","addedShortcuts","deletedShortcuts","search_vendor","TopSiteLink","screenshotImage","onDragEvent","onKeyPress","_allowDrop","dataTransfer","types","dragged","effectAllowed","setData","blur","button","getNextStateFromProps","imageInState","nextState","componentWillReceiveProps","defaultStyle","isDraggable","topSiteOuterClassName","isDragged","letterFallback","imageClassName","showSmallFavicon","smallFaviconStyle","smallFaviconFallback","hasScreenshotImage","backgroundColor","favicon","draggableProps","onDragEnd","onDragStart","onMouseDown","TopSite","onLinkClick","_getTelemetryInfo","icon_type","iconType","card_type","hostname","altKey","ctrlKey","metaKey","FILL_SEARCH_TERM","onActivate","isContextMenuOpen","activeIndex","TopSitePlaceholder","onEditButtonClick","_TopSiteList","DEFAULT_STATE","draggedIndex","draggedSite","draggedTitle","topSitesPreview","prevTopSites","newTopSites","dropped","_makeTopSitesPreview","TOP_SITES_INSERT","draggedFromIndex","_getTopSites","pinnedOnly","unpinned","siteToInsert","holeIndex","indexStep","shiftingStep","nextIndex","preview","shift","topSitesUI","maxNarrowVisibleIndex","l","slotProps","TopSiteList","_StartupOverlay","onInputChange","onSubmit","clickSkip","initScene","removeOverlay","onInputInvalid","emailInput","overlayRemoved","flowId","flowBeginTime","didFetch","fxa_endpoint","fxaParams","show","remove","previousSibling","_getFormInfo","has_flow_params","focus","termsLink","privacyLink","terms","privacy","StartupOverlay","DetectUserSessionStart","_store","_perfService","perfService","_sendEvent","visibility_event_rcvd_ts","MAX_PLACEABLES","entryIdentifierRe","identifierRe","functionIdentifierRe","RuntimeParser","getResource","string","_source","_index","_length","errors","skipWS","getEntry","SyntaxError","skipToNextEntryStart","ch","skipComment","skipSection","getMessage","skipInlineWS","getVariantName","getEntryIdentifier","val","getPattern","attrs","lineStart","getAttributes","skipBlankLines","ptr","getIdentifier","re","lastIndex","exec","start","cc","charCodeAt","getString","substring","eol","firstLineContent","getComplexPattern","buffer","placeables","blankLinesStart","blankLinesEnd","ch2","getPlaceable","variants","getVariants","exp","vars","def","selector","getSelectorExpression","literal","getLiteral","getVariantKey","getCallArgs","test","fun","Array","isArray","lastIndexOf","getNumber","num","defaultIndex","cc0","cc1","parse","parser","FluentType","opts","valueOf","FluentNone","FluentNumber","parseFloat","ctx","nf","_memoizeIntlObject","Intl","NumberFormat","format","match","other","FluentDateTime","dtf","DateTimeFormat","FluentSymbol","pr","PluralRules","select","arg","merge","argopts","unwrapped","opt","MAX_PLACEABLE_LENGTH","FSI","PDI","DefaultMember","env","members","RangeError","MessageReference","_terms","_messages","ReferenceError","VariantExpression","Type","isVariantList","variant","variantKey","AttributeExpression","attrName","SelectExpression","keyCanMatch","expr","Pattern","ExternalArgument","FunctionReference","CallExpression","attr","member","hasOwnProperty","TypeError","_functions","builtins","callee","posargs","keyargs","ptn","dirty","has","useIsolating","_useIsolating","elem","part","WeakSet","locales","functions","_intls","WeakMap","Symbol","iterator","hasMessage","ctor","cache","CachedIterable","iterable","asyncIterator","seen","cur","touchNext","done","mapContextSync","ids","getContextForId","context","remainingCount","foundContexts","fill","mapContextAsync","nonBlank","line","countIndent","indent","ftl","code","lines","indents","common","Math","min","RegExp","replace","contexts","subs","Set","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","keygen","param","track","wbr","voidElementTags","menuitem","reMarkup","toArguments","elems","propname","propval","isValidElement","toLowerCase","messageValue","messageAttrs","localizedProps","cloneElement","translationNodes","childNodes","translatedChildren","childNode","nodeType","TEXT_NODE","textContent","localName","sourceChild","Localized","Dedupe","createKey","defaultCreateKey","item","group","groups","globalKeys","valueMap","m","TOP_SITES_DEFAULT_ROWS","TOP_SITES_MAX_SITES_PER_ROW","dedupe","INITIAL_STATE","AS_ROUTER_INITIALIZED","AS_ROUTER_PREF_CHANGED","insertPinned","pinned","pinnedUrls","newLinks","pinIndex","hasMatch","newRows","TOP_SITES_UPDATED","TOP_SITES_PREFS_UPDATED","previewResponse","PREVIEW_RESPONSE","previewUrl","PREVIEW_REQUEST","PREVIEW_REQUEST_CANCEL","SCREENSHOT_UPDATED","PLACES_BOOKMARK_ADDED","bookmarkTitle","dateAdded","bookmarkDateCreated","PLACES_BOOKMARK_REMOVED","newSite","PLACES_LINK_DELETED","UPDATE_SEARCH_SHORTCUTS","SNIPPETS_PREVIEW_MODE","newValues","PREFS_INITIAL_VALUES","PREF_CHANGED","newState","SECTION_DEREGISTER","SECTION_REGISTER","SECTION_UPDATE","card","dedupeConfigurations","dedupeConf","dedupedRows","dedupeFrom","dedupeSectionId","dedupeSection","SECTION_UPDATE_CARD","PLACES_SAVED_TO_POCKET","PLACES_LINK_BLOCKED","SNIPPETS_DATA","SNIPPETS_RESET","POCKET_WAITING_FOR_SPOC","POCKET_LOGGED_IN","POCKET_CTA","cta_button","cta_text","cta_url","use_cta","ALLOWED_STYLE_TAGS","Button","tag","border","DEFAULT_ICON_PATH","onAction","button_action_args","renderTitle","renderTitleIcon","titleIcon","title_icon","renderButton","button_color","button_background_color","tall","richText","onDoneButton","header","extraTemplateStrings","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","validationError","onMount","shouldFocus","showClearButton","onClear","typeUrl","titleId","loading","placeholderId","errorMessageId","TopSiteFormInput","customScreenshotUrl","showCustomScreenshotForm","onClearScreenshotInput","onLabelChange","onUrlChange","onClearUrlClick","onDoneButtonClick","onCustomScreenshotUrlChange","onPreviewButtonClick","onEnableScreenshotUrlForm","validateUrl","_updateCustomScreenshotInput","validateForm","cleanUrl","_tryParseUrl","validProtocols","urlObj","validateCustomScreenshotUrl","validate","_renderCustomScreenshotInput","requestFailed","isLoading","showAsAdd","previous","changed","previewMode","previewLink","TopSiteForm"],"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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {addSnippetsSubscriber} from \"content-src/lib/snippets\";\nimport {ASRouterContent} from \"content-src/asrouter/asrouter-content\";\nimport {Base} from \"content-src/components/Base/Base\";\nimport {DetectUserSessionStart} from \"content-src/lib/detect-user-session-start\";\nimport {enableASRouterContent} from \"content-src/lib/asroutercontent\";\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);\nconst asrouterContent = new ASRouterContent();\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(\n \n, document.getElementById(\"root\"));\n\nenableASRouterContent(store, asrouterContent);\naddSnippetsSubscriber(store);\n","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\") g = 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","/* 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_INITIALIZED\",\n \"AS_ROUTER_PREF_CHANGED\",\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 \"DOWNLOAD_CHANGED\",\n \"FILL_SEARCH_TERM\",\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 \"POCKET_CTA\",\n \"POCKET_LOGGED_IN\",\n \"POCKET_WAITING_FOR_SPOC\",\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_PREVIEW_MODE\",\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 \"TOP_SITES_CANCEL_EDIT\",\n \"TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL\",\n \"TOP_SITES_EDIT\",\n \"TOP_SITES_INSERT\",\n \"TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL\",\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_PINNED_SEARCH_SHORTCUTS\",\n \"UPDATE_SEARCH_SHORTCUTS\",\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 \"INSTALL_ADDON_FROM_URL\",\n \"OPEN_APPLICATIONS_MENU\",\n \"OPEN_PRIVATE_BROWSER_WINDOW\",\n \"OPEN_URL\",\n \"OPEN_ABOUT_PAGE\",\n \"SHOW_FIREFOX_ACCOUNTS\",\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","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\";\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\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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.TOTAL_BOOKMARKS_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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.RPMAddMessageListener(\"ActivityStream:MainToContent\", function onMessage({data: action}) {\n if (action.type === at.ADDONS_INFO_RESPONSE) {\n resolve(action.data);\n global.RPMRemoveMessageListener(\"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 _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.RPMAddMessageListener) {\n global.RPMAddMessageListener(\"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.initialized = true;\n }\n\n uninit() {\n window.dispatchEvent(new Event(SNIPPETS_DISABLED_EVENT));\n if (global.RPMRemoveMessageListener) {\n global.RPMRemoveMessageListener(\"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\n let initializing = false;\n\n store.subscribe(async () => {\n const state = store.getState();\n\n /**\n * Sorry this code is so complicated. It will be removed soon.\n * This is what the different values actually mean:\n *\n * ASRouter.initialized Is ASRouter.jsm initialised?\n * ASRouter.allowLegacySnippets Are ASRouter snippets turned OFF (i.e. legacy snippets are allowed)\n * state.Prefs.values[\"feeds.snippets\"] User preference for snippets\n * state.Snippets.initialized Is SnippetsFeed.jsm initialised?\n * snippets.initialized Is in-content snippets currently initialised?\n * state.Prefs.values.disableSnippets This pref is used to disable legacy snippets in an emergency\n * in a way that is not user-editable (true = disabled)\n */\n\n /** If we should initialize snippets... */\n if (\n state.Prefs.values[\"feeds.snippets\"] &&\n state.ASRouter.initialized &&\n state.ASRouter.allowLegacySnippets &&\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 // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets initialized\"); // eslint-disable-line no-console\n }\n initializing = false;\n\n /** If we should remove snippets... */\n } else if (\n (\n state.Prefs.values[\"feeds.snippets\"] === false ||\n state.Prefs.values.disableSnippets === true ||\n (state.ASRouter.initialized && !state.ASRouter.allowLegacySnippets)\n ) &&\n snippets.initialized\n ) {\n // Remove snippets\n snippets.uninit();\n // istanbul ignore if\n if (state.Prefs.values[\"asrouter.devtoolsEnabled\"]) {\n console.log(\"Legacy snippets removed\"); // eslint-disable-line no-console\n }\n }\n });\n\n // Returned for testing purposes\n return {snippets};\n}\n","import {LocalizationProvider, Localized} from \"fluent-react\";\nimport {actionCreators as ac} from \"common/Actions.jsm\";\nimport {OUTGOING_MESSAGE_NAME as AS_GENERAL_OUTGOING_MESSAGE_NAME} from \"content-src/lib/init-store\";\nimport {ImpressionsWrapper} from \"./components/ImpressionsWrapper/ImpressionsWrapper\";\nimport {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\";\nimport {SubmitFormSnippet} from \"./templates/SubmitFormSnippet/SubmitFormSnippet\";\n\n// Key names matching schema name of templates\nconst SnippetComponents = {\n simple_snippet: SimpleSnippet,\n newsletter_snippet: props => ,\n fxa_signup_snippet: props => ,\n};\n\nconst INCOMING_MESSAGE_NAME = \"ASRouter:parent-to-child\";\nconst OUTGOING_MESSAGE_NAME = \"ASRouter:child-to-parent\";\nconst ASR_CONTAINER_ID = \"asr-newtab-container\";\n\nexport const ASRouterUtils = {\n addListener(listener) {\n global.RPMAddMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n removeListener(listener) {\n global.RPMRemoveMessageListener(INCOMING_MESSAGE_NAME, listener);\n },\n sendMessage(action) {\n global.RPMSendAsyncMessage(OUTGOING_MESSAGE_NAME, action);\n },\n blockById(id, options) {\n ASRouterUtils.sendMessage({type: \"BLOCK_MESSAGE_BY_ID\", data: {id, ...options}});\n },\n dismissById(id) {\n ASRouterUtils.sendMessage({type: \"DISMISS_MESSAGE_BY_ID\", data: {id}});\n },\n blockBundle(bundle) {\n ASRouterUtils.sendMessage({type: \"BLOCK_BUNDLE\", data: {bundle}});\n },\n executeAction(button_action) {\n ASRouterUtils.sendMessage({\n type: \"USER_ACTION\",\n data: button_action,\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 overrideMessage(id) {\n ASRouterUtils.sendMessage({type: \"OVERRIDE_MESSAGE\", data: {id}});\n },\n sendTelemetry(ping) {\n const payload = ac.ASRouterUserEvent(ping);\n global.RPMSendAsyncMessage(AS_GENERAL_OUTGOING_MESSAGE_NAME, payload);\n },\n getPreviewEndpoint() {\n if (window.location.href.includes(\"endpoint\")) {\n const params = new URLSearchParams(window.location.href.slice(window.location.href.indexOf(\"endpoint\")));\n try {\n const endpoint = new URL(params.get(\"endpoint\"));\n return {\n url: endpoint.href,\n snippetId: params.get(\"snippetId\"),\n };\n } catch (e) {}\n }\n\n return null;\n },\n};\n\n// Note: nextProps/prevProps refer to props passed to , not \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 Object.keys(content).forEach(key => {\n cx.addMessages(`${key} = ${content[key]}`);\n });\n return [cx];\n}\n\n// Elements allowed in snippet content\nconst ALLOWED_TAGS = {\n b: ,\n i: ,\n u: ,\n strong: ,\n em: ,\n 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 const {action} = links[linkTag];\n // Setting the value to false will not include the attribute in the anchor\n const url = action ? false : safeURI(links[linkTag].url);\n\n acc[linkTag] = ();\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 \n {props.text}\n \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 if (this.state.message.provider === \"preview\") {\n return;\n }\n\n ASRouterUtils.sendMessage({type: \"IMPRESSION\", data: this.state.message});\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 const action = {\n type: event.target.dataset.action,\n data: {args: event.target.dataset.args},\n };\n if (action.type) {\n ASRouterUtils.executeAction(action);\n }\n if (!this.state.message.content.do_not_autoblock) {\n ASRouterUtils.blockById(this.state.message.id);\n }\n if (this.state.message.provider !== \"preview\") {\n this.sendUserActionTelemetry({event: \"CLICK_BUTTON\", ...metric});\n }\n }\n\n onBlockById(id) {\n return options => ASRouterUtils.blockById(id, options);\n }\n\n onDismissById(id) {\n return () => ASRouterUtils.dismissById(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_PROVIDER\":\n if (action.data.id === this.state.message.provider) {\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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.addListener(this.onMessageFromParent);\n\n // If we are loading about:welcome we want to trigger the onboarding messages\n if (this.props.document.location.href === \"about:welcome\") {\n ASRouterUtils.sendMessage({type: \"TRIGGER\", data: {trigger: {id: \"firstRun\"}}});\n } else {\n ASRouterUtils.sendMessage({type: \"SNIPPETS_REQUEST\", data: {endpoint}});\n }\n }\n\n componentWillUnmount() {\n ASRouterUtils.removeListener(this.onMessageFromParent);\n }\n\n renderSnippets() {\n let privacyNoticeRichText;\n const SnippetComponent = SnippetComponents[this.state.message.template];\n const {content} = this.state.message;\n\n if (this.state.message.template === \"newsletter_snippet\") {\n privacyNoticeRichText = ();\n }\n\n return (\n \n \n }\n privacyNoticeRichText={privacyNoticeRichText}\n UISurface=\"NEWTAB_FOOTER_BAR\"\n onBlock={this.onBlockById(this.state.message.id)}\n onDismiss={this.onDismissById(this.state.message.id)}\n onAction={ASRouterUtils.executeAction}\n sendUserActionTelemetry={this.sendUserActionTelemetry} />\n \n );\n }\n\n renderOnboarding() {\n return (\n );\n }\n\n renderPreviewBanner() {\n if (this.state.message.provider !== \"preview\") {\n return null;\n }\n\n return (\n \n \n Preview Purposes Only\n \n );\n }\n\n render() {\n const {message, bundle} = this.state;\n if (!message.id && !bundle.template) { return null; }\n return (\n \n {this.renderPreviewBanner()}\n {bundle.template === \"onboarding\" ? this.renderOnboarding() : this.renderSnippets()}\n \n );\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(ASR_CONTAINER_ID);\n if (!this.containerElement) {\n this.containerElement = global.document.createElement(\"div\");\n this.containerElement.id = ASR_CONTAINER_ID;\n this.containerElement.style.zIndex = 1;\n global.document.body.appendChild(this.containerElement);\n }\n\n ReactDOM.render(, 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","module.exports = React;","module.exports = PropTypes;","/* 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 RPMSendAsyncMessage(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.RPMAddMessageListener && applyMiddleware(rehydrationMiddleware, queueEarlyMessageMiddleware, messageMiddleware)\n );\n\n store._didRehydrate = false;\n store._didRequestInitialState = false;\n\n if (global.RPMAddMessageListener) {\n global.RPMAddMessageListener(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","module.exports = Redux;","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","module.exports = ReactDOM;","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","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"BLOCK\", id: this.props.UISurface});\n }\n\n this.props.onBlock();\n }\n\n renderDismissButton() {\n if (this.props.footerDismiss) {\n return (\n \n \n {this.props.content.dismiss_button_label}\n \n \n );\n }\n\n return (\n \n );\n }\n\n render() {\n const {props} = this;\n\n const containerClassName = `SnippetBaseContainer${props.className ? ` ${props.className}` : \"\"}`;\n\n return (\n \n {props.children}\n \n {this.renderDismissButton()}\n );\n }\n}\n","import React from \"react\";\nimport {SimpleSnippet} from \"../SimpleSnippet/SimpleSnippet\";\nimport {SnippetBase} from \"../../components/SnippetBase/SnippetBase\";\n\nexport class SubmitFormSnippet extends React.PureComponent {\n constructor(props) {\n super(props);\n this.expandSnippet = this.expandSnippet.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.state = {\n expanded: false,\n signupSubmitted: false,\n signupSuccess: false,\n disableForm: false,\n };\n }\n\n async handleSubmit(event) {\n let json;\n\n if (this.state.disableForm) {\n return;\n }\n\n event.preventDefault();\n this.setState({disableForm: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"conversion-subscribe-activation\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n\n if (this.props.form_method.toUpperCase() === \"GET\") {\n this.refs.form.submit();\n return;\n }\n\n const fetchConfig = {\n body: new FormData(this.refs.form),\n method: \"POST\",\n };\n\n try {\n const fetchRequest = new Request(this.refs.form.action, fetchConfig);\n const response = await fetch(fetchRequest);\n json = await response.json();\n } catch (err) {\n console.log(err); // eslint-disable-line no-console\n }\n if (json && json.status === \"ok\") {\n this.setState({signupSuccess: true, signupSubmitted: true});\n this.props.onBlock({preventDismiss: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-success\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n } else {\n this.setState({signupSuccess: false, signupSubmitted: true});\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", value: \"subscribe-error\", id: \"NEWTAB_FOOTER_BAR_CONTENT\"});\n }\n\n this.setState({disableForm: false});\n }\n\n expandSnippet() {\n this.setState({\n expanded: true,\n signupSuccess: false,\n signupSubmitted: false,\n });\n }\n\n renderHiddenFormInputs() {\n const {hidden_inputs} = this.props.content;\n\n if (!hidden_inputs) {\n return null;\n }\n\n return Object.keys(hidden_inputs).map((key, idx) => );\n }\n\n renderFormPrivacyNotice() {\n return this.props.privacyNoticeRichText && (\n \n \n {this.props.privacyNoticeRichText}\n \n );\n }\n\n renderSignupSubmitted() {\n const message = this.state.signupSuccess ? this.props.content.success_text : this.props.content.error_text;\n const onButtonClick = !this.state.signupSuccess ? this.expandSnippet : null;\n\n return ();\n }\n\n renderSignupView() {\n const {content} = this.props;\n\n return (\n \n {content.scene2_text}\n \n \n {this.renderHiddenFormInputs()}\n \n \n {content.scene2_button_label}\n \n {this.renderFormPrivacyNotice()}\n \n );\n }\n\n getFirstSceneContent() {\n return Object.keys(this.props.content).filter(key => key.includes(\"scene1\")).reduce((acc, key) => {\n acc[key.substr(7)] = this.props.content[key];\n return acc;\n }, {});\n }\n\n render() {\n const content = {...this.props.content, ...this.getFirstSceneContent()};\n\n if (this.state.signupSubmitted) {\n return this.renderSignupSubmitted();\n }\n if (this.state.expanded) {\n return this.renderSignupView();\n }\n return ;\n }\n}\n","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 \n \n \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\n// Returns a function will not be continuously triggered when called. The\n// function will be triggered if called again after `wait` milliseconds.\nfunction debounce(func, wait) {\n let timer;\n return (...args) => {\n if (timer) { return; }\n\n let wakeUp = () => { timer = null; };\n\n timer = setTimeout(wakeUp, wait);\n func.apply(this, args);\n };\n}\n\nexport class _Base extends React.PureComponent {\n componentWillMount() {\n const {locale} = this.props;\n addLocaleDataForReactIntl(locale);\n if (this.props.isFirstrun) {\n global.document.body.classList.add(\"welcome\", \"hide-main\");\n }\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();\n }\n\n componentWillUpdate() {\n this.updateTheme();\n }\n\n updateTheme() {\n const bodyClassName = [\n \"activity-stream\",\n // If we skipped the about:welcome overlay and removed the CSS classes\n // we don't want to add them back to the Activity Stream view\n document.body.classList.contains(\"welcome\") ? \"welcome\" : \"\",\n document.body.classList.contains(\"hide-main\") ? \"hide-main\" : \"\",\n ].filter(v => v).join(\" \");\n global.document.body.className = bodyClassName;\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[\"asrouter.devtoolsEnabled\"] && window.location.hash === \"#asrouter\") {\n return ();\n }\n\n if (!props.isPrerendered && !initialized) {\n return null;\n }\n\n return (\n \n \n \n );\n }\n}\n\nexport class BaseContent extends React.PureComponent {\n constructor(props) {\n super(props);\n this.openPreferences = this.openPreferences.bind(this);\n this.onWindowScroll = debounce(this.onWindowScroll.bind(this), 5);\n this.state = {fixedSearch: false};\n }\n\n componentDidMount() {\n global.addEventListener(\"scroll\", this.onWindowScroll);\n }\n\n componentWillUnmount() {\n global.removeEventListener(\"scroll\", this.onWindowScroll);\n }\n\n onWindowScroll() {\n const SCROLL_THRESHOLD = 34;\n if (global.scrollY > SCROLL_THRESHOLD && !this.state.fixedSearch) {\n this.setState({fixedSearch: true});\n } else if (global.scrollY <= SCROLL_THRESHOLD && this.state.fixedSearch) {\n this.setState({fixedSearch: false});\n }\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 const noSectionsEnabled = !prefs[\"feeds.topsites\"] && props.Sections.filter(section => section.enabled).length === 0;\n\n const outerClassName = [\n \"outer-wrapper\",\n shouldBeFixedToTop && \"fixed-to-top\",\n prefs.showSearch && this.state.fixedSearch && !noSectionsEnabled && \"fixed-search\",\n prefs.showSearch && noSectionsEnabled && \"only-search\",\n ].filter(v => v).join(\" \");\n\n return (\n \n \n \n {prefs.showSearch &&\n \n \n \n \n \n }\n \n {!prefs.migrationExpired &&\n \n \n \n }\n \n \n \n \n \n \n {this.props.isFirstrun && }\n );\n }\n}\n\nexport const Base = connect(state => ({App: state.App, Prefs: state.Prefs, Sections: state.Sections}))(_Base);\n","module.exports = ReactIntl;","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 const endpoint = ASRouterUtils.getPreviewEndpoint();\n ASRouterUtils.sendMessage({type: \"ADMIN_CONNECT_STATE\", data: {endpoint}});\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 expireCache() {\n ASRouterUtils.sendMessage({type: \"EXPIRE_QUERY_CACHE\"});\n }\n\n renderMessageItem(msg) {\n const isCurrent = msg.id === this.state.lastMessageId;\n const isBlocked = this.state.messageBlockList.includes(msg.id);\n const impressions = this.state.messageImpressions[msg.id] ? this.state.messageImpressions[msg.id].length : 0;\n\n let itemClassName = \"message-item\";\n if (isCurrent) { itemClassName += \" current\"; }\n if (isBlocked) { itemClassName += \" blocked\"; }\n\n return (\n {msg.id} \n \n {isBlocked ? \"Unblock\" : \"Block\"}\n {isBlocked ? null : Show}\n ({impressions} impressions)\n \n \n {JSON.stringify(msg, null, 2)}\n \n );\n }\n\n renderMessages() {\n if (!this.state.messages) {\n return null;\n }\n return (\n {this.state.messages.map(msg => this.renderMessageItem(msg))}\n );\n }\n\n renderTableHead() {\n return (\n \n id\n source\n last updated\n \n );\n }\n\n renderProviders() {\n return ({this.renderTableHead()}\n {this.state.providers.map((provider, i) => {\n let label = \"(local)\";\n if (provider.type === \"remote\") {\n label = {provider.url};\n } else if (provider.type === \"remote-settings\") {\n label = `${provider.bucket} (Remote Settings)`;\n }\n return (\n {provider.id}\n {label}\n {provider.lastUpdated ? new Date(provider.lastUpdated).toString() : \"\"}\n );\n })}\n );\n }\n\n render() {\n return (\n AS Router Admin\n Targeting Utilities\n Expire Cache (This expires the cache in ASR Targeting for bookmarks and top sites)\n Message Providers\n {this.state.providers ? this.renderProviders() : null}\n Messages\n {this.renderMessages()}\n );\n }\n}\n","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 (\n {message_body.map(msg => )}\n );\n }\n\n render() {\n if (!this.props.visible) {\n return null;\n }\n\n return (\n \n \n \n {this.props.data.icon && }\n {this._renderModalMessage()}\n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ConfirmDialog = connect(state => state.Dialog)(_ConfirmDialog);\n","module.exports = ReactRedux;","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 \n \n \n \n \n \n \n \n \n \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 ;\n }\n}\n\nErrorBoundary.defaultProps = {FallbackComponent: ErrorBoundaryFallback};\n","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 (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const ManualMigration = connect()(_ManualMigration);\n","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","/* 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 (\n {this.props.showLogo &&\n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport const Search = connect()(injectIntl(_Search));\n","export const IS_NEWTAB = global.document && global.document.documentURI === \"about:newtab\";\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {Card, PlaceholderCard} from \"content-src/components/Card/Card\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport {CollapsibleSection} from \"content-src/components/CollapsibleSection/CollapsibleSection\";\nimport {ComponentPerfTimer} from \"content-src/components/ComponentPerfTimer/ComponentPerfTimer\";\nimport {connect} from \"react-redux\";\nimport {MoreRecommendations} from \"content-src/components/MoreRecommendations/MoreRecommendations\";\nimport {PocketLoggedInCta} from \"content-src/components/PocketLoggedInCta/PocketLoggedInCta\";\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\" ? {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 componentWillMount() {\n this.sendNewTabRehydrated(this.props.initialized);\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 componentWillUpdate(nextProps) {\n this.sendNewTabRehydrated(nextProps.initialized);\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 // 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(initialized) {\n if (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 {\n id, eventSource, title, icon, rows, Pocket, topics,\n emptyState, dispatch, compactCards, read_more_endpoint,\n contextMenuOptions, initialized, learnMore,\n pref, privacyNoticeURL, isFirst, isLast,\n } = this.props;\n\n const waitingForSpoc = id === \"topstories\" && this.props.Pocket.waitingForSpoc;\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 const {pocketCta, isUserLoggedIn} = Pocket || {};\n const {useCta} = pocketCta || {};\n\n // Don't display anything until we have a definitve result from Pocket,\n // to avoid a flash of logged out state while we render.\n const isPocketLoggedInDefined = (isUserLoggedIn === true || isUserLoggedIn === false);\n\n const shouldShowPocketCta = (id === \"topstories\" &&\n useCta && isUserLoggedIn === false);\n\n // Show topics only for top stories and if it has loaded with topics.\n // The classs .top-stories-bottom-container ensures content doesn't shift as things load.\n const shouldShowTopics = (id === \"topstories\" &&\n (topics && topics.length > 0) &&\n ((useCta && isUserLoggedIn === true) || (!useCta && isPocketLoggedInDefined)));\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 let usePlaceholder = !link;\n // If we are in the third card and waiting for spoc,\n // use the placeholder.\n if (!usePlaceholder && i === 2 && waitingForSpoc) {\n usePlaceholder = true;\n }\n cards.push(!usePlaceholder ? (\n \n ) : (\n \n ));\n }\n }\n\n const sectionClassName = [\n \"section\",\n compactCards ? \"compact-cards\" : \"normal-cards\",\n ].join(\" \");\n\n // <-- React component\n // <-- HTML5 element\n return (\n \n\n {!shouldShowEmptyState && (\n {cards}\n )}\n {shouldShowEmptyState &&\n \n \n {emptyState.icon && emptyState.icon.startsWith(\"moz-extension://\") ?\n :\n }\n \n {getFormattedMessage(emptyState.message)}\n \n \n }\n {id === \"topstories\" &&\n \n {shouldShowTopics && }\n {shouldShowPocketCta && }\n {read_more_endpoint &&\n }\n }\n \n );\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, Pocket: state.Pocket}))(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();\n } else {\n const section = enabledSections.find(s => s.id === sectionId);\n if (section) {\n sections.push();\n }\n }\n }\n return sections;\n }\n\n render() {\n return (\n \n {this.renderSections()}\n \n );\n }\n}\n\nexport const Sections = connect(state => ({Sections: state.Sections, Prefs: state.Prefs}))(_Sections);\n","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.open_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: ({url, searchTopSite, label}, index) => ({\n id: \"menu_action_pin\",\n icon: \"pin\",\n action: ac.AlsoToMain({\n type: at.TOP_SITES_PIN,\n data: {\n site: {\n url,\n ...(searchTopSite && {searchTopSite, label}),\n },\n index,\n },\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-save\",\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","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 || site.searchTopSite) ? 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 ();\n }\n}\n\nconst getState = state => ({isPrivateBrowsingEnabled: state.Prefs.values.isPrivateBrowsingEnabled, platform: state.Prefs.values.platform});\nexport const LinkMenu = connect(getState)(injectIntl(_LinkMenu));\n","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 (\n \n {this.props.options.map((option, i) => (option.type === \"separator\" ?\n () :\n (option.type !== \"empty\" && )\n ))}\n \n );\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 \n \n {option.icon && }\n {option.label}\n \n );\n }\n}\n","/**\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","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\" ? {message} : ;\n}\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._getSectionBodyHeight()}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 _getSectionBodyHeight() {\n const div = this.sectionBody;\n if (div.style.display === \"none\") {\n // If the div isn't displayed, we can't get it's height. So we display it\n // to get the height (it doesn't show up because max-height is set to 0px\n // in CSS). We don't undo this because we are about to expand the section.\n div.style.display = \"block\";\n }\n return div.scrollHeight;\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 ;\n }\n return ;\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, learnMore, title, extraMenuOptions, showPrefName, privacyNoticeURL, dispatch, isFirst, isLast, isWebExtension} = this.props;\n const active = menuButtonHover || showContextMenu;\n let bodyStyle;\n if (isAnimating && !collapsed) {\n bodyStyle = {maxHeight};\n } else if (!isAnimating && collapsed) {\n bodyStyle = {display: \"none\"};\n }\n return (\n \n \n \n \n \n {this.renderIcon()}\n {getFormattedMessage(title)}\n \n \n {isCollapsible && }\n \n \n {learnMore &&\n \n \n \n \n \n }\n \n \n \n \n \n \n \n \n \n {showContextMenu &&\n \n }\n \n \n \n \n {this.props.children}\n \n \n \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","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 ();\n }\n}\n\nexport const SectionMenu = injectIntl(_SectionMenu);\n","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 AddSearchShortcut: section => ({\n id: \"section_menu_action_add_search_engine\",\n icon: \"search\",\n action: {type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL},\n userEvent: \"MENU_ADD_SEARCH\",\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","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","/* 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","import {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class MoreRecommendations extends React.PureComponent {\n render() {\n const {read_more_endpoint} = this.props;\n if (read_more_endpoint) {\n return (\n \n \n \n );\n }\n return null;\n }\n}\n","import {connect} from \"react-redux\";\nimport {FormattedMessage} from \"react-intl\";\nimport React from \"react\";\n\nexport class _PocketLoggedInCta extends React.PureComponent {\n render() {\n const {pocketCta} = this.props.Pocket;\n return (\n \n \n {pocketCta.ctaButton ? pocketCta.ctaButton : }\n \n\n \n \n {pocketCta.ctaText ? pocketCta.ctaText : }\n \n \n \n );\n }\n}\n\nexport const PocketLoggedInCta = connect(state => ({Pocket: state.Pocket}))(_PocketLoggedInCta);\n","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 ({name});\n }\n}\n\nexport class Topics extends React.PureComponent {\n render() {\n const {topics} = this.props;\n return (\n \n \n {topics && topics.map(t => )}\n \n );\n }\n}\n","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 {SearchShortcutsForm} from \"./SearchShortcutsForm\";\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.onEditFormClose = this.onEditFormClose.bind(this);\n this.onSearchShortcutsFormClose = this.onSearchShortcutsFormClose.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 const searchShortcuts = topSites.filter(site => !!site.searchTopSite).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: {\n topsites_icon_stats: topSitesIconsStats,\n topsites_pinned: topSitesPinned,\n topsites_search_shortcuts: searchShortcuts,\n },\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 onEditFormClose() {\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 onSearchShortcutsFormClose() {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_CLOSE\",\n }));\n this.props.dispatch({type: at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL});\n }\n\n render() {\n const {props} = this;\n const {editForm, showSearchShortcutsForm} = props.TopSites;\n const extraMenuOptions = [\"AddTopSite\"];\n if (props.Prefs.values[\"improvesearch.topSiteSearchShortcuts\"]) {\n extraMenuOptions.push(\"AddSearchShortcut\");\n }\n\n return (\n \n \n \n {editForm &&\n \n \n \n \n \n \n }\n {showSearchShortcutsForm &&\n \n \n \n \n \n \n }\n \n \n );\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","export const TOP_SITES_SOURCE = \"TOP_SITES\";\nexport const TOP_SITES_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"EditTopSite\", \"Separator\",\n \"OpenInNewWindow\", \"OpenInPrivateWindow\", \"Separator\", \"BlockUrl\", \"DeleteUrl\"];\n// the special top site for search shortcut experiment can only have the option to unpin (which removes) the topsite\nexport const TOP_SITES_SEARCH_SHORTCUTS_CONTEXT_MENU_OPTIONS = [\"CheckPinTopSite\", \"Separator\", \"BlockUrl\"];\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","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\";\n\nclass SelectableSearchShortcut extends React.PureComponent {\n render() {\n const {shortcut, selected} = this.props;\n const imageStyle = {backgroundImage: `url(\"${shortcut.tippyTopIcon}\")`};\n return (\n \n \n \n \n \n \n \n \n \n \n {shortcut.keyword}\n \n \n \n \n \n );\n }\n}\n\nexport class SearchShortcutsForm extends React.PureComponent {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n this.onSaveButtonClick = this.onSaveButtonClick.bind(this);\n\n // clone the shortcuts and add them to the state so we can add isSelected property\n const shortcuts = [];\n const {rows, searchShortcuts} = props.TopSites;\n searchShortcuts.forEach(shortcut => {\n shortcuts.push({\n ...shortcut,\n isSelected: !!rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword),\n });\n });\n this.state = {shortcuts};\n }\n\n handleChange(event) {\n const {target} = event;\n const {name, checked} = target;\n this.setState(prevState => {\n const shortcuts = prevState.shortcuts.slice();\n let shortcut = shortcuts.find(({keyword}) => keyword === name);\n shortcut.isSelected = checked;\n return {shortcuts};\n });\n }\n\n onCancelButtonClick(ev) {\n ev.preventDefault();\n this.props.onClose();\n }\n\n onSaveButtonClick(ev) {\n ev.preventDefault();\n\n // Check if there were any changes and act accordingly\n const {rows} = this.props.TopSites;\n const pinQueue = [];\n const unpinQueue = [];\n this.state.shortcuts.forEach(shortcut => {\n const alreadyPinned = rows.find(row => row && row.isPinned && row.searchTopSite && row.label === shortcut.keyword);\n if (shortcut.isSelected && !alreadyPinned) {\n pinQueue.push(this._searchTopSite(shortcut));\n } else if (!shortcut.isSelected && alreadyPinned) {\n unpinQueue.push({url: alreadyPinned.url, searchVendor: shortcut.shortURL});\n }\n });\n\n // Tell the feed to do the work.\n this.props.dispatch(ac.OnlyToMain({\n type: at.UPDATE_PINNED_SEARCH_SHORTCUTS,\n data: {\n addedShortcuts: pinQueue,\n deletedShortcuts: unpinQueue,\n },\n }));\n\n // Send the Telemetry pings.\n pinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_ADD\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n unpinQueue.forEach(shortcut => {\n this.props.dispatch(ac.UserEvent({\n source: TOP_SITES_SOURCE,\n event: \"SEARCH_EDIT_DELETE\",\n value: {search_vendor: shortcut.searchVendor},\n }));\n });\n\n this.props.onClose();\n }\n\n _searchTopSite(shortcut) {\n return {\n url: shortcut.url,\n searchTopSite: true,\n label: shortcut.keyword,\n searchVendor: shortcut.shortURL,\n };\n }\n\n render() {\n return (\n \n \n \n \n \n \n {this.state.shortcuts.map(shortcut => )}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n","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_SEARCH_SHORTCUTS_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 this.onKeyPress = this.onKeyPress.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 // Block the scroll wheel from appearing for middle clicks on search top sites\n if (event.button === 1 && this.props.link.searchTopSite) {\n event.preventDefault();\n }\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 onKeyPress(event) {\n // If we have tabbed to a search shortcut top site, and we click 'enter',\n // we should execute the onClick function. This needs to be added because\n // search top sites are anchor tags without an href. See bug 1483135\n if (this.props.link.searchTopSite && event.key === \"Enter\") {\n this.props.onClick(event);\n }\n }\n\n render() {\n const {children, className, defaultStyle, isDraggable, link, onClick, title} = this.props;\n const topSiteOuterClassName = `top-site-outer${className ? ` ${className}` : \"\"}${link.isDragged ? \" dragged\" : \"\"}${link.searchTopSite ? \" search-shortcut\" : \"\"}`;\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.searchTopSite) {\n imageClassName = \"top-site-icon rich-icon\";\n imageStyle = {\n backgroundColor: link.backgroundColor,\n backgroundImage: `url(${tippyTopIcon})`,\n };\n smallFaviconStyle = {backgroundImage: `url(${tippyTopIcon})`};\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 (\n \n \n \n \n {link.searchTopSite && }\n {showSmallFavicon && }\n \n \n {link.isPinned && }\n {title}\n \n \n {children}\n \n );\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 if (this.props.link.searchTopSite) {\n // Set the card_type as \"search\" regardless of its pinning status\n value.card_type = \"search\";\n value.search_vendor = this.props.link.hostname;\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 if (!this.props.link.searchTopSite) {\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 } else {\n this.props.dispatch(ac.OnlyToMain({\n type: at.FILL_SEARCH_TERM,\n data: {label: this.props.link.label},\n }));\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 (\n \n \n \n \n \n \n {isContextMenuOpen &&\n \n }\n \n );\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 (\n \n );\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 // Only if the search topsites experiment is enabled\n ...(this.state.draggedSite.searchTopSite && {searchTopSite: true}),\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 \n ) : (\n \n ));\n }\n return (\n {topSitesUI}\n );\n }\n}\n\nexport const TopSiteList = injectIntl(_TopSiteList);\n","import {actionCreators as ac, actionTypes as at} from \"common/Actions.jsm\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\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 this.onInputInvalid = this.onInputInvalid.bind(this);\n\n this.state = {\n emailInput: \"\",\n overlayRemoved: false,\n flowId: \"\",\n flowBeginTime: 0,\n };\n this.didFetch = false;\n }\n\n async componentWillUpdate() {\n if (this.props.fxa_endpoint && !this.didFetch) {\n try {\n this.didFetch = true;\n const fxaParams = \"entrypoint=activity-stream-firstrun&utm_source=activity-stream&utm_campaign=firstrun&form_type=email\";\n const response = await fetch(`${this.props.fxa_endpoint}/metrics-flow?${fxaParams}`);\n if (response.status === 200) {\n const {flowId, flowBeginTime} = await response.json();\n this.setState({flowId, flowBeginTime});\n } else {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_FETCH_ERROR\", value: response.status}}));\n }\n } catch (error) {\n this.props.dispatch(ac.OnlyToMain({type: at.TELEMETRY_UNDESIRED_EVENT, data: {event: \"FXA_METRICS_ERROR\"}}));\n }\n }\n }\n\n componentDidMount() {\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 document.body.classList.remove(\"hide-main\");\n this.setState({show: false});\n setTimeout(() => {\n // Allow scrolling and fully remove overlay after animation finishes.\n document.body.classList.remove(\"welcome\");\n this.setState({overlayRemoved: true});\n }, 400);\n }\n\n onInputChange(e) {\n let error = e.target.previousSibling;\n this.setState({emailInput: e.target.value});\n error.classList.remove(\"active\");\n e.target.classList.remove(\"invalid\");\n }\n\n onSubmit() {\n this.props.dispatch(ac.UserEvent({event: \"SUBMIT_EMAIL\", ...this._getFormInfo()}));\n\n window.addEventListener(\"visibilitychange\", this.removeOverlay);\n }\n\n clickSkip() {\n this.props.dispatch(ac.UserEvent({event: \"SKIPPED_SIGNIN\", ...this._getFormInfo()}));\n this.removeOverlay();\n }\n\n /**\n * Report to telemetry additional information about the form submission.\n */\n _getFormInfo() {\n const value = {has_flow_params: this.state.flowId.length > 0};\n return {value};\n }\n\n onInputInvalid(e) {\n let error = e.target.previousSibling;\n error.classList.add(\"active\");\n e.target.classList.add(\"invalid\");\n e.preventDefault(); // Override built-in form validation popup\n e.target.focus();\n }\n\n render() {\n // When skipping the onboarding tour we show AS but we are still on\n // about:welcome, prop.isFirstrun is true and StartupOverlay is rendered\n if (this.state.overlayRemoved) {\n return null;\n }\n\n let termsLink = ();\n let privacyLink = ();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.intl.formatMessage({id: \"firstrun_invalid_input\"})}\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nconst getState = state => ({fxa_endpoint: state.Prefs.values.fxa_endpoint});\nexport const StartupOverlay = connect(getState)(injectIntl(_StartupOverlay));\n","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","export function enableASRouterContent(store, asrouterContent) {\n // Enable asrouter content\n store.subscribe(() => {\n const state = store.getState();\n if (!state.ASRouter.initialized) {\n return;\n }\n\n if (!asrouterContent.initialized) {\n asrouterContent.init();\n }\n });\n // Return this for testing purposes\n return {asrouterContent};\n}\n","/* 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}\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) { // _ \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) { // _- \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}\n */\nexport default function parse(string) {\n const parser = new RuntimeParser();\n return parser.getResource(string);\n}\n","/* 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 * @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 * @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","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} 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}\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 * []\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 * 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 * @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} ids\n * @returns {MessageContext|Array}\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} ids\n * @returns {Promise>}\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","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} 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 * @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","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","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 * \n * …\n * \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","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","/* 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 * 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 * 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","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 * \n * {'Hello, world!'}\n * \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 * \n * {'Hello, { $username }!'}\n * \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 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 \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 * @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 * \n * \n * {'Hello, world!'}\n * \n * \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","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","/* 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 },\n ASRouter: {\n initialized: false,\n allowLegacySnippets: 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 // Used in content only to open the SearchShortcutsForm modal.\n showSearchShortcutsForm: false,\n // The list of available search shortcuts.\n searchShortcuts: [],\n },\n Prefs: {\n initialized: false,\n values: {},\n },\n Dialog: {\n visible: false,\n data: {},\n },\n Sections: [],\n Pocket: {\n isUserLoggedIn: null,\n pocketCta: {},\n waitingForSpoc: true,\n },\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\nfunction ASRouter(prevState = INITIAL_STATE.ASRouter, action) {\n switch (action.type) {\n case at.AS_ROUTER_INITIALIZED:\n return {...action.data, initialized: true};\n case at.AS_ROUTER_PREF_CHANGED:\n return {...prevState, ...action.data};\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.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: true});\n case at.TOP_SITES_CLOSE_SEARCH_SHORTCUTS_MODAL:\n return Object.assign({}, prevState, {showSearchShortcutsForm: false});\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 case at.UPDATE_SEARCH_SHORTCUTS:\n return {...prevState, searchShortcuts: action.data.searchShortcuts};\n case at.SNIPPETS_PREVIEW_MODE:\n return {...prevState, rows: []};\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 case at.SNIPPETS_PREVIEW_MODE:\n return prevState.map(section => ({...section, rows: []}));\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 Pocket(prevState = INITIAL_STATE.Pocket, action) {\n switch (action.type) {\n case at.POCKET_WAITING_FOR_SPOC:\n return {...prevState, waitingForSpoc: action.data};\n case at.POCKET_LOGGED_IN:\n return {...prevState, isUserLoggedIn: !!action.data};\n case at.POCKET_CTA:\n return {\n ...prevState,\n pocketCta: {\n ctaButton: action.data.cta_button,\n ctaText: action.data.cta_text,\n ctaUrl: action.data.cta_url,\n useCta: action.data.use_cta,\n },\n };\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, ASRouter, Snippets, Prefs, Dialog, Sections, Pocket};\n\nconst EXPORTED_SYMBOLS = [\"reducers\", \"INITIAL_STATE\", \"insertPinned\", \"TOP_SITES_DEFAULT_ROWS\", \"TOP_SITES_MAX_SITES_PER_ROW\"];\n","import React from \"react\";\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 (\n {props.children}\n );\n};\n","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 if (this.props.provider !== \"preview\") {\n this.props.sendUserActionTelemetry({event: \"CLICK_BUTTON\", id: this.props.UISurface});\n }\n this.props.onAction({\n type: this.props.content.button_action,\n data: {args: this.props.content.button_action_args},\n });\n if (!this.props.content.do_not_autoblock) {\n this.props.onBlock();\n }\n }\n\n renderTitle() {\n const {title} = this.props.content;\n return title ? {title} : null;\n }\n\n renderTitleIcon() {\n const titleIcon = safeURI(this.props.content.title_icon);\n return titleIcon ? : null;\n }\n\n renderButton() {\n const {props} = this;\n if (!props.content.button_action && !props.onButtonClick) {\n return null;\n }\n\n return (\n {props.content.button_label}\n );\n }\n\n render() {\n const {props} = this;\n const className = `SimpleSnippet${props.content.tall ? \" tall\" : \"\"}`;\n return (\n \n \n {this.renderTitleIcon()} {this.renderTitle()} {props.richText || props.content.text}\n \n {{this.renderButton()}}\n );\n }\n}\n","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 \n \n \n {title} \n {this.props.children}\n \n {button_label} \n \n \n \n );\n }\n}\n","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 const ping = {\n event: \"CLICK_BUTTON\",\n message_id: props.id,\n id: props.UISurface,\n };\n props.sendUserActionTelemetry(ping);\n props.onAction(props.content.button_action);\n }\n\n render() {\n const {content} = this.props;\n return (\n \n \n \n \n {content.title} \n {content.text} \n \n \n {content.button_label} \n \n \n \n );\n }\n}\n\nexport class OnboardingMessage extends React.PureComponent {\n render() {\n const {props} = this;\n const {button_label, header} = props.extraTemplateStrings;\n return (\n \n \n {props.bundle.map(message => (\n \n ))}\n \n \n );\n }\n}\n","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","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 (\n \n \n \n {hasImage &&\n \n }\n \n \n {link.type === \"download\" && }\n {link.hostname &&\n \n {link.hostname.slice(0, 100)}{link.type === \"download\" && ` \\u2014 ${link.description}`}\n \n }\n \n {link.title}\n {link.description}\n \n \n {icon && !link.context && }\n {link.icon && link.context && }\n {intlID && !link.context && }\n {link.context && {link.context}}\n \n \n \n \n {!props.placeholder && \n {`Open context menu for ${link.title}`}\n }\n {isContextMenuOpen &&\n \n }\n );\n }\n}\n_Card.defaultProps = {link: {}};\nexport const Card = connect(state => ({platform: state.Prefs.values.platform}))(_Card);\nexport const PlaceholderCard = props => ;\n","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 (\n \n {this.props.loading ?\n :\n showClearButton && }\n \n {validationError &&\n }\n \n );\n }\n}\n\nTopSiteFormInput.defaultProps = {\n showClearButton: false,\n value: \"\",\n validationError: false,\n};\n","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 (\n \n );\n }\n return (\n \n );\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 \n \n \n \n \n \n \n \n \n {this._renderCustomScreenshotInput()}\n \n \n \n \n \n \n \n \n {previewMode ?\n \n \n :\n \n \n }\n \n \n );\n }\n}\n\nTopSiteForm.defaultProps = {\n site: null,\n index: -1,\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/browser/components/newtab/lib/ASRouter.jsm b/browser/components/newtab/lib/ASRouter.jsm index 94bd3b93a08a..15ba49d54add 100644 --- a/browser/components/newtab/lib/ASRouter.jsm +++ b/browser/components/newtab/lib/ASRouter.jsm @@ -892,7 +892,7 @@ class _ASRouter { UITour.showMenu(target.browser.ownerGlobal, action.data.args); break; case ra.INSTALL_ADDON_FROM_URL: - await MessageLoaderUtils.installAddonFromURL(target.browser, action.data.args); + await MessageLoaderUtils.installAddonFromURL(target.browser, action.data.url); break; case ra.SHOW_FIREFOX_ACCOUNTS: const url = await FxAccounts.config.promiseSignUpURI("snippets"); diff --git a/browser/components/newtab/lib/ASRouterTargeting.jsm b/browser/components/newtab/lib/ASRouterTargeting.jsm index 8800409895d5..6b9f61f29c05 100644 --- a/browser/components/newtab/lib/ASRouterTargeting.jsm +++ b/browser/components/newtab/lib/ASRouterTargeting.jsm @@ -140,6 +140,10 @@ const TargetingGetters = { totalDevices: Services.prefs.getIntPref("services.sync.numClients", 0), }; }, + get xpinstallEnabled() { + // This is needed for all add-on recommendations, to know if we allow xpi installs in the first place + return Services.prefs.getBoolPref("xpinstall.enabled", true); + }, get addonsInfo() { return AddonManager.getActiveAddons(["extension", "service"]) .then(({addons, fullData}) => { diff --git a/browser/components/newtab/lib/ActivityStream.jsm b/browser/components/newtab/lib/ActivityStream.jsm index cb8816304780..87f6514877a1 100644 --- a/browser/components/newtab/lib/ActivityStream.jsm +++ b/browser/components/newtab/lib/ActivityStream.jsm @@ -182,7 +182,7 @@ const PREFS_CONFIG = new Map([ } else { searchShortcuts.push("google"); } - if (["DE", "FR", "GB", "IT", "JP", "US"].includes(geo)) { + if (["AT", "DE", "FR", "GB", "IT", "JP", "US"].includes(geo)) { searchShortcuts.push("amazon"); } return searchShortcuts.join(","); @@ -209,7 +209,7 @@ const PREFS_CONFIG = new Map([ id: "onboarding", type: "local", localProvider: "OnboardingMessageProvider", - enabled: false, + enabled: true, }, { id: "snippets", type: "remote", diff --git a/browser/components/newtab/lib/CFRMessageProvider.jsm b/browser/components/newtab/lib/CFRMessageProvider.jsm index facd5946295a..9d69869be8f0 100644 --- a/browser/components/newtab/lib/CFRMessageProvider.jsm +++ b/browser/components/newtab/lib/CFRMessageProvider.jsm @@ -84,6 +84,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "one_per_day_amazon") && + (xpinstallEnabled == true) && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${AMAZON_ASSISTANT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: AMAZON_ASSISTANT_PARAMS.open_urls}, @@ -127,6 +128,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day_amazon") && + (xpinstallEnabled == true) && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(AMAZON_ASSISTANT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${AMAZON_ASSISTANT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: AMAZON_ASSISTANT_PARAMS.open_urls}, @@ -170,6 +172,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${FACEBOOK_CONTAINER_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: FACEBOOK_CONTAINER_PARAMS.open_urls}, @@ -213,6 +216,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(FACEBOOK_CONTAINER_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${FACEBOOK_CONTAINER_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: FACEBOOK_CONTAINER_PARAMS.open_urls}, @@ -256,6 +260,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${GOOGLE_TRANSLATE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: GOOGLE_TRANSLATE_PARAMS.open_urls}, @@ -299,6 +304,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(GOOGLE_TRANSLATE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${GOOGLE_TRANSLATE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: GOOGLE_TRANSLATE_PARAMS.open_urls}, @@ -342,6 +348,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${YOUTUBE_ENHANCE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: YOUTUBE_ENHANCE_PARAMS.open_urls}, @@ -385,6 +392,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(YOUTUBE_ENHANCE_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${YOUTUBE_ENHANCE_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: YOUTUBE_ENHANCE_PARAMS.open_urls}, @@ -428,6 +436,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls}, @@ -471,6 +480,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: WIKIPEDIA_CONTEXT_MENU_SEARCH_PARAMS.open_urls}, @@ -514,6 +524,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr in ["one_per_day", "nightly"]) && + (xpinstallEnabled == true) && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${REDDIT_ENHANCEMENT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: REDDIT_ENHANCEMENT_PARAMS.open_urls}, @@ -557,6 +568,7 @@ const CFR_MESSAGES = [ targeting: ` localeLanguageCode == "en" && (providerCohorts.cfr == "three_per_day") && + (xpinstallEnabled == true) && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.existing_addons)} intersect addonsInfo.addons|keys)|length == 0 && (${JSON.stringify(REDDIT_ENHANCEMENT_PARAMS.open_urls)} intersect topFrecentSites[.frecency >= ${REDDIT_ENHANCEMENT_PARAMS.min_frecency}]|mapToProperty('host'))|length > 0`, trigger: {id: "openURL", params: REDDIT_ENHANCEMENT_PARAMS.open_urls}, diff --git a/browser/components/newtab/lib/PlacesFeed.jsm b/browser/components/newtab/lib/PlacesFeed.jsm index 9242e8a190b9..34311ec36ac1 100644 --- a/browser/components/newtab/lib/PlacesFeed.jsm +++ b/browser/components/newtab/lib/PlacesFeed.jsm @@ -124,10 +124,10 @@ class BookmarksObserver extends Observer { class PlacesObserver extends Observer { constructor(dispatch) { super(dispatch, Ci.nsINavBookmarkObserver); - this.handlePlacesEvents = this.handlePlacesEvents.bind(this); + this.handlePlacesEvent = this.handlePlacesEvent.bind(this); } - handlePlacesEvents(events) { + handlePlacesEvent(events) { for (let {itemType, source, dateAdded, guid, title, url, isTagging} of events) { // Skips items that are not bookmarks (like folders), about:* pages or // default bookmarks, added when the profile is created. @@ -148,8 +148,8 @@ class PlacesObserver extends Observer { bookmarkGuid: guid, bookmarkTitle: title, dateAdded: dateAdded * 1000, - url - } + url, + }, }); } } @@ -173,7 +173,7 @@ class PlacesFeed { .getService(Ci.nsINavBookmarksService) .addObserver(this.bookmarksObserver, true); PlacesUtils.observers.addListener(["bookmark-added"], - this.placesObserver.handlePlacesEvents); + this.placesObserver.handlePlacesEvent); Services.obs.addObserver(this, LINK_BLOCKED_EVENT); } @@ -215,7 +215,7 @@ class PlacesFeed { PlacesUtils.history.removeObserver(this.historyObserver); PlacesUtils.bookmarks.removeObserver(this.bookmarksObserver); PlacesUtils.observers.removeListener(["bookmark-added"], - this.placesObserver.handlePlacesEvents); + this.placesObserver.handlePlacesEvent); Services.obs.removeObserver(this, LINK_BLOCKED_EVENT); } @@ -336,5 +336,6 @@ this.PlacesFeed = PlacesFeed; // Exported for testing only PlacesFeed.HistoryObserver = HistoryObserver; PlacesFeed.BookmarksObserver = BookmarksObserver; +PlacesFeed.PlacesObserver = PlacesObserver; const EXPORTED_SYMBOLS = ["PlacesFeed"]; diff --git a/browser/components/newtab/locales/ar/strings.properties b/browser/components/newtab/locales/ar/strings.properties index a82ab501ef2f..027816ccd8ca 100644 --- a/browser/components/newtab/locales/ar/strings.properties +++ b/browser/components/newtab/locales/ar/strings.properties @@ -146,6 +146,8 @@ pocket_read_even_more=اعرض المزيد من الأخبار pocket_more_reccommendations=مقترحات أخرى pocket_learn_more=اطّلع على المزيد +pocket_cta_button=نزِّل بوكِت +pocket_cta_text=احفظ القصص التي تحبّها في بوكِت، وزوّد عقلك بمقالات رائعة. highlights_empty_state=ابدأ التصفح وسنعرض أمامك بعض المقالات والفيديوهات والمواقع الأخرى التي زرتها حديثا أو أضفتها إلى العلامات هنا. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/ca/strings.properties b/browser/components/newtab/locales/ca/strings.properties index 57453d09f4f2..6cee2c34612c 100644 --- a/browser/components/newtab/locales/ca/strings.properties +++ b/browser/components/newtab/locales/ca/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Temes populars: # end of the list of popular topic links. pocket_read_even_more=Mostra més articles +pocket_more_reccommendations=Més recomanacions +pocket_learn_more=Més informació +pocket_cta_button=Obtén el Pocket +pocket_cta_text=Deseu els vostres articles preferits al Pocket i gaudiu d'altres recomanacions fascinants. + highlights_empty_state=Comenceu a navegar i aquí us mostrarem els millors articles, vídeos i altres pàgines que hàgiu visitat o afegit a les adreces d'interès recentment. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. diff --git a/browser/components/newtab/locales/cs/strings.properties b/browser/components/newtab/locales/cs/strings.properties index 69068c62fee7..4a74b3f4dec4 100644 --- a/browser/components/newtab/locales/cs/strings.properties +++ b/browser/components/newtab/locales/cs/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Zobrazit více článků pocket_more_reccommendations=Další doporučení pocket_learn_more=Zjistit více +pocket_how_it_works=Jak to funguje pocket_cta_button=Získejte Pocket pocket_cta_text=Ukládejte si články do služby Pocket a užívejte si skvělé čtení. diff --git a/browser/components/newtab/locales/da/strings.properties b/browser/components/newtab/locales/da/strings.properties index fe5b5ac54e9a..fe1a7c465394 100644 --- a/browser/components/newtab/locales/da/strings.properties +++ b/browser/components/newtab/locales/da/strings.properties @@ -155,6 +155,12 @@ pocket_read_more=Populære emner: # 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=Se flere historier + +pocket_more_reccommendations=Flere anbefalinger +pocket_learn_more=Læs mere +pocket_cta_button=Hent Pocket +pocket_cta_text=Gem dine yndlingshistorier i Pocket og hav dem altid ved hånden. + # LOCALIZATION NOTE (pocket_description): This is shown in the settings pane # to provide more information about Pocket. pocket_description=Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla. diff --git a/browser/components/newtab/locales/en-CA/strings.properties b/browser/components/newtab/locales/en-CA/strings.properties index 37cc699be4b1..c4c8d67fda25 100644 --- a/browser/components/newtab/locales/en-CA/strings.properties +++ b/browser/components/newtab/locales/en-CA/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=View More Stories pocket_more_reccommendations=More Recommendations pocket_learn_more=Learn More +pocket_how_it_works=How it works pocket_cta_button=Get Pocket pocket_cta_text=Save the stories you love in Pocket, and fuel your mind with fascinating reads. diff --git a/browser/components/newtab/locales/eo/strings.properties b/browser/components/newtab/locales/eo/strings.properties index 38d171bb266e..a02a4e0c2634 100644 --- a/browser/components/newtab/locales/eo/strings.properties +++ b/browser/components/newtab/locales/eo/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Ĉefaj temoj: # end of the list of popular topic links. pocket_read_even_more=Montri pli da artikoloj +pocket_more_reccommendations=Pli da rekomendoj +pocket_learn_more=Pli da informo +pocket_cta_button=Instali Pocket +pocket_cta_text=Konservu viajn ŝatatajn artikolojn en Pocket, kaj stimulu vian menson per ravaj legaĵoj. + highlights_empty_state=Komencu retumi kaj ĉi tie ni montros al vi kelkajn el la plej bonaj artikoloj, filmetoj kaj aliaj paĝoj, kiujn vi antaŭ nelonge vizits aŭ por kiuj vi aldonis legosignon. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. diff --git a/browser/components/newtab/locales/gn/strings.properties b/browser/components/newtab/locales/gn/strings.properties index 14dfdffad036..634f247961e1 100644 --- a/browser/components/newtab/locales/gn/strings.properties +++ b/browser/components/newtab/locales/gn/strings.properties @@ -146,7 +146,9 @@ pocket_read_even_more=Ahechaseve Mombe'upy pocket_more_reccommendations=Hetave je’eporã pocket_learn_more=Kuaave +pocket_how_it_works=Mba’éichapa omba’apo pocket_cta_button=Eguereko Pocket +pocket_cta_text=Eñongatu umi eipotáva tembiasakue Pocket-pe ha emombarete ne akã ñemoñe’ẽ ha’evévape. highlights_empty_state=Eñepyrũ eikundaha ha rohechaukáta ndéve mba'ehai, mba'erecharã oĩva ha ambue ñandutirenda reikeva'ekue ýrõ rembotechaukava'ekue. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/hi-IN/strings.properties b/browser/components/newtab/locales/hi-IN/strings.properties index 7970bab4e7da..6d9dda7894ec 100644 --- a/browser/components/newtab/locales/hi-IN/strings.properties +++ b/browser/components/newtab/locales/hi-IN/strings.properties @@ -64,7 +64,7 @@ menu_action_remove_download=इतिहास से हटाएँ # LOCALIZATION NOTE (search_button): This is screenreader only text for the # search button. -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 @@ -78,7 +78,7 @@ search_web_placeholder=वेब पर खोजें # 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=वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा. +section_disclaimer_topstories=वेब पर सबसे दिलचस्प कहानियाँ, आपके पढने के आधार पर चयनित। Pocket के द्वारा, जो अब Mozilla का हिस्सा है। section_disclaimer_topstories_linktext=जाने यह कैसे काम करता है. # LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of # the button used to acknowledge, and hide this disclaimer in the future. @@ -144,6 +144,8 @@ pocket_read_more=लोकप्रिय विषय: # end of the list of popular topic links. pocket_read_even_more=और कहानियाँ देखें +pocket_learn_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. diff --git a/browser/components/newtab/locales/it/strings.properties b/browser/components/newtab/locales/it/strings.properties index 45222c35c35e..a02c154f609e 100644 --- a/browser/components/newtab/locales/it/strings.properties +++ b/browser/components/newtab/locales/it/strings.properties @@ -145,6 +145,7 @@ pocket_read_more=Argomenti popolari: pocket_read_even_more=Visualizza altre storie pocket_more_reccommendations = Altri suggerimenti pocket_learn_more = Ulteriori informazioni +pocket_how_it_works = Come funziona pocket_cta_button = Ottieni Pocket pocket_cta_text = Salva le storie che ami in Pocket e nutri la tua mente con letture appassionanti. diff --git a/browser/components/newtab/locales/kk/strings.properties b/browser/components/newtab/locales/kk/strings.properties index 07580d5876ba..0899c8ba8157 100644 --- a/browser/components/newtab/locales/kk/strings.properties +++ b/browser/components/newtab/locales/kk/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Көбірек хикаяларды қарау pocket_more_reccommendations=Көбірек ұсыныстар pocket_learn_more=Көбірек білу pocket_cta_button=Pocket-ті алу +pocket_cta_text=Өзіңіз ұнатқан хикаяларды Pocket ішіне сақтап, миіңізді тамаша оқумен толықтырыңыз. highlights_empty_state=Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/lv/strings.properties b/browser/components/newtab/locales/lv/strings.properties index ac6fa3ffadae..78c05b338fca 100644 --- a/browser/components/newtab/locales/lv/strings.properties +++ b/browser/components/newtab/locales/lv/strings.properties @@ -144,6 +144,11 @@ pocket_read_more=Populārās tēmas: # end of the list of popular topic links. pocket_read_even_more=Parādīt vairāk lapas +pocket_more_reccommendations=Vairāk ieteikumu +pocket_learn_more=Uzzināt vairāk +pocket_cta_button=Izmēģiniet Pocket +pocket_cta_text=Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu. + highlights_empty_state=Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, # in the space that would have shown a few stories, this is shown instead. @@ -173,6 +178,7 @@ section_menu_action_expand_section=Izvērst sadaļu section_menu_action_manage_section=Pārvaldīt sadaļu section_menu_action_manage_webext=Pārvaldīt paplašinājumu section_menu_action_add_topsite=Pievienot populāru lapu +section_menu_action_add_search_engine=Pievienot meklētāju section_menu_action_move_up=Pārvietot augšup section_menu_action_move_down=Pārvietot lejup section_menu_action_privacy_notice=Privātuma politika @@ -201,4 +207,3 @@ firstrun_privacy_notice=Privātuma politikai firstrun_continue_to_login=Turpināt firstrun_skip_login=Izlaist šo soli -section_menu_action_add_search_engine=Pievienot meklētāju diff --git a/browser/components/newtab/locales/ms/strings.properties b/browser/components/newtab/locales/ms/strings.properties index 60b6ee07f28c..657b4139917c 100644 --- a/browser/components/newtab/locales/ms/strings.properties +++ b/browser/components/newtab/locales/ms/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Papar Kisah Selanjutnya pocket_more_reccommendations=Saranan Lain pocket_learn_more=Ketahui Selanjutnya +pocket_how_it_works=Cara pelaksanaan pocket_cta_button=Dapatkan Pocket pocket_cta_text=Simpan cerita yang anda suka dalam Pocket dan jana minda dengan bahan bacaan yang menarik. diff --git a/browser/components/newtab/locales/nb-NO/strings.properties b/browser/components/newtab/locales/nb-NO/strings.properties index d8ae9c52beea..7980e054327c 100644 --- a/browser/components/newtab/locales/nb-NO/strings.properties +++ b/browser/components/newtab/locales/nb-NO/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Vis flere saker pocket_more_reccommendations=Flere anbefalinger pocket_learn_more=Les mer pocket_cta_button=Hent Pocket +pocket_cta_text=Lagre artiklene du synes er interessante i Pocket, og stimuler dine tanker med fasinerende lesermateriell. highlights_empty_state=Begynn å surfe, og vi viser noen av de beste artiklene, videoer og andre sider du nylig har besøkt eller bokmerket her. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/nl/strings.properties b/browser/components/newtab/locales/nl/strings.properties index c5e8b471e519..c0c35f2c6543 100644 --- a/browser/components/newtab/locales/nl/strings.properties +++ b/browser/components/newtab/locales/nl/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Meer verhalen bekijken pocket_more_reccommendations=Meer aanbevelingen pocket_learn_more=Meer info +pocket_how_it_works=Hoe het werkt pocket_cta_button=Pocket gebruiken pocket_cta_text=Bewaar de verhalen die u interessant vindt in Pocket, en stimuleer uw gedachten met boeiende leesstof. diff --git a/browser/components/newtab/locales/nn-NO/strings.properties b/browser/components/newtab/locales/nn-NO/strings.properties index 36196551d117..c11d6ff57d2d 100644 --- a/browser/components/newtab/locales/nn-NO/strings.properties +++ b/browser/components/newtab/locales/nn-NO/strings.properties @@ -147,6 +147,7 @@ pocket_read_even_more=Vis fleire saker pocket_more_reccommendations=Fleire tilrådingar pocket_learn_more=Les meir pocket_cta_button=Last ned Pocket +pocket_cta_text=Lagre artiklane du synest er interessante i Pocket, og stimuler tankane dine med fasinerande lesemateriell. highlights_empty_state=Begynn å surfe, og vi vil vise deg nokre av dei beste artiklane, videoane og andre sider du nyleg har besøkt eller bokmerka her. # LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations, diff --git a/browser/components/newtab/locales/pt-PT/strings.properties b/browser/components/newtab/locales/pt-PT/strings.properties index 55aa5268511b..f8cb7123f41c 100644 --- a/browser/components/newtab/locales/pt-PT/strings.properties +++ b/browser/components/newtab/locales/pt-PT/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Ver mais histórias pocket_more_reccommendations=Mais recomendações pocket_learn_more=Saber mais +pocket_how_it_works=Como funciona pocket_cta_button=Obter o Pocket pocket_cta_text=Guarde as histórias que adora no Pocket, e abasteça a sua mente com leituras fascinantes. diff --git a/browser/components/newtab/locales/ro/strings.properties b/browser/components/newtab/locales/ro/strings.properties index e0bb342c6f53..5c3cbe2329e3 100644 --- a/browser/components/newtab/locales/ro/strings.properties +++ b/browser/components/newtab/locales/ro/strings.properties @@ -36,11 +36,11 @@ menu_action_dismiss=Înlătură menu_action_delete=Șterge din istoric menu_action_pin=Fixează menu_action_unpin=Anulează fixarea -confirm_history_delete_p1=Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric? +confirm_history_delete_p1=Sigur vrei să ștergi fiecare instanță a paginii din istoric? # 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=Această acțiune este ireversibilă. +confirm_history_delete_notice_p2=Acțiunea este ireversibilă. menu_action_save_to_pocket=Salvează în Pocket menu_action_delete_pocket=Şterge din Pocket menu_action_archive_pocket=Arhivează în Pocket diff --git a/browser/components/newtab/locales/sl/strings.properties b/browser/components/newtab/locales/sl/strings.properties index 88422146b55b..bb171eebdaa8 100644 --- a/browser/components/newtab/locales/sl/strings.properties +++ b/browser/components/newtab/locales/sl/strings.properties @@ -146,6 +146,8 @@ pocket_read_even_more=Prikaži več vesti pocket_more_reccommendations=Več priporočil pocket_learn_more=Več o tem +pocket_cta_button=Prenesi Pocket +pocket_cta_text=Shranite zgodbe, ki jih imate radi, v Pocket, in napolnite svoje misli z navdušujočim branjem. 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, diff --git a/browser/components/newtab/locales/sv-SE/strings.properties b/browser/components/newtab/locales/sv-SE/strings.properties index e07ce8022c48..4d503e4057fe 100644 --- a/browser/components/newtab/locales/sv-SE/strings.properties +++ b/browser/components/newtab/locales/sv-SE/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Visa fler nyheter pocket_more_reccommendations=Fler rekommendationer pocket_learn_more=Läs mer +pocket_how_it_works=Hur fungerar det pocket_cta_button=Hämta Pocket pocket_cta_text=Spara de historier som du tycker är intressant i Pocket, och stimulera dina tankar med fascinerande läsmaterial. diff --git a/browser/components/newtab/locales/tr/strings.properties b/browser/components/newtab/locales/tr/strings.properties index 110ab6f531ba..00d835339f3f 100644 --- a/browser/components/newtab/locales/tr/strings.properties +++ b/browser/components/newtab/locales/tr/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=Daha fazla yazı göster pocket_more_reccommendations=Daha fazla öneri pocket_learn_more=Daha fazla bilgi al +pocket_how_it_works=Nasıl çalışıyor? pocket_cta_button=Pocket’ı edinin pocket_cta_text=Sevdiğiniz yazıları Pocket’a kaydedin, aklınız okumaya değer şeylerle doldurun. diff --git a/browser/components/newtab/locales/zh-TW/strings.properties b/browser/components/newtab/locales/zh-TW/strings.properties index 5e39d7fb9ed7..d8deb62c0d95 100644 --- a/browser/components/newtab/locales/zh-TW/strings.properties +++ b/browser/components/newtab/locales/zh-TW/strings.properties @@ -146,6 +146,7 @@ pocket_read_even_more=檢視更多文章 pocket_more_reccommendations=更多推薦項目 pocket_learn_more=了解更多 +pocket_how_it_works=原理是什麼 pocket_cta_button=取得 Pocket pocket_cta_text=將您喜愛的故事儲存到 Pocket,閱讀一篇篇好文章。 diff --git a/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js index 3b5f00d6510c..b27eb5cdd505 100644 --- a/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ar/activity-stream-strings.js @@ -76,8 +76,8 @@ window.gActivityStreamStrings = { "pocket_read_even_more": "اعرض المزيد من الأخبار", "pocket_more_reccommendations": "مقترحات أخرى", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "نزِّل بوكِت", + "pocket_cta_text": "احفظ القصص التي تحبّها في بوكِت، وزوّد عقلك بمقالات رائعة.", "highlights_empty_state": "ابدأ التصفح وسنعرض أمامك بعض المقالات والفيديوهات والمواقع الأخرى التي زرتها حديثا أو أضفتها إلى العلامات هنا.", "topstories_empty_state": "لا جديد. تحقق لاحقًا للحصول على مزيد من أهم الأخبار من {provider}. لا يمكنك الانتظار؟ اختر موضوعًا شائعًا للعثور على المزيد من القصص الرائعة من جميع أنحاء الوِب.", "manual_migration_explanation2": "جرب فَيَرفُكس مع العلامات، و التأريخ، و كلمات السر من متصفح آخر.", diff --git a/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js index 1f608a4f081f..96dc16919eab 100644 --- a/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ca/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "S'ha produït un error en carregar la imatge. Proveu un altre URL.", "pocket_read_more": "Temes populars:", "pocket_read_even_more": "Mostra més articles", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Més recomanacions", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Obtén el Pocket", + "pocket_cta_text": "Deseu els vostres articles preferits al Pocket i gaudiu d'altres recomanacions fascinants.", "highlights_empty_state": "Comenceu a navegar i aquí us mostrarem els millors articles, vídeos i altres pàgines que hàgiu visitat o afegit a les adreces d'interès recentment.", "topstories_empty_state": "Ja esteu al dia. Torneu més tard per veure més articles populars de {provider}. No podeu esperar? Trieu un tema popular per descobrir els articles més interessants de tot el web.", "manual_migration_explanation2": "Proveu el Firefox amb les adreces d'interès, l'historial i les contrasenyes d'un altre navegador.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "Condicions del servei", "firstrun_privacy_notice": "Avís de privadesa", "firstrun_continue_to_login": "Continua", - "firstrun_skip_login": "Omet aquest pas" + "firstrun_skip_login": "Omet aquest pas", + "pocket_learn_more": "Més informació" }; diff --git a/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js index e1d1749e0b02..62ec91d37763 100644 --- a/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/cs/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populární témata:", "pocket_read_even_more": "Zobrazit více článků", "pocket_more_reccommendations": "Další doporučení", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Jak to funguje", "pocket_cta_button": "Získejte Pocket", "pocket_cta_text": "Ukládejte si články do služby Pocket a užívejte si skvělé čtení.", "highlights_empty_state": "Začněte prohlížet a my vám zde ukážeme některé skvělé články, videa a další stránky, které jste nedávno viděli nebo uložili do záložek.", diff --git a/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js index 5fe6f9a1ba6a..6db7dc17d450 100644 --- a/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/da/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "Kunne ikke indlæse billede. Prøv en anden URL.", "pocket_read_more": "Populære emner:", "pocket_read_even_more": "Se flere historier", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Flere anbefalinger", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Hent Pocket", + "pocket_cta_text": "Gem dine yndlingshistorier i Pocket og hav dem altid ved hånden.", "highlights_empty_state": "Gå i gang med at browse, så vil vi vise dig nogle af de artikler, videoer og andre sider, du har besøgt eller gemt et bogmærke til for nylig.", "topstories_empty_state": "Der er ikke flere nye historier. Kom tilbage senere for at se flere tophistorier fra {provider}. Kan du ikke vente? Vælg et populært emne og find flere spændende historier fra hele verden.", "manual_migration_explanation2": "Prøv Firefox med bogmærkerne, historikken og adgangskoderne fra en anden browser.", @@ -119,5 +119,6 @@ window.gActivityStreamStrings = { "settings_pane_snippets_body": "Læs korte opdateringer fra Mozilla om Firefox, internet-kultur og lidt underholdning fra tid til anden.", "settings_pane_done_button": "Færdig", "settings_pane_topstories_options_sponsored": "Vis sponsorerede historier", + "pocket_learn_more": "Læs mere", "pocket_description": "Opdag indhold af høj kvalitet, som du måske ellers ikke ville have opdaget. Indholdet kommer fra Pocket, der nu er en del af Mozilla." }; diff --git a/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js index 0cea906831bf..2dde17883a5c 100644 --- a/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/eo/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "Ne eblis ŝargi la bildon. Klopodu alian retadreson.", "pocket_read_more": "Ĉefaj temoj:", "pocket_read_even_more": "Montri pli da artikoloj", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Pli da rekomendoj", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Instali Pocket", + "pocket_cta_text": "Konservu viajn ŝatatajn artikolojn en Pocket, kaj stimulu vian menson per ravaj legaĵoj.", "highlights_empty_state": "Komencu retumi kaj ĉi tie ni montros al vi kelkajn el la plej bonaj artikoloj, filmetoj kaj aliaj paĝoj, kiujn vi antaŭ nelonge vizits aŭ por kiuj vi aldonis legosignon.", "topstories_empty_state": "Vi legis ĉion. Kontrolu denove poste ĉu estas pli da novaĵon de {provider}. Ĉu vi ne povas atendi? Elektu popularan temon por trovi pli da interesaj artikoloj en la tuta teksaĵo.", "manual_migration_explanation2": "Provu Firefox kun la legosignoj, historio kaj pasvortoj de alia retumilo.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "kondiĉojn de uzo", "firstrun_privacy_notice": "rimarkon pri privateco", "firstrun_continue_to_login": "Daŭrigi", - "firstrun_skip_login": "Pretersalti tiun ĉi paŝon" + "firstrun_skip_login": "Pretersalti tiun ĉi paŝon", + "pocket_learn_more": "Pli da informo" }; diff --git a/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js index ee8dfe1ab79a..1fbb8ce14f21 100644 --- a/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/gn/activity-stream-strings.js @@ -75,9 +75,9 @@ window.gActivityStreamStrings = { "pocket_read_more": "Ñe'ẽmbyrã Ojehayhuvéva:", "pocket_read_even_more": "Ahechaseve Mombe'upy", "pocket_more_reccommendations": "Hetave je’eporã", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Mba’éichapa omba’apo", "pocket_cta_button": "Eguereko Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Eñongatu umi eipotáva tembiasakue Pocket-pe ha emombarete ne akã ñemoñe’ẽ ha’evévape.", "highlights_empty_state": "Eñepyrũ eikundaha ha rohechaukáta ndéve mba'ehai, mba'erecharã oĩva ha ambue ñandutirenda reikeva'ekue ýrõ rembotechaukava'ekue.", "topstories_empty_state": "Ko'ág̃a reikuaapáma ipyahúva. Eikejey ag̃ave ápe eikuaávo mombe'upy pyahu {provider} oikuave'ẽva ndéve. Ndaikatuvéima reha'ãrõ? Eiporavo peteĩ ñe'ẽmbyrã ha emoñe'ẽve oĩvéva ñande yvy ape ári.", "manual_migration_explanation2": "Eipuru Firefox reheve techaukaha, tembiasakue ha ñe'ẽñemi ambue kundaharapegua.", diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html index dad8b60fc990..de69818cdadb 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered-noscripts.html @@ -9,7 +9,7 @@ - वेब पर खोजेंखोजसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें + वेब पर खोजेंखोजेंसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html index 8587e8ad893b..921bf3b2168e 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-prerendered.html @@ -9,7 +9,7 @@ - वेब पर खोजेंखोजसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें + वेब पर खोजेंखोजेंसर्वोच्च साइटेंअनुभाग प्रसंग मेनू खोलेंPocket द्वारा अनुशंसितअनुभाग प्रसंग मेनू खोलेंप्रमुखताएँअनुभाग प्रसंग मेनू खोलें diff --git a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js index 204c290e4ec8..8fc8e01a678b 100644 --- a/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/hi-IN/activity-stream-strings.js @@ -32,10 +32,10 @@ window.gActivityStreamStrings = { "menu_action_copy_download_link": "डाउनलोड लिंक कॉपी करें", "menu_action_go_to_download_page": "डाउनलोड पृष्ठ पर जाएं", "menu_action_remove_download": "इतिहास से हटाएँ", - "search_button": "खोज", + "search_button": "खोजें", "search_header": "{search_engine_name} खोज", "search_web_placeholder": "वेब पर खोजें", - "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पठन के आधार पर चयनित. Pocket के द्वारा, जो अब है Mozilla का हिस्सा.", + "section_disclaimer_topstories": "वेब पर सबसे दिलचस्प कहानियाँ, आपके पढने के आधार पर चयनित। Pocket के द्वारा, जो अब Mozilla का हिस्सा है।", "section_disclaimer_topstories_linktext": "जाने यह कैसे काम करता है.", "section_disclaimer_topstories_buttontext": "ठीक है, समझ गए", "prefs_home_header": "Firefox होम सामग्री", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "सेवा की शर्तें", "firstrun_privacy_notice": "गोपनीयता नीति", "firstrun_continue_to_login": "जारी रखें", - "firstrun_skip_login": "इस चरण को छोड़ दें" + "firstrun_skip_login": "इस चरण को छोड़ दें", + "pocket_learn_more": "अधिक जानें" }; diff --git a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js index 6a313462644e..b5c740567c84 100644 --- a/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/it/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Argomenti popolari:", "pocket_read_even_more": "Visualizza altre storie", "pocket_more_reccommendations": "Altri suggerimenti", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Come funziona", "pocket_cta_button": "Ottieni Pocket", "pocket_cta_text": "Salva le storie che ami in Pocket e nutri la tua mente con letture appassionanti.", "highlights_empty_state": "Inizia a navigare e, in questa sezione, verranno visualizzati articoli, video e altre pagine visitate di recente o aggiunte ai segnalibri.", diff --git a/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js index 19c736eb08f2..27ebd8d0008d 100644 --- a/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/kk/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Көбірек ұсыныстар", "pocket_how_it_works": "How it works", "pocket_cta_button": "Pocket-ті алу", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Өзіңіз ұнатқан хикаяларды Pocket ішіне сақтап, миіңізді тамаша оқумен толықтырыңыз.", "highlights_empty_state": "Шолуды бастаңыз, сіз жақында шолған немесе бетбелгілерге қосқан тамаша мақалалар, видеолар немесе басқа парақтардың кейбіреулері осында көрсетіледі.", "topstories_empty_state": "Дайын. {provider} ұсынған көбірек мақалаларды алу үшін кейінірек тексеріңіз. Күте алмайсыз ба? Интернеттен көбірек тамаша мақалаларды алу үшін әйгілі теманы таңдаңыз.", "manual_migration_explanation2": "Firefox қолданбасын басқа браузер бетбелгілері, тарихы және парольдерімен қолданып көріңіз.", diff --git a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js index d75336a713d7..95d8e83d4a52 100644 --- a/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/lv/activity-stream-strings.js @@ -74,10 +74,10 @@ window.gActivityStreamStrings = { "topsites_form_image_validation": "NEizdevās ielādēt attēlu. Izmēģiniet citu adresi.", "pocket_read_more": "Populārās tēmas:", "pocket_read_even_more": "Parādīt vairāk lapas", - "pocket_more_reccommendations": "More Recommendations", + "pocket_more_reccommendations": "Vairāk ieteikumu", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Izmēģiniet Pocket", + "pocket_cta_text": "Saglabājiet interesantus stāstus Pocket un barojiet savu prātu ar interesantu lasāmvielu.", "highlights_empty_state": "Sāciet pārlūkošanu un mēs šeit parādīsim lieliskus rakstus, video un citas apmeklētās lapas.", "topstories_empty_state": "Viss ir apskatīts! Atnāciet atpakaļ nedaudz vēlāk, lai redzētu populāros stāstus no {provider}. Nevarat sagaidīt? Izvēlieties kādu no tēmām jau tagad.", "manual_migration_explanation2": "Izmēģiniet Firefox ar grāmatzīmēm, vēsturi un parolēm no cita pārlūka.", @@ -106,5 +106,6 @@ window.gActivityStreamStrings = { "firstrun_terms_of_service": "Lietošanas noteikumiem", "firstrun_privacy_notice": "Privātuma politikai", "firstrun_continue_to_login": "Turpināt", - "firstrun_skip_login": "Izlaist šo soli" + "firstrun_skip_login": "Izlaist šo soli", + "pocket_learn_more": "Uzzināt vairāk" }; diff --git a/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js index dffcdc70316f..ff748c751628 100644 --- a/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ms/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Topik Popular:", "pocket_read_even_more": "Papar Kisah Selanjutnya", "pocket_more_reccommendations": "Saranan Lain", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Cara pelaksanaan", "pocket_cta_button": "Dapatkan Pocket", "pocket_cta_text": "Simpan cerita yang anda suka dalam Pocket dan jana minda dengan bahan bacaan yang menarik.", "highlights_empty_state": "Mulakan melayar dan kami akan paparkan beberapa artikel, video dan halaman menarik lain yang sudah anda layari dan tandabuku di sini.", diff --git a/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js index c05567f277c4..1455f269e6fa 100644 --- a/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nb-NO/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Flere anbefalinger", "pocket_how_it_works": "How it works", "pocket_cta_button": "Hent Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Lagre artiklene du synes er interessante i Pocket, og stimuler dine tanker med fasinerende lesermateriell.", "highlights_empty_state": "Begynn å surfe, og vi viser noen av de beste artiklene, videoer og andre sider du nylig har besøkt eller bokmerket her.", "topstories_empty_state": "Du har tatt igjen. Kom tilbake senere for flere topphistorier fra {provider}. Kan du ikke vente? Velg et populært emne for å finne flere gode artikler fra hele Internett.", "manual_migration_explanation2": "Prøv Firefox med bokmerkene, historikk og passord fra en annen nettleser.", diff --git a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js index 3b6fcdea50a4..f66451be7c1d 100644 --- a/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nl/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populaire onderwerpen:", "pocket_read_even_more": "Meer verhalen bekijken", "pocket_more_reccommendations": "Meer aanbevelingen", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Hoe het werkt", "pocket_cta_button": "Pocket gebruiken", "pocket_cta_text": "Bewaar de verhalen die u interessant vindt in Pocket, en stimuleer uw gedachten met boeiende leesstof.", "highlights_empty_state": "Begin met surfen, en we tonen hier een aantal geweldige artikelen, video’s en andere pagina’s die u onlangs hebt bezocht of waarvoor u een bladwijzer hebt gemaakt.", diff --git a/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js index 34d16de47c0d..441d7d8a81be 100644 --- a/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/nn-NO/activity-stream-strings.js @@ -77,7 +77,7 @@ window.gActivityStreamStrings = { "pocket_more_reccommendations": "Fleire tilrådingar", "pocket_how_it_works": "How it works", "pocket_cta_button": "Last ned Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_text": "Lagre artiklane du synest er interessante i Pocket, og stimuler tankane dine med fasinerande lesemateriell.", "highlights_empty_state": "Begynn å surfe, og vi vil vise deg nokre av dei beste artiklane, videoane og andre sider du nyleg har besøkt eller bokmerka her.", "topstories_empty_state": "Det finst ikkje fleire. Kom tilbake seinare for fleire topphistoriar frå {provider}. Kan du ikkje vente? Vel eit populært emne for å finne fleire gode artiklar frå heile nettet.", "manual_migration_explanation2": "Prøv Firefox med bokmerka, historikk og passord frå ein annan nettlesar.", diff --git a/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js index 3096a7b3333a..cf38293f6456 100644 --- a/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/pt-BR/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Tópicos populares:", "pocket_read_even_more": "Ver mais histórias", "pocket_more_reccommendations": "Mais recomendações", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Como funciona", "pocket_cta_button": "Obter o Pocket", "pocket_cta_text": "Salve as histórias que você gosta no Pocket e abasteça sua mente com leituras fascinantes.", "highlights_empty_state": "Comece a navegar e nós mostraremos aqui alguns ótimos artigos, vídeos e outras páginas que você favoritou ou visitou recentemente.", diff --git a/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js index f16e5ab081b1..c183a49699f3 100644 --- a/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/pt-PT/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Tópicos populares:", "pocket_read_even_more": "Ver mais histórias", "pocket_more_reccommendations": "Mais recomendações", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Como funciona", "pocket_cta_button": "Obter o Pocket", "pocket_cta_text": "Guarde as histórias que adora no Pocket, e abasteça a sua mente com leituras fascinantes.", "highlights_empty_state": "Comece a navegar, e iremos mostrar-lhe alguns dos ótimos artigos, vídeos, e outras páginas que visitou recentemente ou adicionou aos marcadores aqui.", diff --git a/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js index 16d1a3e75c11..f90728887607 100644 --- a/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/ro/activity-stream-strings.js @@ -19,8 +19,8 @@ window.gActivityStreamStrings = { "menu_action_delete": "Șterge din istoric", "menu_action_pin": "Fixează", "menu_action_unpin": "Anulează fixarea", - "confirm_history_delete_p1": "Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric?", - "confirm_history_delete_notice_p2": "Această acțiune este ireversibilă.", + "confirm_history_delete_p1": "Sigur vrei să ștergi fiecare instanță a paginii din istoric?", + "confirm_history_delete_notice_p2": "Acțiunea este ireversibilă.", "menu_action_save_to_pocket": "Salvează în Pocket", "menu_action_delete_pocket": "Şterge din Pocket", "menu_action_archive_pocket": "Arhivează în Pocket", diff --git a/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js index 498c64915535..d0933187e0d6 100644 --- a/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/sl/activity-stream-strings.js @@ -76,8 +76,8 @@ window.gActivityStreamStrings = { "pocket_read_even_more": "Prikaži več vesti", "pocket_more_reccommendations": "Več priporočil", "pocket_how_it_works": "How it works", - "pocket_cta_button": "Get Pocket", - "pocket_cta_text": "Save the stories you love in Pocket, and fuel your mind with fascinating reads.", + "pocket_cta_button": "Prenesi Pocket", + "pocket_cta_text": "Shranite zgodbe, ki jih imate radi, v Pocket, in napolnite svoje misli z navdušujočim branjem.", "highlights_empty_state": "Začnite z brskanjem, mi pa vam bomo tu prikazovali odlične članke, videoposnetke ter druge strani, ki ste jih nedavno obiskali ali shranili med zaznamke.", "topstories_empty_state": "Zdaj ste seznanjeni z novicami. Vrnite se pozneje in si oglejte nove prispevke iz {provider}. Komaj čakate? Izberite priljubljeno temo in odkrijte več velikih zgodb na spletu.", "manual_migration_explanation2": "Preskusite Firefox z zaznamki, zgodovino in gesli iz drugega brskalnika.", diff --git a/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js index 3fd8026e522d..4769d8e4ff51 100644 --- a/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/sv-SE/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Populära ämnen:", "pocket_read_even_more": "Visa fler nyheter", "pocket_more_reccommendations": "Fler rekommendationer", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Hur fungerar det", "pocket_cta_button": "Hämta Pocket", "pocket_cta_text": "Spara de historier som du tycker är intressant i Pocket, och stimulera dina tankar med fascinerande läsmaterial.", "highlights_empty_state": "Börja surfa, och vi visar några av de bästa artiklarna, videoklippen och andra sidor du nyligen har besökt eller bokmärkt här.", diff --git a/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js index d9e558715e23..aa741d35045e 100644 --- a/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/tr/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "Popüler konular:", "pocket_read_even_more": "Daha fazla yazı göster", "pocket_more_reccommendations": "Daha fazla öneri", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "Nasıl çalışıyor?", "pocket_cta_button": "Pocket’ı edinin", "pocket_cta_text": "Sevdiğiniz yazıları Pocket’a kaydedin, aklınız okumaya değer şeylerle doldurun.", "highlights_empty_state": "Gezinmeye başlayın. Son zamanlarda baktığınız veya yer imlerinize eklediğiniz bazı güzel makaleleri, videoları ve diğer sayfaları burada göstereceğiz.", diff --git a/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js index a90be0015a38..36b49c145b70 100644 --- a/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/zh-CN/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "热门主题:", "pocket_read_even_more": "查看更多文章", "pocket_more_reccommendations": "更多推荐", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "原理是什麼", "pocket_cta_button": "获取 Pocket", "pocket_cta_text": "将您喜爱的故事保存到 Pocket,用精彩的读物为思想注入活力。", "highlights_empty_state": "开始网上冲浪之旅吧,之后这里会显示您最近看过或加了书签的精彩文章、视频与其他页面。", diff --git a/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js b/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js index cc23f5296c21..a5131ba08b52 100644 --- a/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js +++ b/browser/components/newtab/prerendered/locales/zh-TW/activity-stream-strings.js @@ -75,7 +75,7 @@ window.gActivityStreamStrings = { "pocket_read_more": "熱門主題:", "pocket_read_even_more": "檢視更多文章", "pocket_more_reccommendations": "更多推薦項目", - "pocket_how_it_works": "How it works", + "pocket_how_it_works": "原理是什麼", "pocket_cta_button": "取得 Pocket", "pocket_cta_text": "將您喜愛的故事儲存到 Pocket,閱讀一篇篇好文章。", "highlights_empty_state": "開始上網,我們就會把您在網路上發現的好文章、影片、剛加入書籤的頁面顯示於此。", diff --git a/browser/components/newtab/test/browser/browser_asrouter_targeting.js b/browser/components/newtab/test/browser/browser_asrouter_targeting.js index be53ef93ff84..f1004b852853 100644 --- a/browser/components/newtab/test/browser/browser_asrouter_targeting.js +++ b/browser/components/newtab/test/browser/browser_asrouter_targeting.js @@ -362,3 +362,14 @@ add_task(async function check_provider_cohorts() { is(await ASRouterTargeting.Environment.providerCohorts.onboarding, "foo"); is(await ASRouterTargeting.Environment.providerCohorts.cfr, "bar"); }); + +add_task(async function check_xpinstall_enabled() { + // should default to true if pref doesn't exist + is(await ASRouterTargeting.Environment.xpinstallEnabled, true); + // flip to false, check targeting reflects that + await pushPrefs(["xpinstall.enabled", false]); + is(await ASRouterTargeting.Environment.xpinstallEnabled, false); + // flip to true, check targeting reflects that + await pushPrefs(["xpinstall.enabled", true]); + is(await ASRouterTargeting.Environment.xpinstallEnabled, true); +}); diff --git a/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js b/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js index 3eae1d382520..5def0304c670 100644 --- a/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js +++ b/browser/components/newtab/test/browser/browser_topsites_contextMenu_options.js @@ -8,11 +8,11 @@ test_newtab({ before: setDefaultTopSites, // Test verifies the menu options for a default top site. test: async function defaultTopSites_menuOptions() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); - let contextMenuItems = content.openContextMenuAndGetOptions(".top-sites-list li:not(.search-shortcut)").map(v => v.textContent); - + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector).map(v => v.textContent); Assert.equal(contextMenuItems.length, 5, "Number of options is correct"); const expectedItemsText = ["Pin", "Edit", "Open in a New Window", "Open in a New Private Window", "Dismiss"]; @@ -27,26 +27,27 @@ test_newtab({ before: setDefaultTopSites, // Test verifies that the next top site in queue replaces a dismissed top site. test: async function defaultTopSites_dismiss() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); // Don't count search topsites - let defaultTopSitesNumber = content.document.querySelectorAll(".top-site-outer:not(.placeholder):not(.search-shortcut)").length; + const defaultTopSitesNumber = content.document.querySelectorAll(siteSelector).length; Assert.equal(defaultTopSitesNumber, 5, "5 top sites are loaded by default"); // Skip the search topsites select the second default topsite - let secondTopSite = content.document.querySelectorAll(".top-sites-list li:not(.search-shortcut):not(.placeholder)")[1].getAttribute("href"); + const secondTopSite = content.document.querySelectorAll(siteSelector)[1].getAttribute("href"); - let contextMenuItems = content.openContextMenuAndGetOptions("li:not(.search-shortcut)"); + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector); Assert.equal(contextMenuItems[4].textContent, "Dismiss", "'Dismiss' is the 5th item in the context menu list"); contextMenuItems[4].querySelector("a").click(); // Wait for the topsite to be dismissed and the second one to replace it - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-sites-list li:not(.search-shortcut):not(.placeholder)").getAttribute("href") === secondTopSite, + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector).getAttribute("href") === secondTopSite, "First default topsite was dismissed"); - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".top-site-outer:not(.placeholder):not(.search-shortcut)").length === 4, "4 top sites are displayed after one of them is dismissed"); + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 4, "4 top sites are displayed after one of them is dismissed"); }, async after() { await new Promise(resolve => NewTabUtils.undoAll(resolve)); @@ -56,16 +57,17 @@ test_newtab({ test_newtab({ before: setDefaultTopSites, test: async function searchTopSites_dismiss() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".search-shortcut").length === 2, + const siteSelector = ".search-shortcut"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 2, "2 search topsites are loaded by default"); - let contextMenuItems = content.openContextMenuAndGetOptions(".search-shortcut"); + const contextMenuItems = content.openContextMenuAndGetOptions(siteSelector); is(contextMenuItems.length, 2, "Search TopSites should only have Unpin and Dismiss"); // Unpin contextMenuItems[0].querySelector("a").click(); - await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(".search-shortcut").length === 1, + await ContentTaskUtils.waitForCondition(() => content.document.querySelectorAll(siteSelector).length === 1, "1 search topsite displayed after we unpin the other one"); }, after: () => { diff --git a/browser/components/newtab/test/browser/browser_topsites_section.js b/browser/components/newtab/test/browser/browser_topsites_section.js index 509d6a15c8f7..804e2c348e57 100644 --- a/browser/components/newtab/test/browser/browser_topsites_section.js +++ b/browser/components/newtab/test/browser/browser_topsites_section.js @@ -25,10 +25,11 @@ test_newtab({ before: setDefaultTopSites, // it should pin the website when we click the first option of the topsite context menu. test: async function topsites_pin_unpin() { - await ContentTaskUtils.waitForCondition(() => content.document.querySelector(".top-site-icon"), + const siteSelector = ".top-site-outer:not(.search-shortcut):not(.placeholder)"; + await ContentTaskUtils.waitForCondition(() => content.document.querySelector(siteSelector), "Topsite tippytop icon not found"); // There are only topsites on the page, the selector with find the first topsite menu button. - let topsiteEl = content.document.querySelector(".top-site-outer:not(.search-shortcut)"); + let topsiteEl = content.document.querySelector(siteSelector); let topsiteContextBtn = topsiteEl.querySelector(".context-menu-button"); topsiteContextBtn.click(); diff --git a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js index 815e648e4ae1..59167bcaaf3a 100644 --- a/browser/components/newtab/test/unit/asrouter/ASRouter.test.js +++ b/browser/components/newtab/test/unit/asrouter/ASRouter.test.js @@ -793,7 +793,7 @@ describe("ASRouter", () => { describe("#onMessage: INSTALL_ADDON_FROM_URL", () => { it("should call installAddonFromURL with correct arguments", async () => { sandbox.stub(MessageLoaderUtils, "installAddonFromURL").resolves(null); - const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {args: "foo.com"}}); + const msg = fakeExecuteUserAction({type: "INSTALL_ADDON_FROM_URL", data: {url: "foo.com"}}); await Router.onMessage(msg); diff --git a/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js index 98bef5393105..850e37056456 100644 --- a/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js +++ b/browser/components/newtab/test/unit/asrouter/CFRMessageProvider.test.js @@ -41,4 +41,12 @@ describe("CFRMessageProvider", () => { assert.deepEqual(cohort3.frequency, {lifetime: 3}, "three day cohort has the right frequency cap"); assert.include(cohort3.targeting, `(providerCohorts.cfr == "three_per_day_amazon")`); }); + it("should always have xpinstallEnabled as targeting if it is an addon", () => { + for (const message of messages) { + // Ensure that the CFR messages that are recommending an addon have this targeting. + // In the future when we can do targeting based on category, this test will change. + // See bug 1494778 and 1497653 + assert.include(message.targeting, `(xpinstallEnabled == true)`); + } + }); }); diff --git a/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx b/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx index 6e8e68d22a61..2f6aba4503bb 100644 --- a/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx +++ b/browser/components/newtab/test/unit/asrouter/asrouter-content.test.jsx @@ -5,6 +5,8 @@ import {GlobalOverrider} from "test/unit/utils"; import {mount} from "enzyme"; import React from "react"; let [FAKE_MESSAGE] = FAKE_LOCAL_MESSAGES; +const FAKE_NEWSLETTER_SNIPPET = FAKE_LOCAL_MESSAGES.find(msg => msg.id === "newsletter"); +const FAKE_FXA_SNIPPET = FAKE_LOCAL_MESSAGES.find(msg => msg.id === "fxa"); FAKE_MESSAGE = Object.assign({}, FAKE_MESSAGE, {provider: "fakeprovider"}); const FAKE_BUNDLED_MESSAGE = {bundle: [{id: "foo", template: "onboarding", content: {title: "Foo", body: "Foo123"}}], extraTemplateStrings: {}, template: "onboarding"}; @@ -85,6 +87,20 @@ describe("ASRouterUISurface", () => { assert.isTrue(wrapper.exists()); }); + it("should pass in the correct form_method for newsletter snippets", () => { + wrapper.setState({message: FAKE_NEWSLETTER_SNIPPET}); + + assert.isTrue(wrapper.find("SubmitFormSnippet").exists()); + assert.propertyVal(wrapper.find("SubmitFormSnippet").props(), "form_method", "POST"); + }); + + it("should pass in the correct form_method for fxa snippets", () => { + wrapper.setState({message: FAKE_FXA_SNIPPET}); + + assert.isTrue(wrapper.find("SubmitFormSnippet").exists()); + assert.propertyVal(wrapper.find("SubmitFormSnippet").props(), "form_method", "GET"); + }); + it("should render the component if a bundle of messages is defined", () => { wrapper.setState({bundle: FAKE_BUNDLED_MESSAGE}); assert.isTrue(wrapper.exists()); diff --git a/browser/components/newtab/test/unit/asrouter/constants.js b/browser/components/newtab/test/unit/asrouter/constants.js index 1bf5d8a502f1..c33c29e4f86e 100644 --- a/browser/components/newtab/test/unit/asrouter/constants.js +++ b/browser/components/newtab/test/unit/asrouter/constants.js @@ -7,6 +7,8 @@ export const FAKE_LOCAL_MESSAGES = [ {id: "foo2", template: "simple_snippet", bundled: 2, order: 2, content: {title: "Foo2", body: "Foo123-2"}}, {id: "bar", template: "fancy_template", content: {title: "Foo", body: "Foo123"}}, {id: "baz", content: {title: "Foo", body: "Foo123"}}, + {id: "newsletter", template: "newsletter_snippet", content: {title: "Foo", body: "Foo123"}}, + {id: "fxa", template: "fxa_signup_snippet", content: {title: "Foo", body: "Foo123"}}, ]; export const FAKE_LOCAL_PROVIDER = {id: "onboarding", type: "local", localProvider: "FAKE_LOCAL_PROVIDER", enabled: true, cohort: 0}; export const FAKE_LOCAL_PROVIDERS = {FAKE_LOCAL_PROVIDER: {getMessages: () => FAKE_LOCAL_MESSAGES}}; diff --git a/browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx similarity index 77% rename from browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx rename to browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx index 2bdd2acd6ed1..6809c3428b41 100644 --- a/browser/components/newtab/test/unit/asrouter/templates/NewsletterSnippet.test.jsx +++ b/browser/components/newtab/test/unit/asrouter/templates/SubmitFormSnippet.test.jsx @@ -1,25 +1,27 @@ import {mount} from "enzyme"; -import {NewsletterSnippet} from "content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.jsx"; import React from "react"; -import schema from "content-src/asrouter/templates/NewsletterSnippet/NewsletterSnippet.schema.json"; +import schema from "content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.schema.json"; +import {SubmitFormSnippet} from "content-src/asrouter/templates/SubmitFormSnippet/SubmitFormSnippet.jsx"; const DEFAULT_CONTENT = { - text: "foo", + scene1_text: "foo", scene2_text: "bar", - button_label: "Sign Up", + scene1_button_label: "Sign Up", form_action: "foo.com", hidden_inputs: {"foo": "foo"}, + error_text: "error", + success_text: "success", }; -describe("NewsletterSnippet", () => { +describe("SubmitFormSnippet", () => { let sandbox; let onBlockStub; /** - * mountAndCheckProps - Mounts a NewsletterSnippet with DEFAULT_CONTENT extended with any props + * mountAndCheckProps - Mounts a SubmitFormSnippet with DEFAULT_CONTENT extended with any props * passed in the content param and validates props against the schema. * @param {obj} content Object containing custom message content (e.g. {text, icon, title}) - * @returns enzyme wrapper for SimpleSnippet + * @returns enzyme wrapper for SubmitFormSnippet */ function mountAndCheckProps(content = {}) { const props = { @@ -28,9 +30,10 @@ describe("NewsletterSnippet", () => { onDismiss: sandbox.stub(), sendUserActionTelemetry: sandbox.stub(), onAction: sandbox.stub(), + form_method: "POST", }; assert.jsonSchema(props.content, schema); - return mount(); + return mount(); } beforeEach(() => { @@ -43,7 +46,7 @@ describe("NewsletterSnippet", () => { }); it("should render .text", () => { - const wrapper = mountAndCheckProps({text: "bar"}); + const wrapper = mountAndCheckProps({scene1_text: "bar"}); assert.equal(wrapper.find(".body").text(), "bar"); }); it("should not render title element if no .title prop is supplied", () => { @@ -51,15 +54,15 @@ describe("NewsletterSnippet", () => { assert.lengthOf(wrapper.find(".title"), 0); }); it("should render .title", () => { - const wrapper = mountAndCheckProps({title: "Foo"}); + const wrapper = mountAndCheckProps({scene1_title: "Foo"}); assert.equal(wrapper.find(".title").text(), "Foo"); }); it("should render .icon", () => { - const wrapper = mountAndCheckProps({icon: "data:image/gif;base64,R0lGODl"}); + const wrapper = mountAndCheckProps({scene1_icon: "data:image/gif;base64,R0lGODl"}); assert.equal(wrapper.find(".icon").prop("src"), "data:image/gif;base64,R0lGODl"); }); it("should render .button_label and default className", () => { - const wrapper = mountAndCheckProps({button_label: "Click here"}); + const wrapper = mountAndCheckProps({scene1_button_label: "Click here"}); const button = wrapper.find("button.ASRouterButton"); assert.equal(button.text(), "Click here"); @@ -73,7 +76,7 @@ describe("NewsletterSnippet", () => { beforeEach(() => { wrapper = mountAndCheckProps({ - text: "bar", + scene1_text: "bar", scene2_email_placeholder_text: "Email", scene2_text: "signup", }); @@ -167,5 +170,25 @@ describe("NewsletterSnippet", () => { assert.equal(wrapper.state().signupSubmitted, false); }); + it("should not render the privacy notice checkbox if prop is missing", () => { + wrapper.setState({expanded: true}); + + assert.isFalse(wrapper.find(".privacy-notice").exists()); + }); + it("should render the privacy notice checkbox if prop is provided", () => { + wrapper.setProps({privacyNoticeRichText: "privacy notice"}); + wrapper.setState({expanded: true}); + + assert.isTrue(wrapper.find(".privacy-notice").exists()); + }); + it("should not call fetch if form_method is GET", async () => { + sandbox.stub(window, "fetch").resolves(fetchOk); + wrapper.setProps({form_method: "GET"}); + wrapper.setState({expanded: true}); + + await wrapper.instance().handleSubmit({preventDefault: sandbox.stub()}); + + assert.notCalled(window.fetch); + }); }); }); diff --git a/browser/components/newtab/test/unit/lib/PlacesFeed.test.js b/browser/components/newtab/test/unit/lib/PlacesFeed.test.js index d1142f0b2d62..1a3163987632 100644 --- a/browser/components/newtab/test/unit/lib/PlacesFeed.test.js +++ b/browser/components/newtab/test/unit/lib/PlacesFeed.test.js @@ -1,7 +1,7 @@ import {actionCreators as ac, actionTypes as at} from "common/Actions.jsm"; import {GlobalOverrider} from "test/unit/utils"; import {PlacesFeed} from "lib/PlacesFeed.jsm"; -const {HistoryObserver, BookmarksObserver} = PlacesFeed; +const {HistoryObserver, BookmarksObserver, PlacesObserver} = PlacesFeed; const FAKE_BOOKMARK = {bookmarkGuid: "xi31", bookmarkTitle: "Foo", dateAdded: 123214232, url: "foo.com"}; const TYPE_BOOKMARK = 0; // This is fake, for testing @@ -38,6 +38,8 @@ describe("PlacesFeed", () => { sandbox.spy(global.PlacesUtils.bookmarks, "removeObserver"); sandbox.spy(global.PlacesUtils.history, "addObserver"); sandbox.spy(global.PlacesUtils.history, "removeObserver"); + sandbox.spy(global.PlacesUtils.observers, "addListener"); + sandbox.spy(global.PlacesUtils.observers, "removeListener"); sandbox.spy(global.Services.obs, "addObserver"); sandbox.spy(global.Services.obs, "removeObserver"); sandbox.spy(global.Cu, "reportError"); @@ -74,21 +76,33 @@ describe("PlacesFeed", () => { assert.calledOnce(feed.store.dispatch); assert.equal(feed.store.dispatch.firstCall.args[0].type, action.type); }); + + it("should have a PlacesObserver that dispatches to the store", () => { + assert.instanceOf(feed.placesObserver, PlacesObserver); + const action = {type: "FOO"}; + + feed.placesObserver.dispatch(action); + + assert.calledOnce(feed.store.dispatch); + assert.equal(feed.store.dispatch.firstCall.args[0].type, action.type); + }); describe("#onAction", () => { - it("should add bookmark, history, blocked observers on INIT", () => { + it("should add bookmark, history, places, blocked observers on INIT", () => { feed.onAction({type: at.INIT}); assert.calledWith(global.PlacesUtils.history.addObserver, feed.historyObserver, true); assert.calledWith(global.PlacesUtils.bookmarks.addObserver, feed.bookmarksObserver, true); + assert.calledWith(global.PlacesUtils.observers.addListener, ["bookmark-added"], feed.placesObserver.handlePlacesEvent); assert.calledWith(global.Services.obs.addObserver, feed, BLOCKED_EVENT); }); - it("should remove bookmark, history, blocked observers, and timers on UNINIT", () => { + it("should remove bookmark, history, places, blocked observers, and timers on UNINIT", () => { feed.placesChangedTimer = global.Cc["@mozilla.org/timer;1"].createInstance(); let spy = feed.placesChangedTimer.cancel; feed.onAction({type: at.UNINIT}); assert.calledWith(global.PlacesUtils.history.removeObserver, feed.historyObserver); assert.calledWith(global.PlacesUtils.bookmarks.removeObserver, feed.bookmarksObserver); + assert.calledWith(global.PlacesUtils.observers.removeListener, ["bookmark-added"], feed.placesObserver.handlePlacesEvent); assert.calledWith(global.Services.obs.removeObserver, feed, BLOCKED_EVENT); assert.equal(feed.placesChangedTimer, null); assert.calledOnce(spy); @@ -343,19 +357,21 @@ describe("PlacesFeed", () => { }); describe("Custom dispatch", () => { - it("should only dispatch 1 PLACES_LINKS_CHANGED action if many onItemAdded notifications happened at once", async () => { - const args = { - type: "bookmark-added", + it("should only dispatch 1 PLACES_LINKS_CHANGED action if many bookmark-added notifications happened at once", async () => { + // Yes, onItemAdded has at least 8 arguments. See function definition for docs. + const args = [{ itemType: TYPE_BOOKMARK, - url: "https://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await feed.placesObserver.handlePlacesEvents([args]); - await feed.placesObserver.handlePlacesEvents([args]); - await feed.placesObserver.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); + await feed.placesObserver.handlePlacesEvent(args); assert.calledOnce(feed.store.dispatch.withArgs(ac.OnlyToMain({type: at.PLACES_LINKS_CHANGED}))); }); it("should only dispatch 1 PLACES_LINKS_CHANGED action if many onItemRemoved notifications happened at once", async () => { @@ -377,125 +393,138 @@ describe("PlacesFeed", () => { }); describe("PlacesObserver", () => { - let dispatch; - let observer; - beforeEach(() => { - dispatch = sandbox.spy(); - observer = new PlacesObserver(dispatch); - }); - - describe("#handlePlacesEvents", () => { + describe("#bookmark-added", () => { + let dispatch; + let observer; beforeEach(() => { + dispatch = sandbox.spy(); + observer = new PlacesObserver(dispatch); }); - it("should dispatch a PLACES_BOOKMARK_ADDED action with the bookmark data - http", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "http://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); - assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); + assert.calledWith(dispatch.secondCall, { + type: at.PLACES_BOOKMARK_ADDED, + data: { + bookmarkGuid: FAKE_BOOKMARK.bookmarkGuid, + bookmarkTitle: FAKE_BOOKMARK.bookmarkTitle, + dateAdded: FAKE_BOOKMARK.dateAdded * 1000, + url: "http://www.foo.com", + }, + }); }); it("should dispatch a PLACES_BOOKMARK_ADDED action with the bookmark data - https", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "https://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); - assert.calledWith(dispatch, {type: at.PLACES_BOOKMARK_ADDED, data: FAKE_BOOKMARK}); + assert.calledWith(dispatch.secondCall, { + type: at.PLACES_BOOKMARK_ADDED, + data: { + bookmarkGuid: FAKE_BOOKMARK.bookmarkGuid, + bookmarkTitle: FAKE_BOOKMARK.bookmarkTitle, + dateAdded: FAKE_BOOKMARK.dateAdded * 1000, + url: "https://www.foo.com", + }, + }); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - not http/https", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "places://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.DEFAULT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); + assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has IMPORT source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.IMPORT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.IMPORT, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has RESTORE source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.RESTORE, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.RESTORE, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has RESTORE_ON_STARTUP source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.RESTORE_ON_STARTUP, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.RESTORE_ON_STARTUP, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should not dispatch a PLACES_BOOKMARK_ADDED action - has SYNC source", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: TYPE_BOOKMARK, - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.SYNC, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.SYNC, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); it("should ignore events that are not of TYPE_BOOKMARK", async () => { - const args = { - type: "bookmark-added", + const args = [{ itemType: "nottypebookmark", - url: "http://" + FAKE_BOOKMARK.url, - title: FAKE_BOOKMARK.bookmarkTitle, + source: SOURCES.DEFAULT, dateAdded: FAKE_BOOKMARK.dateAdded, guid: FAKE_BOOKMARK.bookmarkGuid, - source: SOURCES.SYNC, - }; - await observer.handlePlacesEvents([args]); + title: FAKE_BOOKMARK.bookmarkTitle, + url: "https://www.foo.com", + isTagging: false, + }]; + await observer.handlePlacesEvent(args); assert.notCalled(dispatch); }); diff --git a/browser/components/newtab/test/unit/unit-entry.js b/browser/components/newtab/test/unit/unit-entry.js index fc9dd01bac58..f02b16044e0d 100644 --- a/browser/components/newtab/test/unit/unit-entry.js +++ b/browser/components/newtab/test/unit/unit-entry.js @@ -91,6 +91,10 @@ const TEST_GLOBAL = { get history() { return TEST_GLOBAL.Cc["@mozilla.org/browser/nav-history-service;1"]; }, + observers: { + addListener() {}, + removeListener() {}, + }, }, PluralForm: {get() {}}, Preferences: FakePrefs,
{content.scene2_text}
\n \n {this.props.privacyNoticeRichText}\n
{JSON.stringify(msg, null, 2)}
\n \n \n
\n {getFormattedMessage(emptyState.message)}\n
{'Hello, world!'}
{'Hello, { $username }!'}
{content.text}
{props.richText || props.content.text}
{link.description}