Compare commits

..

46 Commits

Author SHA1 Message Date
mr. m
aa52fef6b8 New translations zen-space-routing.ftl (Chinese Traditional)
[ci skip]
2026-08-31 02:57:19 +02:00
mr. m
15fca355fe New translations zen-welcome.ftl (nb-NO)
[ci skip]
2026-08-31 02:57:18 +02:00
mr. m
a939d641ef New translations zen-welcome.ftl (Bosnian)
[ci skip]
2026-08-31 02:57:17 +02:00
mr. m
0ecefcaf58 New translations zen-welcome.ftl (Welsh)
[ci skip]
2026-08-31 02:57:16 +02:00
mr. m
dc99d63e8c New translations zen-welcome.ftl (English, United Kingdom)
[ci skip]
2026-08-31 02:57:15 +02:00
mr. m
714a1a1010 New translations zen-welcome.ftl (Estonian)
[ci skip]
2026-08-31 02:57:13 +02:00
mr. m
83fce7ad20 New translations zen-welcome.ftl (Norwegian Nynorsk)
[ci skip]
2026-08-31 02:57:12 +02:00
mr. m
6aa712e672 New translations zen-welcome.ftl (Thai)
[ci skip]
2026-08-31 02:57:11 +02:00
mr. m
ac2f0349d6 New translations zen-welcome.ftl (Persian)
[ci skip]
2026-08-31 02:57:09 +02:00
mr. m
1ee9cc6284 New translations zen-welcome.ftl (Indonesian)
[ci skip]
2026-08-31 02:57:08 +02:00
mr. m
234a0f69b9 New translations zen-welcome.ftl (Portuguese, Brazilian)
[ci skip]
2026-08-31 02:57:07 +02:00
mr. m
f3a0897d6b New translations zen-welcome.ftl (Icelandic)
[ci skip]
2026-08-31 02:57:06 +02:00
mr. m
0bbe3cdde2 New translations zen-welcome.ftl (Vietnamese)
[ci skip]
2026-08-31 02:57:05 +02:00
mr. m
3de6b7a037 New translations zen-welcome.ftl (Chinese Traditional)
[ci skip]
2026-08-31 02:57:03 +02:00
mr. m
6c1ac100e4 New translations zen-welcome.ftl (Chinese Simplified)
[ci skip]
2026-08-31 02:57:02 +02:00
mr. m
1270052445 New translations zen-welcome.ftl (Ukrainian)
[ci skip]
2026-08-31 02:57:01 +02:00
mr. m
cd9f861154 New translations zen-welcome.ftl (Turkish)
[ci skip]
2026-08-31 02:57:00 +02:00
mr. m
f265386bee New translations zen-welcome.ftl (Swedish)
[ci skip]
2026-08-31 02:56:58 +02:00
mr. m
af9ebab46e New translations zen-welcome.ftl (Slovak)
[ci skip]
2026-08-31 02:56:57 +02:00
mr. m
aa47da87b3 New translations zen-welcome.ftl (Russian)
[ci skip]
2026-08-31 02:56:56 +02:00
mr. m
c6ccf03db7 New translations zen-welcome.ftl (Portuguese)
[ci skip]
2026-08-31 02:56:55 +02:00
mr. m
2592ccf7b1 New translations zen-welcome.ftl (Polish)
[ci skip]
2026-08-31 02:56:54 +02:00
mr. m
6ab214df69 New translations zen-welcome.ftl (Dutch)
[ci skip]
2026-08-31 02:56:53 +02:00
mr. m
2cb3ba078b New translations zen-welcome.ftl (Lithuanian)
[ci skip]
2026-08-31 02:56:51 +02:00
mr. m
f8786864a3 New translations zen-welcome.ftl (Korean)
[ci skip]
2026-08-31 02:56:50 +02:00
mr. m
4278f007a2 New translations zen-welcome.ftl (Japanese)
[ci skip]
2026-08-31 02:56:49 +02:00
mr. m
28118efed6 New translations zen-welcome.ftl (Italian)
[ci skip]
2026-08-31 02:56:47 +02:00
mr. m
ed7c5461d1 New translations zen-welcome.ftl (Hungarian)
[ci skip]
2026-08-31 02:56:46 +02:00
mr. m
fb49a9c9a4 New translations zen-welcome.ftl (Hebrew)
[ci skip]
2026-08-31 02:56:45 +02:00
mr. m
113e1ff37c New translations zen-welcome.ftl (Irish)
[ci skip]
2026-08-31 02:56:44 +02:00
mr. m
8e5e26f754 New translations zen-welcome.ftl (Finnish)
[ci skip]
2026-08-31 02:56:42 +02:00
mr. m
9a2d2923d3 New translations zen-welcome.ftl (Basque)
[ci skip]
2026-08-31 02:56:41 +02:00
mr. m
7e90f20920 New translations zen-welcome.ftl (Greek)
[ci skip]
2026-08-31 02:56:40 +02:00
mr. m
a67f05a274 New translations zen-welcome.ftl (German)
[ci skip]
2026-08-31 02:56:38 +02:00
mr. m
d7657f9f87 New translations zen-welcome.ftl (Danish)
[ci skip]
2026-08-31 02:56:37 +02:00
mr. m
3ef8a55cff New translations zen-welcome.ftl (Czech)
[ci skip]
2026-08-31 02:56:36 +02:00
mr. m
1137c93e90 New translations zen-welcome.ftl (Catalan)
[ci skip]
2026-08-31 02:56:35 +02:00
mr. m
bcb7186559 New translations zen-welcome.ftl (Bulgarian)
[ci skip]
2026-08-31 02:56:33 +02:00
mr. m
cf87a3e451 New translations zen-welcome.ftl (Arabic)
[ci skip]
2026-08-31 02:56:32 +02:00
mr. m
5244fad08e New translations zen-welcome.ftl (Spanish)
[ci skip]
2026-08-31 02:56:30 +02:00
mr. m
5e93a7f008 New translations zen-welcome.ftl (French)
[ci skip]
2026-08-31 02:56:29 +02:00
mr. m
afabbccd35 New translations zen-welcome.ftl (Romanian)
[ci skip]
2026-08-31 02:56:28 +02:00
mr. m
a4513d6ad5 New translations zen-split-view.ftl (Chinese Traditional)
[ci skip]
2026-08-31 02:56:26 +02:00
mr. m
fcbfbdabe6 New translations zen-general.ftl (Chinese Traditional)
[ci skip]
2026-08-31 02:56:25 +02:00
mr. m
e89bd7796e gh-15154: Fixed stale containers trying to sync across devices (gh-15166) 2026-08-30 00:42:45 +02:00
mr. m
66c5931a29 gh-15163: Sync upstream Firefox to version 155.0 RC (gh-15164) 2026-08-30 00:26:45 +02:00
82 changed files with 2174 additions and 3993 deletions

View File

@@ -35,7 +35,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
### Firefox Versions ### Firefox Versions
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `154.0.1`! - [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `154.0.1`!
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 154.0.1`! - [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 155.0`!
### Contributing ### Contributing

View File

@@ -1 +1 @@
bf4b57fd7fe94054457be7018e8e7beaf754c520 6b4abe0093721c1be89eb41b3fb060dd6336923d

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = مرحبا بك في zen-welcome-title-line1 = مرحبا بك في
zen-welcome-title-line2 = إنترنت أكثر هدوء zen-welcome-title-line2 = إنترنت أكثر هدوء
zen-welcome-import-title = بداية جديدة، نفس المفضّلات zen-welcome-back = Back
zen-welcome-import-description-1 = المفضّلات، سجل التصفح، وكلمات السر هي أثر خطواتك على الإنترنت…خليها معاك! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = أحضرهم بسهولة من متصفح آخر وكمل من حيث انتهيت. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = "استردهم الآن zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = اجعل { -brand-short-name } المتصفح الافتراضي لديك zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = لا تجعل { -brand-short-name } المتصفح الافتراضي لديك zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = تبويباتك، دائمًا في متناول يدك zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = احرص على أن تظل تبويباتك الأهم سهلة الوصول وفي متناول يدك دائمًا، مهما كان عددها. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = التبويبات الأساسية تبقى مرئية دائمًا، مهما كانت المساحة التي تعمل فيها. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = مساحات عملك، ألوانك zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = خصص متصفحك بمنح كل مساحة عمل هُوِيَّة. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = اختر محرك البحث الافتراضي. يمكنك تغييره لاحقًا!
كل شيء تمام؟<br/> zen-welcome-essentials-title = Choose the apps you use most.
يلا نبدأ! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = كل حاجة جاهزة، دوس على الزر تحت وابدأ التصفح بـ { -brand-short-name }. zen-welcome-start-browsing-description-1 = كل حاجة جاهزة، دوس على الزر تحت وابدأ التصفح بـ { -brand-short-name }.
zen-welcome-start-browsing = انطلق! zen-welcome-start-browsing = انطلق!
zen-welcome-default-search-title = محرك البحث الافتراضي
zen-welcome-default-search-description = اختر محرك البحث الافتراضي. يمكنك تغييره لاحقًا!
zen-welcome-skip-button = تخطي
zen-welcome-finished = تم إعداد نسختك بشكل صحيح!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All set?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lets get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All set?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lets get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Us donem la benvingut zen-welcome-title-line1 = Us donem la benvingut
zen-welcome-title-line2 = a un internet més tranquil zen-welcome-title-line2 = a un internet més tranquil
zen-welcome-import-title = Un nou començament, els mateixos marcadors zen-welcome-back = Back
zen-welcome-import-description-1 = Els vostres marcadors, historial i contrasenyes són com un rastre de molles de pa a través d'Internet: no les deixis enrere zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Porteu-los fàcilment des d'un altre navegador i repreneu exactament on ho vau deixar. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importa ara zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Estableix el { -brand-short-name } com a navegador per defecte zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NO estableixis el { -brand-short-name } com a navegador per defecte zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Les vostres pestanyes essencials, sempre a mà zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Manteniu les vostres pestanyes més importants fàcilment accessibles i sempre a mà, per molt que n'obris. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Les pestanyes essencials sempre són visibles, independentment de l'espai de treball on us trobeu. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Els vostres espais de treball, els vostres colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalitzeu el vostre navegador donant a cada espai de treball la seva pròpia identitat de color única. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Trieu el vostre motor de cerca per defecte. Sempre el podeu canviar més tard
Tot a punt?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Som-hi! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Ja esteu llestos i preparats per començar. Feu clic al botó següent per començar a navegar amb el { -brand-short-name }. zen-welcome-start-browsing-description-1 = Ja esteu llestos i preparats per començar. Feu clic al botó següent per començar a navegar amb el { -brand-short-name }.
zen-welcome-start-browsing = Som-hi! zen-welcome-start-browsing = Som-hi!
zen-welcome-default-search-title = El vostre motor de cerca per defecte
zen-welcome-default-search-description = Trieu el vostre motor de cerca per defecte. Sempre el podeu canviar més tard
zen-welcome-skip-button = Omet
zen-welcome-finished = El Zen s'ha configurat correctament

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Přivítejte zen-welcome-title-line1 = Přivítejte
zen-welcome-title-line2 = klidnější internet zen-welcome-title-line2 = klidnější internet
zen-welcome-import-title = Nový začátek, stejné záložky zen-welcome-back = Back
zen-welcome-import-description-1 = Vaše záložky, historie a hesla jsou jako stopa drobků po internetu—nenechávejte je za sebou! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Snadno je přeneste z jiného prohlížeče a pokračujte přesně tam, kde jste skončili.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importovat nyní zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Nastavit { -brand-short-name } jako výchozí prohlížeč zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NENASTAVOVAT { -brand-short-name } jako výchozí prohlížeč zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Vaše klíčové panely vždy na dosah zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Mějte své nejdůležitější panely snadno dostupné a vždy po ruce, bez ohledu na to, kolik jich otevřete. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential panely jsou vždy viditelné, bez ohledu na to, ve kterém pracovním prostoru se nacházíte. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Vaše pracovní prostory, vaše barvy zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Přizpůsobte si prohlížeč a dejte každému pracovnímu prostoru jeho vlastní barvu. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Vyberte si svůj výchozí vyhledávač. Později jej můžete změnit!
Všechno připraveno?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Tak pojďme na to! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Všechno máte nastaveno a jste připraveni vyrazit. Klikněte na tlačítko níže a začněte prohlížet s prohlížečem { -brand-short-name }. zen-welcome-start-browsing-description-1 = Všechno máte nastaveno a jste připraveni vyrazit. Klikněte na tlačítko níže a začněte prohlížet s prohlížečem { -brand-short-name }.
zen-welcome-start-browsing = Pustit se do toho! zen-welcome-start-browsing = Pustit se do toho!
zen-welcome-default-search-title = Váš výchozí vyhledávač
zen-welcome-default-search-description = Vyberte si svůj výchozí vyhledávač. Později jej můžete změnit!
zen-welcome-skip-button = Přeskočit
zen-welcome-finished = Váš Zen byl úspěšně nastaven!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Croeso i zen-welcome-title-line1 = Croeso i
zen-welcome-title-line2 = rhyngrwyd llonyddach zen-welcome-title-line2 = rhyngrwyd llonyddach
zen-welcome-import-title = Dechrau Newydd, Yr Un Nodau Tudalen zen-welcome-back = Back
zen-welcome-import-description-1 = Mae eich nodau tudalen, hanes a chyfrineiriau fel llwybr o friwsion ar draws y rhyngrwyd—peidiwch eu gadael ar eich hôl! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Dewch â nhw drosodd yn hawdd o borwr arall a phara ymlaen o le roeddech chi. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Mewnforio nawr zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Gosod { -brand-short-name } fel eich porwr arferol zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = PEIDIO gosod { -brand-short-name } fel eich porwr arferol zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Eich Tabiau Allweddol, Bob Tro o Fewn Gafael zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Cadwch eich tabiau pwysicaf yn hawdd eu cyrraedd ac wrth law bob amser, faint bynnag rydych chi'n eu hagor. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Mae tabiau hanfodol bob amser yn weladwy, pa bynnag man gwaith rydych chi ynddo. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Eich Mannau Gwaith, Eich Lliwiau zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personolwch eich porwr trwy roi lliw unigryw i bob gweithle. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Dewiswch eich peiriant chwilio arferol. Gallwch chi ei newid yn nes ymlaen!
Yn barod?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Ffwrdd â ni! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Rydych chi wedi'ch paratoi ac yn barod i fynd. Cliciwch y botwm isod i ddechrau pori gyda { -brand-short-name }. zen-welcome-start-browsing-description-1 = Rydych chi wedi'ch paratoi ac yn barod i fynd. Cliciwch y botwm isod i ddechrau pori gyda { -brand-short-name }.
zen-welcome-start-browsing = Ymlaen! zen-welcome-start-browsing = Ymlaen!
zen-welcome-default-search-title = Eich Peiriant Chwilio Arferol
zen-welcome-default-search-description = Dewiswch eich peiriant chwilio arferol. Gallwch chi ei newid yn nes ymlaen!
zen-welcome-skip-button = Hepgor
zen-welcome-finished = Mae eich Zen wedi'i osog yn gywir!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Velkommen til zen-welcome-title-line1 = Velkommen til
zen-welcome-title-line2 = et roligere internet zen-welcome-title-line2 = et roligere internet
zen-welcome-import-title = En frisk start, samme bogmærker zen-welcome-back = Back
zen-welcome-import-description-1 = Dine bogmærker, din historik og dine adgangskoder er som et spor af brødkrummer på internettet—efterlad dem ikke! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Bring dem nemt over fra en anden browser og fortsæt, hvor du slap. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importér nu zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Indstil { -brand-short-name } som din standardbrowser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Indstil IKKE { -brand-short-name } som din standardbrowser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Dine vigtigste faner, altid lige ved hånden zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Hold dine vigtigste faner let tilgængelige og altid lige ved hånden, uanset hvor mange du åbner. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Vigtige faner er altid synlige, uanset hvilket arbejdsområde du er i. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Dine arbejdsområder, dine farver zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Tilpas din browser ved at give hvert arbejdsområde sin egen unikke farveidentitet. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Vælg din standardsøgemaskine. Du kan altid ændre det senere!
Er du klar?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lad os komme i gang! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Du er klar til at gå i gang. Klik på knappen nedenfor for at browse med { -brand-short-name }. zen-welcome-start-browsing-description-1 = Du er klar til at gå i gang. Klik på knappen nedenfor for at browse med { -brand-short-name }.
zen-welcome-start-browsing = Kom i gang! zen-welcome-start-browsing = Kom i gang!
zen-welcome-default-search-title = Din standardsøgemaskine
zen-welcome-default-search-description = Vælg din standardsøgemaskine. Du kan altid ændre det senere!
zen-welcome-skip-button = Spring over
zen-welcome-finished = Din Zen er blevet opsat korrekt!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Willkommen in zen-welcome-title-line1 = Willkommen in
zen-welcome-title-line2 = einem ruhigeren Internet zen-welcome-title-line2 = einem ruhigeren Internet
zen-welcome-import-title = Ein neuer Anfang, dieselben Lesezeichen zen-welcome-back = Back
zen-welcome-import-description-1 = Deine Lesezeichen, dein Verlauf und deine Passwörter sind wie eine Spur durch das Internet lass sie nicht zurück! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Übertrage sie ganz einfach aus einem anderen Browser und mache genau dort weiter, wo du aufgehört hast. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Jetzt importieren zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name } als Standardbrowser festlegen zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = { -brand-short-name } NICHT als Standardbrowser festlegen zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Deine wichtigsten Tabs, immer in Reichweite zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Halte deine wichtigsten Tabs leicht zugänglich und immer griffbereit, egal wie viele du öffnest. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential-Tabs sind immer sichtbar, egal in welchem Arbeitsbereich du bist. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Deine Arbeitsbereiche, deine Farben zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalisiere deinen Browser, indem du jedem Arbeitsbereich eine eigene Farbidentität gibst. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Wähle deine Standard-Suchmaschine. Du kannst sie jederzeit später ändern!
Alles bereit?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Los geht's! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Du bist startklar! Klicke auf den Button unten, um mit { -brand-short-name } loszulegen. zen-welcome-start-browsing-description-1 = Du bist startklar! Klicke auf den Button unten, um mit { -brand-short-name } loszulegen.
zen-welcome-start-browsing = Loslegen! zen-welcome-start-browsing = Loslegen!
zen-welcome-default-search-title = Deine Standard-Suchmaschine
zen-welcome-default-search-description = Wähle deine Standard-Suchmaschine. Du kannst sie jederzeit später ändern!
zen-welcome-skip-button = Überspringen
zen-welcome-finished = Dein Zen wurde erfolgreich eingerichtet!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Καλωσορίσατε σε zen-welcome-title-line1 = Καλωσορίσατε σε
zen-welcome-title-line2 = ένα πιο ήρεμο διαδίκτυο zen-welcome-title-line2 = ένα πιο ήρεμο διαδίκτυο
zen-welcome-import-title = Μια Νέα Αρχή, Ίδιοι Σελιδοδείκτες zen-welcome-back = Back
zen-welcome-import-description-1 = Οι σελιδοδείκτες, το ιστορικό και οι κωδικοί σας είναι σαν ένα μονοπάτι από ψίχουλα στο διαδίκτυο μην τα αφήσετε πίσω! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Φέρτε τα εύκολα από έναν άλλο περιηγητή και συνεχίστε από εκεί που σταματήσατε. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Εισαγωγή τώρα zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Ορισμός του { -brand-short-name } ως προεπιλεγμένος περιηγητής zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Να ΜΗΝ οριστεί το { -brand-short-name } ως προεπιλεγμένο πρόγραμμα περιήγησης zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Οι Σημαντικές Καρτέλες σας, Ένα Κλικ Μακριά zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Κρατήστε τις πιο σημαντικές σας καρτέλες εύκολα προσβάσιμες και πάντα εύκαιρες, ανεξάρτητα από το πόσες ανοίγετε. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Οι Απαραίτητες καρτέλες είναι πάντα ορατές, ανεξάρτητα από το χώρο εργασίας που βρίσκεστε. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Οι Χώροι Εργασίας σας, τα Χρώματά σας zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Προσαρμόστε τον περιηγητή σας δίνοντας σε κάθε χώρο εργασίας τη δική του μοναδική χρωματική ταυτότητα. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Επιλέξτε την προεπιλεγμένη μηχανή αναζήτησης. Μπορείτε πάντα να την αλλάξετε αργότερα!
Όλα έτοιμα;<br/> zen-welcome-essentials-title = Choose the apps you use most.
Φύγαμε! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Είναι όλα ρυθμισμένα και έτοιμα. Κάντε κλικ στο παρακάτω κουμπί για να ξεκινήσετε την περιήγηση με το { -brand-short-name }. zen-welcome-start-browsing-description-1 = Είναι όλα ρυθμισμένα και έτοιμα. Κάντε κλικ στο παρακάτω κουμπί για να ξεκινήσετε την περιήγηση με το { -brand-short-name }.
zen-welcome-start-browsing = Ξεκινήστε! zen-welcome-start-browsing = Ξεκινήστε!
zen-welcome-default-search-title = Η Προεπιλεγμένη Μηχανή Αναζήτησης Σας
zen-welcome-default-search-description = Επιλέξτε την προεπιλεγμένη μηχανή αναζήτησης. Μπορείτε πάντα να την αλλάξετε αργότερα!
zen-welcome-skip-button = Παράλειψη
zen-welcome-finished = Το Zen σας έχει ρυθμιστεί σωστά!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = A calmer internet zen-welcome-title-line2 = A calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import Now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colours zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique colour identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All sorted?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Let's get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Bienvenido a zen-welcome-title-line1 = Bienvenido a
zen-welcome-title-line2 = un Internet más tranquilo zen-welcome-title-line2 = un Internet más tranquilo
zen-welcome-import-title = Un nuevo comienzo, los mismos marcadores zen-welcome-back = Back
zen-welcome-import-description-1 = Sus marcadores, historial, y contraseñas son como un rastro de migas de pan a través de Internet—¡no las deje atrás! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Tráigalos fácilmente desde otro navegador y continúe justo donde lo dejó. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importar ahora zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Establecer { -brand-short-name } como su navegador predeterminado zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NO establecer { -brand-short-name } como su navegador predeterminado zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Sus pestañas esenciales, siempre a su alcance zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Mantenga sus pestañas más importantes fácilmente accesibles y siempre a mano, sin importar cuantas abra. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Las pestañas esenciales están siempre a la vista, sin importar en que espacio de trabajo esté. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Sus espacios de trabajo, sus colores zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalice su navegador dándole a cada espacio de trabajo su propia identidad de color única. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Elija su motor de búsqueda predeterminado. ¡Siempre puede cambiarlo más tarde!
¿Listo?<br/> zen-welcome-essentials-title = Choose the apps you use most.
¡Pongámonos en marcha! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Está listo y preparado para continuar. Haga clic en el botón de abajo para comenzar a navegar con { -brand-short-name }. zen-welcome-start-browsing-description-1 = Está listo y preparado para continuar. Haga clic en el botón de abajo para comenzar a navegar con { -brand-short-name }.
zen-welcome-start-browsing = ¡Comencemos! zen-welcome-start-browsing = ¡Comencemos!
zen-welcome-default-search-title = Su motor de búsqueda predeterminado
zen-welcome-default-search-description = Elija su motor de búsqueda predeterminado. ¡Siempre puede cambiarlo más tarde!
zen-welcome-skip-button = Omitir
zen-welcome-finished = ¡Su Zen se ha configurado correctamente!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Tere tulemast zen-welcome-title-line1 = Tere tulemast
zen-welcome-title-line2 = rahulikumasse internetti zen-welcome-title-line2 = rahulikumasse internetti
zen-welcome-import-title = Värske algus, samad järjehoidjad zen-welcome-back = Back
zen-welcome-import-description-1 = Sinu järjehoidjad, ajalugu ja paroolid on nagu seni läbitud rada internetis—ära jäta seda maha! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Impordi nüüd zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Määra { -brand-short-name } oma vaikebrauseriks zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = ÄRA määra { -brand-short-name } oma vaikebrauseriks zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Sinu põhilised kaardid, alati käeulatuses zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Hoia oma kõige olulisemad kaardid hõlpsalt juurdepääsetavad ning käeulatuses, hoolimata sellest, kui mitu neid avad. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Olulised kaardid on alati nähtavad sõltumata sellest, millises tööruumis hetkel oled. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Sinu tööruumid, sinu värvid zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Isikupärasta oma brauser, andes igale tööruumile omapärase värvitooni. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Vali oma vaikimisi otsingumootor. Saad seda alati hiljem muuta!
Valmis?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Alustame! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Kõik on valmis. { -brand-short-name }iga sirvimise alustamiseks klõpsake alloleval nupul. zen-welcome-start-browsing-description-1 = Kõik on valmis. { -brand-short-name }iga sirvimise alustamiseks klõpsake alloleval nupul.
zen-welcome-start-browsing = Hakkame pihta! zen-welcome-start-browsing = Hakkame pihta!
zen-welcome-default-search-title = Sinu vaikimisi otsingumootor
zen-welcome-default-search-description = Vali oma vaikimisi otsingumootor. Saad seda alati hiljem muuta!
zen-welcome-skip-button = Jäta vahele
zen-welcome-finished = Zen on edukalt seadistatud!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All set?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lets get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All set?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lets get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Tervetuloa zen-welcome-title-line1 = Tervetuloa
zen-welcome-title-line2 = rauhellisempaan internettiin zen-welcome-title-line2 = rauhellisempaan internettiin
zen-welcome-import-title = Tuore Aloitus, Samat Kirjanmerkit zen-welcome-back = Back
zen-welcome-import-description-1 = Kirjanmerkit, historia ja salasanat ovat kuin polku leivänmurteita Internetin kautta - älä jätä niitä taakse! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Tuo ne helposti toisesta selaimesta ja jatka eteenpäin siitä, mihin jäit. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Tuo nyt zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Aseta { -brand-short-name } oletusselaimeksi zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = ÄLÄ asettanut { -brand-short-name } oletusselaimeksi zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Tärkeimmät Välilehtesi, Aina Saavutuksen Sisällä zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Pidä tärkeimmät välilehdet helposti saatavilla riippumatta siitä, kuinka monta olet avannut. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Olennaiset välilehdet ovat aina näkyvissä, riippumatta siitä, missä työtilassa olet. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Sinun Työtilasi, Sinun Värisi zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Mukauta selainta antamalla jokaiselle työtilalle oma väri-identiteetti. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Valitse oletushakukone. Voit aina muuttaa sitä myöhemmin!
Kaikki asetettu?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Aletaan toimiin! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Kaikki on asetettu ja olet valmis menemään. Napsauta alla olevaa painiketta aloittaaksesi selailun { -brand-short-name } -sovelluksella. zen-welcome-start-browsing-description-1 = Kaikki on asetettu ja olet valmis menemään. Napsauta alla olevaa painiketta aloittaaksesi selailun { -brand-short-name } -sovelluksella.
zen-welcome-start-browsing = Sukella sisään! zen-welcome-start-browsing = Sukella sisään!
zen-welcome-default-search-title = Sinun Oletushakukone
zen-welcome-default-search-description = Valitse oletushakukone. Voit aina muuttaa sitä myöhemmin!
zen-welcome-skip-button = Ohita
zen-welcome-finished = Zen on määritetty oikein!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Bienvenue dans zen-welcome-title-line1 = Bienvenue dans
zen-welcome-title-line2 = un Internet plus calme zen-welcome-title-line2 = un Internet plus calme
zen-welcome-import-title = Un nouveau départ, les mêmes favoris zen-welcome-back = Back
zen-welcome-import-description-1 = Vos favoris, votre historique, et vos mots de passe sont comme des miettes sur internet. Ne les laissez pas trainer derrière vous! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Importez-les facilement depuis un autre navigateur et reprenez là où vous vous êtes arrêté. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importer maintenant zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Définir { -brand-short-name } comme votre navigateur par défaut zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NE PAS définir { -brand-short-name } comme votre navigateur par défaut zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Vos onglets principaux, toujours à portée de main zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Gardez vos onglets les plus importants facilement accessibles et toujours à portée de main, peu importe combien vous en ouvrez. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Les onglets Essentials sont toujours visibles, peu importe lespace de travail où vous êtes. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Vos espaces de travail, vos couleurs zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personnalisez votre navigateur en donnant à chaque espace de travail sa propre identité de couleur. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Sélectionnez votre moteur de recherche par défaut. Vous pouvez toujours le modifier plus tard !
Tout est prêt?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Alors allons-y! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Vous êtes prêt à naviguer. Cliquez sur le bouton ci-dessous pour commencer à naviguer avec { -brand-short-name }. zen-welcome-start-browsing-description-1 = Vous êtes prêt à naviguer. Cliquez sur le bouton ci-dessous pour commencer à naviguer avec { -brand-short-name }.
zen-welcome-start-browsing = Cest parti! zen-welcome-start-browsing = Cest parti!
zen-welcome-default-search-title = Votre moteur de recherche par défaut
zen-welcome-default-search-description = Sélectionnez votre moteur de recherche par défaut. Vous pouvez toujours le modifier plus tard !
zen-welcome-skip-button = Ignorer
zen-welcome-finished = Votre navigateur Zen a été configuré correctement!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Fáilte go zen-welcome-title-line1 = Fáilte go
zen-welcome-title-line2 = idirlíon níos ciúine zen-welcome-title-line2 = idirlíon níos ciúine
zen-welcome-import-title = Tús Úr, Leabharmharcanna Céanna zen-welcome-back = Back
zen-welcome-import-description-1 = Tá do leabharmharcanna, do stair agus do phasfhocail cosúil le rian brioscaí aráin tríd an idirlíon—ná fág i do dhiaidh iad! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Tabhair anonn iad go héasca ó bhrabhsálaí eile agus lean ar aghaidh díreach san áit ar fhág tú iad. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Iompórtáil anois zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Socraigh { -brand-short-name } mar do bhrabhsálaí réamhshocraithe zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NÁ socraigh { -brand-short-name } mar do bhrabhsálaí réamhshocraithe zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = D'Eochairchluaisíní, Laistigh de Shroicheann I gCónaí zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Coinnigh do chluaisíní is tábhachtaí inrochtana go héasca agus i gcónaí ar láimh, is cuma cé mhéad a osclaíonn tú. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Bíonn cluaisíní riachtanacha le feiceáil i gcónaí, is cuma cén spás oibre ina bhfuil tú. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Do Spásanna Oibre, Do Dathanna zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Pearsanaigh do bhrabhsálaí trí chéannacht datha uathúil a thabhairt do gach spás oibre. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Roghnaigh d'inneall cuardaigh réamhshocraithe. Is féidir leat é a athrú níos déanaí!
Réidh go léir?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Tosaímis ag obair! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Tá tú réidh le tosú. Cliceáil an cnaipe thíos chun tús a chur le brabhsáil le { -brand-short-name }. zen-welcome-start-browsing-description-1 = Tá tú réidh le tosú. Cliceáil an cnaipe thíos chun tús a chur le brabhsáil le { -brand-short-name }.
zen-welcome-start-browsing = Tum isteach! zen-welcome-start-browsing = Tum isteach!
zen-welcome-default-search-title = D'Inneall Cuardaigh Réamhshocraithe
zen-welcome-default-search-description = Roghnaigh d'inneall cuardaigh réamhshocraithe. Is féidir leat é a athrú níos déanaí!
zen-welcome-skip-button = Scipeáil
zen-welcome-finished = Tá do Zen socraithe i gceart!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = ברוך בואך אל zen-welcome-title-line1 = ברוך בואך אל
zen-welcome-title-line2 = אינטרנט רגוע יותר zen-welcome-title-line2 = אינטרנט רגוע יותר
zen-welcome-import-title = התחלה חדשה, אותן סימניות zen-welcome-back = Back
zen-welcome-import-description-1 = הסימניות, ההיסטוריה, והסיסמאות שלך הן כמו שביל פירורי לחם דרך האינטרנט—לא להשאיר אותן מאחור! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = אפשר להחזיר אותן בקלות מדפדפן אחר ולהמשיך בדיוק מאיפה שהפסקת.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = ייבוא כעת zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = הגדרת { -brand-short-name } כדפדפן ברירת מחדל zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = לא להגדיר את { -brand-short-name } כדפדפן ברירת מחדל zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = הלשוניות החשובות, תמיד במרחק לחיצה zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = הלשוניות הכי חשובות שלך תמיד זמינות וקל לגשת אליהן, לא משנה כמה לשוניות פתוחות. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = הלשוניות הנחוצות מוצגות תמיד, לא משנה באיזה מרחב עבודה משתמשים. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = מרחבי העבודה שלך, בצבעים שלך zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = אפשר להתאים אישית את הדפדפן שלך ולתת לכל מרחב עבודה צבע ייחודי. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = נא לבחור מנוע החיפוש ברירת מחדל. תמיד ניתן לשנות הגדרה זו!
הכול מוכן?<br/> zen-welcome-essentials-title = Choose the apps you use most.
יוצאים לדרך! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = הכול מוגדר והדפדפן מוכן לשימוש. יש ללחוץ על הכפתור למטה בשביל להתחיל לגלוש עם { -brand-short-name }. zen-welcome-start-browsing-description-1 = הכול מוגדר והדפדפן מוכן לשימוש. יש ללחוץ על הכפתור למטה בשביל להתחיל לגלוש עם { -brand-short-name }.
zen-welcome-start-browsing = מתחילים! zen-welcome-start-browsing = מתחילים!
zen-welcome-default-search-title = מנוע חיפוש ברירת מחדל
zen-welcome-default-search-description = נא לבחור מנוע החיפוש ברירת מחדל. תמיד ניתן לשנות הגדרה זו!
zen-welcome-skip-button = דילוג
zen-welcome-finished = דפדפן Zen שלך הוגדר בהצלחה!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Üdvözöljük zen-welcome-title-line1 = Üdvözöljük
zen-welcome-title-line2 = egy nyugodtabb interneten zen-welcome-title-line2 = egy nyugodtabb interneten
zen-welcome-import-title = Egy új kezdet, ugyanazok a könyvjelzők zen-welcome-back = Back
zen-welcome-import-description-1 = A könyvjelzői, előzményei és jelszavai olyanok, mint a kenyérmorzsák az interneten - ne hagyja hátra őket! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Könnyedén áthozhatja őket egy másik böngészőből, és ott folytathatja, ahol abbahagyta.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importálás most zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name } beállítása alapértelmezett böngészőnek zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NE állítsa be a { -brand-short-name } böngészőt alapértelmezett böngészőként zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = A legfontosabb lapok, mindig kéznél zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = A legfontosabb lapokat könnyen elérhetővé és mindig kéznél tarthatja, függetlenül attól, hogy hányat nyit meg. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Az alapvető lapok mindig láthatóak, függetlenül attól, hogy milyen munkaterületen van. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Az Ön munkakörnyezetei, az Ön színei zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Személyre szabhatja böngészőjét azáltal, hogy minden munkaterületnek saját, egyedi színt ad. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Válassza ki az alapértelmezett keresőmotort. Később bármikor megváltoztathatja!
Minden kész?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Kezdjük! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Minden előkészítve és készen áll az indulásra. Kattintson az alábbi gombra a böngészés megkezdéséhez a { -brand-short-name } használatával. zen-welcome-start-browsing-description-1 = Minden előkészítve és készen áll az indulásra. Kattintson az alábbi gombra a böngészés megkezdéséhez a { -brand-short-name } használatával.
zen-welcome-start-browsing = Merüljön el! zen-welcome-start-browsing = Merüljön el!
zen-welcome-default-search-title = Az Ön alapértelmezett keresőmotorja
zen-welcome-default-search-description = Válassza ki az alapértelmezett keresőmotort. Később bármikor megváltoztathatja!
zen-welcome-skip-button = Kihagyás
zen-welcome-finished = A Zen helyesen lett beállítva!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Selamat datang di zen-welcome-title-line1 = Selamat datang di
zen-welcome-title-line2 = internet yang lebih tenang zen-welcome-title-line2 = internet yang lebih tenang
zen-welcome-import-title = Permulaan baru, Bookmark tetap sama zen-welcome-back = Back
zen-welcome-import-description-1 = Bookmark, histori dan password anda adalah Jejak remah roti yang anda tinggalkan di internet--jangan tinggalkan begitu saja! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Semudah mengambil dari peramban lain dan melanjutkan dari yang anda tinggalkan. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Impor sekarang zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Jadikan { -brand-short-name } sebagai peramban baku zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Jangan jadikan { -brand-short-name } sebagai peramban baku zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Tab Penting Anda, Selalu dalam Jangkauan zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Pastikan tab terpenting Anda mudah diakses dan selalu tersedia, berapa pun jumlah tab yang Anda buka. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Tab esensial selalu terlihat, di ruang kerja mana pun Anda berada. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Ruang Kerja Anda, Warna Anda zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Atur peramban anda dengan memberikan warna tersendiri tiap ruang kerja. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Pilih mesin pencari default Anda. Anda selalu dapat mengubahnya nanti!
Semua Pengaturan selesai?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Mari mulai menjelajah! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Anda selesai melakukan pengaturan dan siap untuk mulai. Klik tombol di bawah ini untuk mulai menjelajah dengan { -brand-short-name }. zen-welcome-start-browsing-description-1 = Anda selesai melakukan pengaturan dan siap untuk mulai. Klik tombol di bawah ini untuk mulai menjelajah dengan { -brand-short-name }.
zen-welcome-start-browsing = Ayo, mulai! zen-welcome-start-browsing = Ayo, mulai!
zen-welcome-default-search-title = Mesin Pencari Default Anda
zen-welcome-default-search-description = Pilih mesin pencari default Anda. Anda selalu dapat mengubahnya nanti!
zen-welcome-skip-button = Lewati
zen-welcome-finished = Anda berhasil mengatur Zen milik anda!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Velkomin í zen-welcome-title-line1 = Velkomin í
zen-welcome-title-line2 = rólegra internet zen-welcome-title-line2 = rólegra internet
zen-welcome-import-title = Ný byrjun, sömu bókamerkin zen-welcome-back = Back
zen-welcome-import-description-1 = Bókamerkin þín, vafurferillinn þinn og lykilorð eru eins og brauðmolaslóð út um internetið - ekki skilja þá eftir fyrir úlfana! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Flyttu á einfaldan hátt inn gögn frá öðrum vafra og haltu áfram þar sem þú skildir við síðast. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Flytja inn núna zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Setja { -brand-short-name } sem sjálfgefna vafrann þinn zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = EKKI setja { -brand-short-name } sem sjálfgefna vafrann þinn zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Þörfustu fliparnir þinir, alltaf innan seilingar zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Haltu mikilvægustu flipunum þínum við hendina, alveg sama hvað þeir eru margir. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Mikilvægt-fliparnir eru alltaf sjáanlegir, sama hvaða vinnusvæði þú ert á. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Vinnusvæðin þín, litirnir þínir zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Aðlagaðu vafrann að þínum þörfum með því að gefa hverju vinnusvæði sinn einstaka lit. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Veldu þér sjálfgefna leitarvél. Þú getur alltaf breytt þessu síðar.
Allt klárt?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Hefjumst handa! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Þú hefur stillt allt sem þarf og getur farið af stað. Smelltu á hnappinn hér fyrir neðan til að fara að vafra með { -brand-short-name }. zen-welcome-start-browsing-description-1 = Þú hefur stillt allt sem þarf og getur farið af stað. Smelltu á hnappinn hér fyrir neðan til að fara að vafra með { -brand-short-name }.
zen-welcome-start-browsing = Dýfðu þér í djúpu laugina! zen-welcome-start-browsing = Dýfðu þér í djúpu laugina!
zen-welcome-default-search-title = Sjálfgefna leitarvélin þín
zen-welcome-default-search-description = Veldu þér sjálfgefna leitarvél. Þú getur alltaf breytt þessu síðar.
zen-welcome-skip-button = Sleppa
zen-welcome-finished = Zen-vafrinn þinn hefur verið uppsettur með tilhlýðilegum hætti!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Benvenuto a zen-welcome-title-line1 = Benvenuto a
zen-welcome-title-line2 = un internet più calmo zen-welcome-title-line2 = un internet più calmo
zen-welcome-import-title = Un nuovo Inizio, Stessi Segnalibri zen-welcome-back = Back
zen-welcome-import-description-1 = I tuoi segnalibri, la tua cronologia e le tue password sono come una scia di briciole attraverso internet—non lasciartele alle spalle! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Portali facilmente da un altro browser e riprendi da dove hai lasciato. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importa adesso zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Imposta { -brand-short-name } come browser predefinito zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NON impostare { -brand-short-name } come browser predefinito zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Le Tue Schede Importanti, Sempre a Portata di Mano zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Mantieni le schede più importanti facilmente accessibili e sempre a portata di mano, indipendentemente da quante ne apri. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Le schede essenziali sono sempre visibili, indipendentemente dallo spazio di lavoro in cui ti trovi. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = I tuoi Ambienti di lavoro, i Tuoi Colori zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalizza il tuo browser dando a ogni ambiente di lavoro la sua identità unica colorata. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Scegli il tuo motore di ricerca predefinito. Puoi sempre cambiarlo più tardi!
Tutto pronto?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Cominciamo! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = È tutto pronto per cominciare. Clicca il pulsante qui sotto per iniziare a navigare con { -brand-short-name }. zen-welcome-start-browsing-description-1 = È tutto pronto per cominciare. Clicca il pulsante qui sotto per iniziare a navigare con { -brand-short-name }.
zen-welcome-start-browsing = Andiamo! zen-welcome-start-browsing = Andiamo!
zen-welcome-default-search-title = Il tuo Motore di Ricerca Predefinito
zen-welcome-default-search-description = Scegli il tuo motore di ricerca predefinito. Puoi sempre cambiarlo più tardi!
zen-welcome-skip-button = Salta
zen-welcome-finished = Il tuo Zen è stato configurato correttamente!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = ようこそ zen-welcome-title-line1 = ようこそ
zen-welcome-title-line2 = 静かなインターネットへ zen-welcome-title-line2 = 静かなインターネットへ
zen-welcome-import-title = 新鮮なスタート、同じブックマーク zen-welcome-back = Back
zen-welcome-import-description-1 = ブックマーク、履歴、パスワードはインターネット上のパンくずの跡のようなものです。残さないでください! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = 別のブラウザから簡単に移行し、中断したところから再開できます。 zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = 今すぐインポート zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name }を既定ブラウザーに設定する zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = { -brand-short-name }を既定ブラウザに設定しないでください zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = キータブは常に手の届く範囲にあります zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = いくつ開いても、最も重要なタブに簡単にアクセスでき、常に手元にあるようにします。 zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = 重要なタブは、ワークスペースに関係なく常に表示されます。 zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = あなたのワークスペース、あなたの色 zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = 各ワークスペースに独自の色のアイデンティティを与えることで、ブラウザをパーソナライズします。 zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = デフォルトの検索エンジンを選択してください。後でいつでも変更できます!
準備完了?<br/> zen-welcome-essentials-title = Choose the apps you use most.
さあ、始めましょう! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = 準備完了です。下のボタンをクリックして、{ -brand-short-name }でブラウズを開始してください。 zen-welcome-start-browsing-description-1 = 準備完了です。下のボタンをクリックして、{ -brand-short-name }でブラウズを開始してください。
zen-welcome-start-browsing = 飛び込んで! zen-welcome-start-browsing = 飛び込んで!
zen-welcome-default-search-title = 既定の検索エンジン
zen-welcome-default-search-description = デフォルトの検索エンジンを選択してください。後でいつでも変更できます!
zen-welcome-skip-button = スキップ
zen-welcome-finished = Zenの設定が完了しました

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = 환영합니다 zen-welcome-title-line1 = 환영합니다
zen-welcome-title-line2 = 차분한 인터넷에 잘 오셨습니다 zen-welcome-title-line2 = 차분한 인터넷에 잘 오셨습니다
zen-welcome-import-title = 새로운 시작, 여전한 북마크 zen-welcome-back = Back
zen-welcome-import-description-1 = 당신의 북마크, 방문 기록, 비밀번호는 인터넷에 떨어진 빵 조각들의 길과 같습니다 - 뒤에 남겨두지 마세요! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = 간단하게 다른 브라우저에서 가져오고 마지막 지점에서 다시 시작할 수 있습니다.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = 지금 불러오기 zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name }을 기본 브라우저로 설정하기 zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = { -brand-short-name }을 기본 브라우저로 설정하지 않기 zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = 당신의 중요한 탭이 언제나 닿을 수 있도록 zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = 당신의 중요한 탭들을 항상 쉽게 접근할 수 있도록 손 안에 두세요, 얼마나 많은지는 상관 없습니다. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = 에센셜 탭은 워크스페이스에 관계없이 항상 볼 수 있습니다. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = 당신의 워크스페이스, 당신의 색깔 zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = 각 워크스페이스에 고유한 색깔을 입혀 당신의 브라우저를 꾸미세요. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = 기본 검색 엔진을 선택하세요. 나중에 언제든지 바꿀 수 있습니다!
준비됐나요?<br/> zen-welcome-essentials-title = Choose the apps you use most.
이제 시작합시다! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = 브라우저가 준비되었습니다. 아래 버튼을 눌러 { -brand-short-name }과 브라우징을 시작하세요. zen-welcome-start-browsing-description-1 = 브라우저가 준비되었습니다. 아래 버튼을 눌러 { -brand-short-name }과 브라우징을 시작하세요.
zen-welcome-start-browsing = 시작하기! zen-welcome-start-browsing = 시작하기!
zen-welcome-default-search-title = 기본 검색 엔진
zen-welcome-default-search-description = 기본 검색 엔진을 선택하세요. 나중에 언제든지 바꿀 수 있습니다!
zen-welcome-skip-button = 건너뛰기
zen-welcome-finished = Zen이 정상적으로 설정되었습니다!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Sveiki atvykę į zen-welcome-title-line1 = Sveiki atvykę į
zen-welcome-title-line2 = ramesnį internetą zen-welcome-title-line2 = ramesnį internetą
zen-welcome-import-title = Nauja pradžia, tas pats adresynas zen-welcome-back = Back
zen-welcome-import-description-1 = Jūsų adresynas, istorija ir slaptažodžiai tai tarsi duonos trupiniai per internetą. Nepalikite jų! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Lengvai perkelkite juos iš kitos naršyklės ir tęskite ten, kur baigėte. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importuoti dabar zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Nustatyti „{ -brand-short-name }“ kaip numatytąją naršyklę zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Nenustatyti „{ -brand-short-name }“ kaip numatytąją naršyklę zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Jūsų pagrindinės kortelės, visada pasiekiamos zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Laikykite svarbiausias korteles lengvai pasiekiamas ir visada po ranka, kad ir kiek jų atvertumėte. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Būtiniausios kortelės visada matomos, nesvarbu, kokioje darbo srityje esate. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Jūsų darbo sritys, jūsų spalvos zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Suasmeninkite savo naršyklę, suteikdami kiekvienai darbo sričiai unikalią spalvą. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Pasirinkite numatytąjį paieškos variklį. Vėliau visada galite ją pakeisti!
Viskas parengta?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Pradėkime veikti! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Viskas parengta ir gali veikti. Spustelėkite žemiau esantį mygtuką, kad pradėtumėte naršyti su „{ -brand-short-name }“. zen-welcome-start-browsing-description-1 = Viskas parengta ir gali veikti. Spustelėkite žemiau esantį mygtuką, kad pradėtumėte naršyti su „{ -brand-short-name }“.
zen-welcome-start-browsing = Pirmyn! zen-welcome-start-browsing = Pirmyn!
zen-welcome-default-search-title = Jūsų numatytasis paieškos variklis
zen-welcome-default-search-description = Pasirinkite numatytąjį paieškos variklį. Vėliau visada galite ją pakeisti!
zen-welcome-skip-button = Praleisti
zen-welcome-finished = Jūsų „Zen“ nustatytas teisingai!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Velkommen til zen-welcome-title-line1 = Velkommen til
zen-welcome-title-line2 = et roligere internett zen-welcome-title-line2 = et roligere internett
zen-welcome-import-title = En ny start, samme bokmerker zen-welcome-back = Back
zen-welcome-import-description-1 = Bokmerker, historikken og passordene dine er som en sti av brødsmuler gjennom internettet — ikke la dem ligge igjen! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Overfør dem enkelt fra en annen nettleser og fortsett akkurat der du slapp. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importer nå zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Sett { -brand-short-name } som din standard nettleser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = IKKE sett { -brand-short-name } som din standard nettleser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Dine viktigste faner, alltid innen rekkevidde zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Hold dine viktigste faner lett tilgjengelige og alltid på hånd, uansett hvor mange du åpner. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essensielle faner er alltid synlige, uansett hvilket arbeidsområde du er i. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Dine arbeidsområder, dine farger zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Tilpass nettleseren din ved å gi hvert arbeidsområde sin unike fargeidentitet. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Velg din standard søkemotor. Du kan alltids endre den senere!
Alt klart?<br/> zen-welcome-essentials-title = Choose the apps you use most.
La oss komme i gang! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Du er ferdig satt opp og klar til å gå. Klikk på knappen nedenfor for å begynne å surfe med { -brand-short-name }. zen-welcome-start-browsing-description-1 = Du er ferdig satt opp og klar til å gå. Klikk på knappen nedenfor for å begynne å surfe med { -brand-short-name }.
zen-welcome-start-browsing = Dykk inn! zen-welcome-start-browsing = Dykk inn!
zen-welcome-default-search-title = Din standard søkemotor
zen-welcome-default-search-description = Velg din standard søkemotor. Du kan alltids endre den senere!
zen-welcome-skip-button = Hopp over
zen-welcome-finished = Din Zen har blitt satt opp riktig!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welkom bij zen-welcome-title-line1 = Welkom bij
zen-welcome-title-line2 = een rustiger internet zen-welcome-title-line2 = een rustiger internet
zen-welcome-import-title = Een frisse start, dezelfde bladwijzers zen-welcome-back = Back
zen-welcome-import-description-1 = Je bladwijzers, geschiedenis en wachtwoorden zijn als een spoor van broodkruimels door het internet - laat ze niet achter! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Breng ze eenvoudig over vanuit een andere browser en ga verder waar je was gebleven. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Nu importeren zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name } instellen als standaardbrowser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = { -brand-short-name } NIET instellen als standaardbrowser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Je belangrijkste tabbladen, altijd binnen handbereik zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Houd je belangrijkste tabbladen gemakkelijk toegankelijk en altijd bij de hand, hoeveel je er ook opent. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabbladen zijn altijd zichtbaar, ongeacht de werkruimte waarin je je bevindt. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Jouw werkruimtes, jouw kleuren zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personaliseer je browser door elke werkruimte zijn eigen unieke kleuridentiteit te geven. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Kies je standaard zoekmachine. Je kunt het altijd later wijzigen!
Klaar?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Laten we beginnen! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Je bent er helemaal klaar voor. Klik op de knop hieronder om te beginnen met browsen met { -brand-short-name }. zen-welcome-start-browsing-description-1 = Je bent er helemaal klaar voor. Klik op de knop hieronder om te beginnen met browsen met { -brand-short-name }.
zen-welcome-start-browsing = Duik erin! zen-welcome-start-browsing = Duik erin!
zen-welcome-default-search-title = Je standaard zoekmachine
zen-welcome-default-search-description = Kies je standaard zoekmachine. Je kunt het altijd later wijzigen!
zen-welcome-skip-button = Overslaan
zen-welcome-finished = Je Zen is correct ingesteld!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Welcome to zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks zen-welcome-back = Back
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Import now zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
All set?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Lets get rolling! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }. zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in! zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Witaj w zen-welcome-title-line1 = Witaj w
zen-welcome-title-line2 = spokojniejszym internecie zen-welcome-title-line2 = spokojniejszym internecie
zen-welcome-import-title = Świeży start, te same zakładki zen-welcome-back = Back
zen-welcome-import-description-1 = Twoje zakładki, historia przeglądania i hasła są jak ślady okruchów w internecie—nie zostawiaj ich za sobą! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Łatwo przenieś je z innej przeglądarki i kontynuuj od miejsca, w którym skończyłeś. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Zaimportuj teraz zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Ustaw { -brand-short-name } jako swoją domyślną przeglądarkę zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NIE ustawiaj { -brand-short-name } jako swoja domyślna przeglądarka zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Twoje kluczowe karty, zawsze pod ręką zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Utrzymuj swoje najważniejsze karty zawsze pod ręką, niezależnie od tego, jak wiele masz ich otwartych. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Niezbędne karty są zawsze widoczne, niezależnie od bieżącego obszaru roboczego. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Twój obszar roboczy, Twoje kolory zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Spersonalizuj przeglądarkę, nadając każdemu obszarowi roboczemu unikatową identyfikację kolorystyczną. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Wybierz swój domyślny silnik wyszukiwania. Możesz to zmienić w przyszłości!
Wszystko gotowe?<br/> zen-welcome-essentials-title = Choose the apps you use most.
No to śmigamy! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Wszystko gotowe, możesz zaczynać. Kliknij przycisk poniżej, aby zacząć przeglądanie z { -brand-short-name }. zen-welcome-start-browsing-description-1 = Wszystko gotowe, możesz zaczynać. Kliknij przycisk poniżej, aby zacząć przeglądanie z { -brand-short-name }.
zen-welcome-start-browsing = Wskakuj! zen-welcome-start-browsing = Wskakuj!
zen-welcome-default-search-title = Twój domyślny silnik wyszukiwania
zen-welcome-default-search-description = Wybierz swój domyślny silnik wyszukiwania. Możesz to zmienić w przyszłości!
zen-welcome-skip-button = Pomiń
zen-welcome-finished = Twoja przeglądarka Zen została prawidłowo przygotowana!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Boas-vindas a zen-welcome-title-line1 = Boas-vindas a
zen-welcome-title-line2 = uma internet mais tranquila zen-welcome-title-line2 = uma internet mais tranquila
zen-welcome-import-title = Um Novo Começo, os Mesmos Favoritos zen-welcome-back = Back
zen-welcome-import-description-1 = Seus favoritos, histórico e senhas são como uma trilha de migalhas pela internet — não os deixe para trás! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Importe-os facilmente de outro navegador e continue de onde parou. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importar agora zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Definir o { -brand-short-name } como seu navegador padrão zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NÃO definir o { -brand-short-name } como seu navegador padrão zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Suas Guias Principais, Sempre ao Alcance zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Mantenha suas guias mais importantes facilmente acessíveis e sempre à mão, não importa quantas você abra. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = As guias essenciais estão sempre visíveis, não importa em qual área de trabalho você esteja. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Suas Áreas de Trabalho, Suas Cores zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize seu navegador dando a cada área de trabalho sua própria identidade de cor. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Escolha seu mecanismo de busca padrão. Você sempre pode alterá-lo mais tarde!
Tudo pronto?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Vamos começar! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Você está com tudo pronto para começar. Clique no botão abaixo para começar a navegar com o { -brand-short-name }. zen-welcome-start-browsing-description-1 = Você está com tudo pronto para começar. Clique no botão abaixo para começar a navegar com o { -brand-short-name }.
zen-welcome-start-browsing = Mergulhe de cabeça! zen-welcome-start-browsing = Mergulhe de cabeça!
zen-welcome-default-search-title = Seu Mecanismo de Busca Padrão
zen-welcome-default-search-description = Escolha seu mecanismo de busca padrão. Você sempre pode alterá-lo mais tarde!
zen-welcome-skip-button = Pular
zen-welcome-finished = Seu Zen foi configurado corretamente!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Bem-vindo(a) zen-welcome-title-line1 = Bem-vindo(a)
zen-welcome-title-line2 = a uma internet mais calma zen-welcome-title-line2 = a uma internet mais calma
zen-welcome-import-title = Um Novo Começo, os Mesmos Favoritos zen-welcome-back = Back
zen-welcome-import-description-1 = Os seus favoritos, histórico e palavras-passe são como um rasto de migalhas deixado pela internet — não os deixe para trás! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importar agora zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Definir o { -brand-short-name } como navegador padrão zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NÃO definir o { -brand-short-name } como navegador padrão zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Os Seus Separadores Principais, Sempre Perto zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Mantenha os seus separadores mais importantes facilmente acessíveis e sempre à mão, independentemente de quantos abra. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Os separadores essenciais estão sempre visíveis, independentemente do espaço de trabalho em que esteja. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Os Seus Espaços de Trabalho, As Suas Cores zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalize o seu navegador dando a cada espaço de trabalho a sua própria cor. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Escolha o seu motor de busca padrão. Pode sempre alterá-lo mais tarde!
Tudo pronto?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Vamos a isso! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Já está tudo preparado e pronto para avançar. Clique no botão abaixo para começar a navegar com o { -brand-short-name }. zen-welcome-start-browsing-description-1 = Já está tudo preparado e pronto para avançar. Clique no botão abaixo para começar a navegar com o { -brand-short-name }.
zen-welcome-start-browsing = Mergulhar! zen-welcome-start-browsing = Mergulhar!
zen-welcome-default-search-title = O seu Motor de Busca Padrão
zen-welcome-default-search-description = Escolha o seu motor de busca padrão. Pode sempre alterá-lo mais tarde!
zen-welcome-skip-button = Ignorar
zen-welcome-finished = O seu Zen foi configurado corretamente!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Bine ai venit la zen-welcome-title-line1 = Bine ai venit la
zen-welcome-title-line2 = un internet mai calm zen-welcome-title-line2 = un internet mai calm
zen-welcome-import-title = Un Început Proaspăt, Aceleași Marcaje zen-welcome-back = Back
zen-welcome-import-description-1 = Marcajele, istoricul și parolele tale sunt ca un șir de firimituri care îți dezvăluie traseul pe internet — nu le lăsa în urmă! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Adu-le cu ușurință din alt browser și continuă exact de unde ai rămas. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importă acum zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Setează { -brand-short-name } ca browser principal zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NU seta { -brand-short-name } ca browser principal zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Filele tale cheie, întotdeauna la îndemână zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Păstrează-ți cele mai importante file ușor de accesat, indiferent de câte ai deschise. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Filele Esențiale sunt mereu vizibile, indiferent de Spațiul de Lucru în care te afli. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Spațiul Tău de Lucru, Culorile Tale zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Personalizează-ți browser-ul dând fiecărui Spațiu de Lucru o culoare de identitate unică. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Alege-ți motorul tău de căutare principal. Îl poți schimba oricând mai târziu!
Totul este gata?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Haide să începem! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Totul este pregătit. Dă click pe butonul de mai jos și începe navigarea cu { -brand-short-name }. zen-welcome-start-browsing-description-1 = Totul este pregătit. Dă click pe butonul de mai jos și începe navigarea cu { -brand-short-name }.
zen-welcome-start-browsing = Începe acum! zen-welcome-start-browsing = Începe acum!
zen-welcome-default-search-title = Motorul Tău de Căutare Principal
zen-welcome-default-search-description = Alege-ți motorul tău de căutare principal. Îl poți schimba oricând mai târziu!
zen-welcome-skip-button = Treci peste
zen-welcome-finished = Zen-ul tău a fost configurat corect!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Добро пожаловать zen-welcome-title-line1 = Добро пожаловать
zen-welcome-title-line2 = в спокойный интернет zen-welcome-title-line2 = в спокойный интернет
zen-welcome-import-title = Новое начало, прежние закладки zen-welcome-back = Back
zen-welcome-import-description-1 = Ваши закладки, история и пароли — как след из хлебных крошек в интернете, не оставляйте их! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Легко импортируйте их из другого браузера и продолжите работу там, где остановились. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Импортировать zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Установить { -brand-short-name }, как браузер по умолчанию zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Не устанавливать { -brand-short-name }, как браузер по умолчанию zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Важные вкладки всегда рядом zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Держите самые важные вкладки всегда под рукой, сколько бы их ни было открыто. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Важные вкладки всегда видны, независимо от того, в каком рабочем пространстве вы находитесь. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Ваши пространства, ваши цвета zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Персонализируйте браузер, придав каждому рабочему пространству свой собственный уникальный цвет. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Выберите поисковую систему по умолчанию. Вы всегда можете изменить её позже!
Всё настроили?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Погружайтесь! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Всё настроено и готово к работе. Нажмите кнопку ниже, чтобы начать искать с { -brand-short-name }. zen-welcome-start-browsing-description-1 = Всё настроено и готово к работе. Нажмите кнопку ниже, чтобы начать искать с { -brand-short-name }.
zen-welcome-start-browsing = Погрузиться! zen-welcome-start-browsing = Погрузиться!
zen-welcome-default-search-title = Ваша поисковая система по умолчанию
zen-welcome-default-search-description = Выберите поисковую систему по умолчанию. Вы всегда можете изменить её позже!
zen-welcome-skip-button = Пропустить
zen-welcome-finished = Zen настроен правильно!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Vitajte v zen-welcome-title-line1 = Vitajte v
zen-welcome-title-line2 = pokojnejšom internete zen-welcome-title-line2 = pokojnejšom internete
zen-welcome-import-title = Nový začiatok, Rovnaké záložky zen-welcome-back = Back
zen-welcome-import-description-1 = Vaše záložky, história a heslá sú ako omrvinky roztrúsené po internete nenechajte ich za sebou! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Jednoducho si ich preneste z iného prehliadača a pokračujte presne tam, kde ste skončili. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importovať teraz zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Nastaviť { -brand-short-name } ako predvolený prehliadač zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = NENASTAVOVAŤ { -brand-short-name } ako predvolený prehliadač zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Vaše kľúčové karty, vždy na dosah zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Majte svoje najdôležitejšie karty ľahko dostupné a vždy po ruke, bez ohľadu na to, koľko ich otvoríte. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Hlavné karty sú vždy viditeľné bez ohľadu na to, v ktorom pracovnom priestore sa nachádzate. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Vaše pracovné priestory, vaše farby zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Prispôsobte si prehliadač tým, že každému pracovnému priestoru dáte vlastnú jedinečnú farebnú identitu. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Vyberte si predvolený vyhľadávač. Neskôr ho môžete kedykoľvek zmeniť!
Všetko je pripravené?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Poďme na to! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Všetko máte nastavené a ste pripravení. Kliknite na tlačidlo nižšie a začnite prehliadať s { -brand-short-name }. zen-welcome-start-browsing-description-1 = Všetko máte nastavené a ste pripravení. Kliknite na tlačidlo nižšie a začnite prehliadať s { -brand-short-name }.
zen-welcome-start-browsing = Ponorte sa do toho! zen-welcome-start-browsing = Ponorte sa do toho!
zen-welcome-default-search-title = Váš predvolený vyhľadávač
zen-welcome-default-search-description = Vyberte si predvolený vyhľadávač. Neskôr ho môžete kedykoľvek zmeniť!
zen-welcome-skip-button = Preskočiť
zen-welcome-finished = Váš Zen bol úspešne nastavený!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Välkommen till zen-welcome-title-line1 = Välkommen till
zen-welcome-title-line2 = ett lugnare internet zen-welcome-title-line2 = ett lugnare internet
zen-welcome-import-title = En fräsch start, Samma bokmärken zen-welcome-back = Back
zen-welcome-import-description-1 = Dina bokmärken, historik och lösenord är som ett spår av brödsmulor på nätet —lämna dem inte bakom dig! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Ta dem enkelt över från en annan webbläsare och plocka upp precis där du slutade. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Importera nu zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Ställ in { -brand-short-name } som din standardwebbläsare zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Ställ INTE in { -brand-short-name } som din standardwebbläsare zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Dina nyckelflikar, alltid inom räckhåll zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Håll dina viktigaste flikar lättillgängliga och alltid till hands, oavsett hur många du öppnar. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Viktiga flikar är alltid synliga, oavsett vilken arbetsyta du befinner dig i. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Dina arbetsytor, dina färger zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Anpassa din webbläsare genom att ge varje arbetsyta sin egen unika färgidentitet. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Välj din standardsökmotor. Du kan alltid ändra det senare!
Allt klart?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Låt oss komma igång! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Du är klar och redo att börja. Klicka på knappen nedan för att börja surfa med { -brand-short-name }. zen-welcome-start-browsing-description-1 = Du är klar och redo att börja. Klicka på knappen nedan för att börja surfa med { -brand-short-name }.
zen-welcome-start-browsing = Dyk in! zen-welcome-start-browsing = Dyk in!
zen-welcome-default-search-title = Din standardsökmotor
zen-welcome-default-search-description = Välj din standardsökmotor. Du kan alltid ändra det senare!
zen-welcome-skip-button = Hoppa över
zen-welcome-finished = Din Zen har konfigurerats korrekt!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = ยินดีต้อนรับสู่ zen-welcome-title-line1 = ยินดีต้อนรับสู่
zen-welcome-title-line2 = อินเทอร์เน็ตที่สงบลงกว่าเดิม zen-welcome-title-line2 = อินเทอร์เน็ตที่สงบลงกว่าเดิม
zen-welcome-import-title = เริ่มต้นใหม่ แต่ยังคงใช้บุ๊กมาร์กเดิม zen-welcome-back = Back
zen-welcome-import-description-1 = บุ๊กมาร์ก ประวัติการเข้าชม และรหัสผ่านของคุณเปรียบเสมือนร่องรอยที่ทิ้งไว้บนอินเทอร์เน็ต อย่าทิ้งมันไว้เบื้องหลัง! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = นำข้อมูลจากเบราว์เซอร์อื่นมาใช้ได้อย่างง่ายดาย และใช้งานต่อจากเดิมได้ทันที zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = นำเข้าตอนนี้ zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = ตั้งค่า { -brand-short-name } เป็นเบราว์เซอร์เริ่มต้นของคุณ zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = ไม่ตั้งค่า { -brand-short-name } เป็นเบราว์เซอร์เริ่มต้นของคุณ zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = แท็บสำคัญของคุณ อยู่ใกล้แค่เอื้อมเสมอ zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = เก็บแท็บที่สำคัญที่สุดของคุณไว้ในที่ที่เข้าถึงได้ง่ายและพร้อมใช้งานเสมอ ไม่ว่าคุณจะเปิดแท็บมากแค่ไหน zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = แท็บสำคัญจะแสดงให้เห็นเสมอ ไม่ว่าคุณจะอยู่ในพื้นที่ทำงานใดก็ตาม zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = พื้นที่ทำงานของคุณ สีสันของคุณ zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = ปรับแต่งเบราว์เซอร์ของคุณโดยกำหนดสีเฉพาะตัวให้กับแต่ละพื้นที่ทำงาน zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = เลือกเครื่องมือค้นหาเริ่มต้นของคุณ คุณสามารถเปลี่ยนมันในภายหลังได้เสมอ!
พร้อมแล้วหรือยัง?<br/> zen-welcome-essentials-title = Choose the apps you use most.
ไปกันเลย! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = คุณตั้งค่าทุกอย่างเรียบร้อยแล้ว คลิกปุ่มด้านล่างเพื่อเริ่มใช้งาน { -brand-short-name } zen-welcome-start-browsing-description-1 = คุณตั้งค่าทุกอย่างเรียบร้อยแล้ว คลิกปุ่มด้านล่างเพื่อเริ่มใช้งาน { -brand-short-name }
zen-welcome-start-browsing = เริ่มเลย! zen-welcome-start-browsing = เริ่มเลย!
zen-welcome-default-search-title = เครื่องมือค้นหาเริ่มต้นของคุณ
zen-welcome-default-search-description = เลือกเครื่องมือค้นหาเริ่มต้นของคุณ คุณสามารถเปลี่ยนมันในภายหลังได้เสมอ!
zen-welcome-skip-button = ข้าม
zen-welcome-finished = Zen ของคุณได้ถูกตั้งค่าอย่างถูกต้องแล้ว

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Zen'e Hoş Geldiniz zen-welcome-title-line1 = Zen'e Hoş Geldiniz
zen-welcome-title-line2 = Daha Sakin Bir İnternet zen-welcome-title-line2 = Daha Sakin Bir İnternet
zen-welcome-import-title = Yeni Bir Başlangıç, Aynı Yer İmleri zen-welcome-back = Back
zen-welcome-import-description-1 = Yer imleriniz, geçmişiniz ve parolalarınız internetteki ekmek kırıntıları gibidir; onları geride bırakmayın! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Onları başka bir tarayıcıdan kolayca aktarın ve tam bıraktığınız yerden devam edin. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Şimdi içe aktar zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = { -brand-short-name }'i varsayılan tarayıcı olarak ayarlayın zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = { -brand-short-name }'i varsayılan tarayıcı olarak AYARLAMAYIN zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Her Zamanki Sekmeleriniz, Her Zaman Yanınızda zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Ne kadar çok sekme açarsanız açın, en önemli sekmelerinizi her zaman kolayca erişilebilir ve elinizin altında tutun. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Bulunduğunuz çalışma alanı ne olursa olsun, temel sekmeler her zaman görünür. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Senin Çalışma Alanın, Senin Renklerin zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Her çalışma alanında ayrı renkler kullanarak tarayıcını kişiselleştir. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Varsayılan arama motorunu seç. Bu seçimi istediğin zaman değiştirebilirsin!
Hazır mısın?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Hadi Başlayalım! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Tamamen hazırsın. Aşağıdaki butona tıklayarak { -brand-short-name } ile aramaya başla. zen-welcome-start-browsing-description-1 = Tamamen hazırsın. Aşağıdaki butona tıklayarak { -brand-short-name } ile aramaya başla.
zen-welcome-start-browsing = Keşfetmeye başla! zen-welcome-start-browsing = Keşfetmeye başla!
zen-welcome-default-search-title = Varsayılan Arama Motorun
zen-welcome-default-search-description = Varsayılan arama motorunu seç. Bu seçimi istediğin zaman değiştirebilirsin!
zen-welcome-skip-button = Atla
zen-welcome-finished = Zen başarıyla kuruldu ve ayarlandı!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Вітаємо в zen-welcome-title-line1 = Вітаємо в
zen-welcome-title-line2 = спокійніший інтернет zen-welcome-title-line2 = спокійніший інтернет
zen-welcome-import-title = Новий початок, ті ж закладки zen-welcome-back = Back
zen-welcome-import-description-1 = Ваші закладки, історія та паролі — це як слід від хлібних крихт в інтернеті, не залишайте їх! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Імпортувати зараз zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Встановити { -brand-short-name } як типовий браузер zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = НЕ встановлювати { -brand-short-name } як типовий браузер zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Важливі вкладки завжди під рукою zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Тримайте найважливіші вкладки легкодоступними та завжди під рукою, незалежно від того, скільки їх відкрито. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Важливі вкладки завжди видно, незалежно від того, в якій робочій області ви перебуваєте. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Ваші робочі простори, ваші кольори zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Персоналізуйте свій браузер, надавши кожній робочій області власний унікальний колір. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Оберіть вашу типову пошукову систему. Ви завжди зможете змінити її пізніше!
Все налаштували?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Починаємо! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Ви все налаштували та готові до роботи. Натисніть кнопку нижче, щоб почати перегляд з { -brand-short-name }. zen-welcome-start-browsing-description-1 = Ви все налаштували та готові до роботи. Натисніть кнопку нижче, щоб почати перегляд з { -brand-short-name }.
zen-welcome-start-browsing = Зануритися! zen-welcome-start-browsing = Зануритися!
zen-welcome-default-search-title = Ваша типова пошукова система
zen-welcome-default-search-description = Оберіть вашу типову пошукову систему. Ви завжди зможете змінити її пізніше!
zen-welcome-skip-button = Пропустити
zen-welcome-finished = Zen налаштовано правильно!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = Chào mừng bạn đã đến với zen-welcome-title-line1 = Chào mừng bạn đã đến với
zen-welcome-title-line2 = một internet thư thả hơn zen-welcome-title-line2 = một internet thư thả hơn
zen-welcome-import-title = Khởi đầu mới mẻ, với những dấu trang quen thuộc zen-welcome-back = Back
zen-welcome-import-description-1 = Dấu trang, lịch sử, mật khẩu là những dấu ấn của bạn trên internet - Đừng để chúng lại phía sau! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = Dễ dàng tiếp tục với những gì bạn bỏ dở từ trình duyệt khác. zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = Nhập ngay zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = Đặt { -brand-short-name } là trình duyệt mặc định của bạn zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = Không đặt { -brand-short-name } là trình duyệt mặc định của bạn zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = Những thẻ quan trọng của bạn, luôn luôn trong tầm tay zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = Cho dù bạn có mở bao nhiêu, những thẻ quan trọng nhất của bạn luôn dễ dàng truy cập, luôn luôn trong tầm tay. zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = Các thẻ chính sẽ luôn hiển thị, bất kể bạn đang ở không gian làm việc nào. zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = Không gian làm việc của bạn, màu sắc của bạn zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = Cá nhân hóa trình duyệt của bạn, cho mỗi không gian làm việc một màu sắc đặc trưng. zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = Hãy chọn công cụ tìm kiếm mặc đinh. Bạn luôn có thể đổi nó sau này!
Sẵn sàng chưa?<br/> zen-welcome-essentials-title = Choose the apps you use most.
Bắt đầu thôi nào! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = Mọi thứ đã sẵn sàng. Nhấn nút bên dưới để bắt đầu lướt web với { -brand-short-name }. zen-welcome-start-browsing-description-1 = Mọi thứ đã sẵn sàng. Nhấn nút bên dưới để bắt đầu lướt web với { -brand-short-name }.
zen-welcome-start-browsing = Bắt đầu nào! zen-welcome-start-browsing = Bắt đầu nào!
zen-welcome-default-search-title = Công cụ tìm kiếm mặc định của bạn là?
zen-welcome-default-search-description = Hãy chọn công cụ tìm kiếm mặc đinh. Bạn luôn có thể đổi nó sau này!
zen-welcome-skip-button = Bỏ qua
zen-welcome-finished = Trình duyệt của bạn đã được thiết lập thành công!

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = 欢迎来到 zen-welcome-title-line1 = 欢迎来到
zen-welcome-title-line2 = 更平静的互联网 zen-welcome-title-line2 = 更平静的互联网
zen-welcome-import-title = 全新出发,收藏如旧 zen-welcome-back = Back
zen-welcome-import-description-1 = 收藏足迹贴心伴,迁移升级别落下! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = 一键迁移数据,无缝续览网络。 zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = 立即导入 zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = 将 { -brand-short-name } 设为默认浏览器 zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = 不要将 { -brand-short-name } 设为默认浏览器 zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = 关键页面,一触即达 zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = 无论开启多少标签页,常驻页面始终触手可及。 zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = 无论身处哪个工作区,常驻页面始终可见。 zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = 空间由你,色彩随心 zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = 您可以给每个工作区定制化颜色。 zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = 选择您的默认搜索引擎。您可以随时更改它!
都准备好了吗?<br/> zen-welcome-essentials-title = Choose the apps you use most.
开始冲浪吧! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = 一切准备妥当。点击下方按钮开始用 { -brand-short-name } 浏览互联网。 zen-welcome-start-browsing-description-1 = 一切准备妥当。点击下方按钮开始用 { -brand-short-name } 浏览互联网。
zen-welcome-start-browsing = 出发! zen-welcome-start-browsing = 出发!
zen-welcome-default-search-title = 您的默认搜索引擎
zen-welcome-default-search-description = 选择您的默认搜索引擎。您可以随时更改它!
zen-welcome-skip-button = 跳过
zen-welcome-finished = 您的 Zen 已设置妥当!

View File

@@ -21,15 +21,15 @@ tab-context-zen-remove-essential =
tab-context-zen-edit-pinned-page = tab-context-zen-edit-pinned-page =
.label = .label =
{ $isEssential -> { $isEssential ->
[true] Edit Essential URL [true] 修改 Essential 的網址
*[false] Edit Pinned URL *[false] 修改釘選分頁的網址
} }
.accesskey = P .accesskey = P
tab-context-zen-replace-pinned-url-with-current = tab-context-zen-replace-pinned-url-with-current =
.label = Replace with Current URL .label = 以當前網址取代
.accesskey = C .accesskey = C
tab-context-zen-edit-pinned-url = tab-context-zen-edit-pinned-url =
.label = Edit .label = 修改為
.accesskey = E .accesskey = E
tab-context-zen-edit-title = tab-context-zen-edit-title =
.label = 重新命名 .label = 重新命名
@@ -51,10 +51,10 @@ zen-general-cancel-label =
zen-general-confirm = zen-general-confirm =
.label = 確認 .label = 確認
zen-pinned-tab-replaced = 釘選分頁網址已替換為當前網址! zen-pinned-tab-replaced = 釘選分頁網址已替換為當前網址!
zen-pinned-tab-url-edited = Pinned tab URL has been updated! zen-pinned-tab-url-edited = 已經更新釘選分頁的網址!
zen-pinned-tab-url-invalid = That doesn't look like a valid URL. zen-pinned-tab-url-invalid = 這看起來不像是有效網址。
zen-pinned-tab-edit-url-title = Edit Pinned URL zen-pinned-tab-edit-url-title = 修改釘選分頁的網址
zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to: zen-pinned-tab-edit-url-label = 輸入要指定給此釘選分頁的網址:
zen-tabs-renamed = 成功重新命名分頁! zen-tabs-renamed = 成功重新命名分頁!
zen-background-tab-opened-toast = 新分頁已在背景開啟! zen-background-tab-opened-toast = 新分頁已在背景開啟!
zen-workspace-renamed-toast = 成功重新命名工作區! zen-workspace-renamed-toast = 成功重新命名工作區!
@@ -74,7 +74,7 @@ zen-icons-picker-emoji =
zen-icons-picker-svg = zen-icons-picker-svg =
.label = 圖示 .label = 圖示
zen-emojis-picker-search = zen-emojis-picker-search =
.placeholder = Search emojis .placeholder = 搜尋emoji
urlbar-search-mode-zen_actions = 操作 urlbar-search-mode-zen_actions = 操作
zen-site-data-settings = 設定 zen-site-data-settings = 設定
zen-generic-manage = 管理 zen-generic-manage = 管理
@@ -126,9 +126,9 @@ zen-sidebar-notification-updated-heading = 更新成功!
zen-sidebar-notification-updated-label = { -brand-short-name } 更新了什麼 zen-sidebar-notification-updated-label = { -brand-short-name } 更新了什麼
zen-sidebar-notification-updated-tooltip = zen-sidebar-notification-updated-tooltip =
.title = 查看版本資訊 .title = 查看版本資訊
zen-sidebar-notification-donate-label = Support { -brand-short-name } zen-sidebar-notification-donate-label = 支持{ -brand-short-name }
zen-sidebar-notification-donate-tooltip = zen-sidebar-notification-donate-tooltip =
.title = Donate to the project .title = 捐款給此專案
zen-sidebar-notification-restart-safe-mode-label = 有東西壞掉了嗎? zen-sidebar-notification-restart-safe-mode-label = 有東西壞掉了嗎?
zen-sidebar-notification-restart-safe-mode-tooltip = zen-sidebar-notification-restart-safe-mode-tooltip =
.title = 在安全模式下重新啟動 .title = 在安全模式下重新啟動

View File

@@ -4,7 +4,7 @@
zen-space-routing-settings = zen-space-routing-settings =
.label = 網址導向設定 .label = 網址導向設定
zen-space-routing-rulepanel-placeholder = 讓您能選擇要將特定網站開啟在 Zen 的某個工作區。舉例來說您可以設定將YouTube連結一律開啟在Personal工作區內。 zen-space-routing-rulepanel-placeholder = 讓您能決定要將特定網站開啟在 Zen 的特定工作區。舉例來說您可以設定將YouTube連結一律開啟在Personal工作區內。
zen-space-routing-dialog-title = 網址導向設定 zen-space-routing-dialog-title = 網址導向設定
zen-space-routing-external-default = 外部傳入網址的預設導向 zen-space-routing-external-default = 外部傳入網址的預設導向
zen-space-routing-new-route = 新導向 zen-space-routing-new-route = 新導向
@@ -21,10 +21,10 @@ zen-space-routing-regex =
.label = 正規表達式 .label = 正規表達式
zen-space-routing-open-in = 開啟在 zen-space-routing-open-in = 開啟在
zen-space-routing-url = 網址 zen-space-routing-url = 網址
zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace } zen-space-routing-tab-routed-toast = 已於 { $targetWorkspace }工作區開啟分頁
tab-context-zen-add-domain-to-sr = tab-context-zen-add-domain-to-sr =
.label = .label =
{ $tabCount -> { $tabCount ->
[one] Add Route for Domain [one] 為網站加入導向規則
*[other] Add Route for Domains *[other] 為網站加入導向規則
} }

View File

@@ -6,12 +6,12 @@ tab-zen-split-tabs =
.label = .label =
{ $tabCount -> { $tabCount ->
[-1] 將分頁移出分割畫面 [-1] 將分頁移出分割畫面
[1] 新增分割畫面... [1] 新增分割畫面
*[other] { $tabCount } 個分頁組成分割畫面 *[other] 合併 { $tabCount } 個分頁分割畫面
} }
.accesskey = S .accesskey = S
zen-split-link = zen-split-link =
.label = 將連結加分割畫面 .label = 將連結加分割畫面
.accesskey = S .accesskey = S
zen-split-view-modifier-header = 分割畫面 zen-split-view-modifier-header = 分割畫面
zen-split-view-modifier-activate-reallocation = zen-split-view-modifier-activate-reallocation =

View File

@@ -4,23 +4,22 @@
zen-welcome-title-line1 = 歡迎使用 zen-welcome-title-line1 = 歡迎使用
zen-welcome-title-line2 = 更寧靜的網路體驗 zen-welcome-title-line2 = 更寧靜的網路體驗
zen-welcome-import-title = 全新開始,書籤依舊 zen-welcome-back = Back
zen-welcome-import-description-1 = 您的書籤、歷史記錄和密碼,是您網路足跡的珍貴紀錄——別把它們遺忘了! zen-welcome-skip = Skip for now
zen-welcome-import-description-2 = 輕鬆匯入其他瀏覽器的資料,無縫接續瀏覽體驗。 zen-welcome-import-title = Bring your stuff along.
zen-welcome-import-button = 立即匯入 zen-welcome-import-description = Import your bookmarks, history and passwords from another browser and pick up right where you left off.
zen-welcome-set-default-browser = 將 { -brand-short-name } 設為您的預設瀏覽器 zen-welcome-import-yes = <strong>YES</strong>, import from another browser.
zen-welcome-dont-set-default-browser = 不要將 { -brand-short-name } 設為您的預設瀏覽器 zen-welcome-import-no = <strong>NO</strong>, start fresh.
zen-welcome-initial-essentials-title = 重要分頁,隨手可及 zen-welcome-default-browser-title = Make { -brand-short-name } your default?
zen-welcome-initial-essentials-description-1 = 無論開啟多少分頁,最重要的分頁將永遠顯示,讓您輕鬆存取。 zen-welcome-default-browser-description = Links from other apps will open in { -brand-short-name }. You can always change this later.
zen-welcome-initial-essentials-description-2 = 無論您在哪個工作區Essential 分頁會永遠顯示。 zen-welcome-set-default-browser = <strong>YES</strong>, make { -brand-short-name } default.
zen-welcome-workspace-colors-title = 您的工作區,您的色彩 zen-welcome-dont-set-default-browser = <strong>NO</strong>, still exploring my options.
zen-welcome-workspace-colors-description = 為每個工作區賦予獨特的色彩,打造個人化瀏覽器。 zen-welcome-default-search-title = Pick your search engine.
zen-welcome-start-browsing-title = zen-welcome-default-search-description = 選擇您的預設搜尋引擎,您可以隨時更改它!
準備好了嗎?<br/> zen-welcome-essentials-title = Choose the apps you use most.
馬上開始體驗吧! zen-welcome-essentials-description = Select your favorite apps to keep them handy in your sidebar.
zen-welcome-workspace-colors-title = Your space, your colors.
zen-welcome-workspace-colors-description = Personalize your browser by giving each space its own unique color identity.
zen-welcome-start-browsing-title = All set? Lets get rolling!
zen-welcome-start-browsing-description-1 = 您已完成所有設定並準備就緒。點擊下方按鈕,開始使用 { -brand-short-name } 瀏覽網路吧。 zen-welcome-start-browsing-description-1 = 您已完成所有設定並準備就緒。點擊下方按鈕,開始使用 { -brand-short-name } 瀏覽網路吧。
zen-welcome-start-browsing = 立即開始! zen-welcome-start-browsing = 立即開始!
zen-welcome-default-search-title = 您的預設搜尋引擎
zen-welcome-default-search-description = 選擇您的預設搜尋引擎,您可以隨時更改它!
zen-welcome-skip-button = 跳過
zen-welcome-finished = 您的 Zen 瀏覽器已成功設定!

View File

@@ -1,5 +1,5 @@
diff --git a/.stylelintrc.js b/.stylelintrc.js diff --git a/.stylelintrc.js b/.stylelintrc.js
index b484bf6600a7e1b8ad2aed8c8b7fe5e84cc3d023..f89712e2c13dfa0bcb48e55cd3872c67f5c98dad 100644 index b5f8245fa04ffb8fc82240261d63f893f4629f19..1b6ead24adbe69fcb5aeb95cfd3e7fa9662d89d8 100644
--- a/.stylelintrc.js --- a/.stylelintrc.js
+++ b/.stylelintrc.js +++ b/.stylelintrc.js
@@ -67,7 +67,7 @@ module.exports = { @@ -67,7 +67,7 @@ module.exports = {
@@ -11,10 +11,10 @@ index b484bf6600a7e1b8ad2aed8c8b7fe5e84cc3d023..f89712e2c13dfa0bcb48e55cd3872c67
{ {
ignore: ["blockless-at-rules"], ignore: ["blockless-at-rules"],
}, },
@@ -280,7 +280,7 @@ module.exports = { @@ -281,7 +281,7 @@ module.exports = {
"media-query-no-invalid": null,
"stylelint-plugin-mozilla/media-query-no-invalid": true, "stylelint-plugin-mozilla/media-query-no-invalid": true,
"stylelint-plugin-mozilla/no-base-design-tokens": true, "stylelint-plugin-mozilla/no-base-design-tokens": true,
"stylelint-plugin-mozilla/no-has-selector": true,
- "stylelint-plugin-mozilla/use-design-tokens": true, - "stylelint-plugin-mozilla/use-design-tokens": true,
+ "stylelint-plugin-mozilla/use-design-tokens": false, + "stylelint-plugin-mozilla/use-design-tokens": false,
}, },

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2681652e5 100644 index 6d1885a54815d10b3a4e79f7e5acd61ab3abb159..97e07d85c69ec97baeab05aedd57bd8869254d59 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs --- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -10,7 +10,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
HomePage: "resource:///modules/HomePage.sys.mjs", HomePage: "resource:///modules/HomePage.sys.mjs",
PanelMultiView: PanelMultiView:
"moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs", "moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs",
@@ -348,7 +349,7 @@ var CustomizableUIInternal = { @@ -352,7 +353,7 @@ var CustomizableUIInternal = {
{ {
type: CustomizableUI.TYPE_PANEL, type: CustomizableUI.TYPE_PANEL,
defaultPlacements: [], defaultPlacements: [],
@@ -19,7 +19,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
}, },
false false
); );
@@ -358,27 +359,23 @@ var CustomizableUIInternal = { @@ -362,27 +363,23 @@ var CustomizableUIInternal = {
"back-button", "back-button",
"forward-button", "forward-button",
"stop-reload-button", "stop-reload-button",
@@ -50,17 +50,18 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
defaultCollapsed: false, defaultCollapsed: false,
}, },
true true
@@ -402,9 +399,6 @@ var CustomizableUIInternal = { @@ -406,10 +403,6 @@ var CustomizableUIInternal = {
type: CustomizableUI.TYPE_TOOLBAR, type: CustomizableUI.TYPE_TOOLBAR,
defaultPlacements: [ defaultPlacements: [
"tabbrowser-tabs", "tabbrowser-tabs",
- "new-tab-button", - "new-tab-button",
- "spring",
- "alltabs-button", - "alltabs-button",
- "ai-window-toggle", - "ai-window-toggle",
], ],
verticalTabsDefaultPlacements: [], verticalTabsDefaultPlacements: [],
defaultCollapsed: null, defaultCollapsed: null,
@@ -484,6 +478,7 @@ var CustomizableUIInternal = { @@ -502,6 +495,7 @@ var CustomizableUIInternal = {
CustomizableUI.AREA_NAVBAR, CustomizableUI.AREA_NAVBAR,
CustomizableUI.AREA_BOOKMARKS, CustomizableUI.AREA_BOOKMARKS,
CustomizableUI.AREA_TABSTRIP, CustomizableUI.AREA_TABSTRIP,
@@ -68,7 +69,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
]); ]);
if (AppConstants.platform != "macosx") { if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR); toolbars.add(CustomizableUI.AREA_MENUBAR);
@@ -1285,6 +1280,9 @@ var CustomizableUIInternal = { @@ -1334,6 +1328,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area); placements = gPlacements.get(area);
} }
@@ -78,7 +79,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
// For toolbars that need it, mark as dirty. // For toolbars that need it, mark as dirty.
let defaultPlacements = areaProperties.get("defaultPlacements"); let defaultPlacements = areaProperties.get("defaultPlacements");
if ( if (
@@ -1793,7 +1791,6 @@ var CustomizableUIInternal = { @@ -1842,7 +1839,6 @@ var CustomizableUIInternal = {
lazy.log.info( lazy.log.info(
"Widget " + aWidgetId + " not found, unable to remove from " + aArea "Widget " + aWidgetId + " not found, unable to remove from " + aArea
); );
@@ -86,7 +87,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
} }
this.notifyDOMChange(widgetNode, null, container, true, () => { this.notifyDOMChange(widgetNode, null, container, true, () => {
@@ -1803,7 +1800,7 @@ var CustomizableUIInternal = { @@ -1852,7 +1848,7 @@ var CustomizableUIInternal = {
// We also need to remove the panel context menu if it's there: // We also need to remove the panel context menu if it's there:
this.ensureButtonContextMenu(widgetNode); this.ensureButtonContextMenu(widgetNode);
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) { if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
@@ -95,7 +96,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
} else { } else {
window.gNavToolbox.palette.appendChild(widgetNode); window.gNavToolbox.palette.appendChild(widgetNode);
} }
@@ -1971,16 +1968,16 @@ var CustomizableUIInternal = { @@ -2020,16 +2016,16 @@ var CustomizableUIInternal = {
elem.setAttribute("skipintoolbarset", "true"); elem.setAttribute("skipintoolbarset", "true");
} }
} }
@@ -115,7 +116,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
// Handle initial state of vertical tabs. // Handle initial state of vertical tabs.
if (isVerticalTabs) { if (isVerticalTabs) {
// Show the vertical tabs toolbar // Show the vertical tabs toolbar
@@ -2222,6 +2219,10 @@ var CustomizableUIInternal = { @@ -2271,6 +2267,10 @@ var CustomizableUIInternal = {
* The identifier string of the area that aNode is being inserted into. * The identifier string of the area that aNode is being inserted into.
*/ */
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
@@ -126,7 +127,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
this.setLocationAttributes(aNode, aAreaId); this.setLocationAttributes(aNode, aAreaId);
aContainer.insertBefore(aNode, aNextNode); aContainer.insertBefore(aNode, aNextNode);
@@ -4592,7 +4593,7 @@ var CustomizableUIInternal = { @@ -4647,7 +4647,7 @@ var CustomizableUIInternal = {
* For all registered areas, builds those areas to reflect the current * For all registered areas, builds those areas to reflect the current
* placement state of all widgets. * placement state of all widgets.
*/ */
@@ -135,7 +136,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
for (let [areaId, areaNodes] of gBuildAreas) { for (let [areaId, areaNodes] of gBuildAreas) {
let placements = gPlacements.get(areaId); let placements = gPlacements.get(areaId);
let isFirstChangedToolbar = true; let isFirstChangedToolbar = true;
@@ -4603,7 +4604,7 @@ var CustomizableUIInternal = { @@ -4658,7 +4658,7 @@ var CustomizableUIInternal = {
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) { if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
let defaultCollapsed = area.get("defaultCollapsed"); let defaultCollapsed = area.get("defaultCollapsed");
let win = areaNode.documentGlobal; let win = areaNode.documentGlobal;
@@ -144,7 +145,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
win.setToolbarVisibility( win.setToolbarVisibility(
areaNode, areaNode,
typeof defaultCollapsed == "string" typeof defaultCollapsed == "string"
@@ -5899,6 +5900,7 @@ export var CustomizableUI = { @@ -5971,6 +5971,7 @@ export var CustomizableUI = {
unregisterArea(aName, aDestroyPlacements) { unregisterArea(aName, aDestroyPlacements) {
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
}, },
@@ -152,7 +153,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
/** /**
* Add a widget to an area. * Add a widget to an area.
* If the area to which you try to add is not known to CustomizableUI, * If the area to which you try to add is not known to CustomizableUI,
@@ -7869,7 +7871,9 @@ class OverflowableToolbar { @@ -7946,7 +7947,9 @@ class OverflowableToolbar {
); );
if (webExtList && CustomizableUI.isWebExtensionWidget(child.id)) { if (webExtList && CustomizableUI.isWebExtensionWidget(child.id)) {
@@ -162,7 +163,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
webExtList.insertBefore(child, webExtList.firstElementChild); webExtList.insertBefore(child, webExtList.firstElementChild);
} else { } else {
child.setAttribute("cui-anchorid", this.#defaultListButton.id); child.setAttribute("cui-anchorid", this.#defaultListButton.id);
@@ -7929,7 +7933,7 @@ class OverflowableToolbar { @@ -8006,7 +8009,7 @@ class OverflowableToolbar {
) { ) {
continue; continue;
} }
@@ -171,7 +172,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
if (child != aExceptChild) { if (child != aExceptChild) {
sum += getInlineSize(child); sum += getInlineSize(child);
} }
@@ -7953,11 +7957,11 @@ class OverflowableToolbar { @@ -8030,11 +8033,11 @@ class OverflowableToolbar {
parseFloat(style.paddingLeft) - parseFloat(style.paddingLeft) -
parseFloat(style.paddingRight) - parseFloat(style.paddingRight) -
toolbarChildrenWidth; toolbarChildrenWidth;
@@ -185,7 +186,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
}); });
lazy.log.debug( lazy.log.debug(
@@ -7972,7 +7976,39 @@ class OverflowableToolbar { @@ -8049,7 +8052,39 @@ class OverflowableToolbar {
Math.max(targetWidth, targetChildrenWidth) Math.max(targetWidth, targetChildrenWidth)
); );
totalAvailWidth = Math.ceil(totalAvailWidth); totalAvailWidth = Math.ceil(totalAvailWidth);
@@ -226,7 +227,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
return { isOverflowing, targetContentWidth, totalAvailWidth }; return { isOverflowing, targetContentWidth, totalAvailWidth };
} }
@@ -8033,7 +8069,11 @@ class OverflowableToolbar { @@ -8110,7 +8145,11 @@ class OverflowableToolbar {
return; return;
} }
} }
@@ -239,7 +240,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
lazy.log.debug( lazy.log.debug(
`Need ${minSize} but width is ${totalAvailWidth} so bailing` `Need ${minSize} but width is ${totalAvailWidth} so bailing`
); );
@@ -8066,7 +8106,7 @@ class OverflowableToolbar { @@ -8143,7 +8182,7 @@ class OverflowableToolbar {
} }
} }
if (!inserted) { if (!inserted) {
@@ -248,7 +249,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
} }
child.removeAttribute("cui-anchorid"); child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem"); child.removeAttribute("overflowedItem");
@@ -8192,6 +8232,9 @@ class OverflowableToolbar { @@ -8269,6 +8308,9 @@ class OverflowableToolbar {
* if no such list exists. * if no such list exists.
*/ */
get #webExtList() { get #webExtList() {
@@ -258,7 +259,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
if (!this.#webExtListRef) { if (!this.#webExtListRef) {
let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget"); let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget");
if (!targetID) { if (!targetID) {
@@ -8203,6 +8246,9 @@ class OverflowableToolbar { @@ -8280,6 +8322,9 @@ class OverflowableToolbar {
let win = this.#toolbar.documentGlobal; let win = this.#toolbar.documentGlobal;
let { panel } = win.gUnifiedExtensions; let { panel } = win.gUnifiedExtensions;
this.#webExtListRef = panel.querySelector(`#${targetID}`); this.#webExtListRef = panel.querySelector(`#${targetID}`);
@@ -268,7 +269,7 @@ index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2
} }
return this.#webExtListRef; return this.#webExtListRef;
} }
@@ -8411,7 +8457,7 @@ class OverflowableToolbar { @@ -8488,7 +8533,7 @@ class OverflowableToolbar {
break; break;
} }
case "mousedown": { case "mousedown": {

View File

@@ -27,7 +27,7 @@ index 1b8c38159314b6edee9e6f455beb2b63db1ad3f0..1308345db640dba6b2848b49ef7c1181
+ </html:moz-page-nav-button> + </html:moz-page-nav-button>
+ <html:moz-page-nav-button id="category-zen-CKS" + <html:moz-page-nav-button id="category-zen-CKS"
+ view="paneZenCKS" + view="paneZenCKS"
+ iconsrc="chrome://browser/skin/quickactions.svg" + iconsrc="chrome://browser/skin/preferences/category-accessibility.svg"
+ data-l10n-id="pane-zen-CKS-title"> + data-l10n-id="pane-zen-CKS-title">
+ </html:moz-page-nav-button> + </html:moz-page-nav-button>
+ <html:moz-page-nav-button id="category-zen-marketplace" + <html:moz-page-nav-button id="category-zen-marketplace"

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b15a030046 100644 index 70b37f93c4e8ff4ad9a2452681e468d23914c1b5..dbf2d9c83dafbe0e0b4e6caf3835edc8edf9bcf4 100644
--- a/browser/components/tabbrowser/content/drag-and-drop.js --- a/browser/components/tabbrowser/content/drag-and-drop.js
+++ b/browser/components/tabbrowser/content/drag-and-drop.js +++ b/browser/components/tabbrowser/content/drag-and-drop.js
@@ -35,6 +35,9 @@ @@ -35,6 +35,9 @@
@@ -12,7 +12,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
if (isTab(element) || isSplitViewWrapper(element)) { if (isTab(element) || isSplitViewWrapper(element)) {
return element; return element;
} }
@@ -118,6 +121,9 @@ @@ -128,6 +131,9 @@
} }
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
@@ -22,7 +22,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
if ( if (
(dropEffect == "move" || dropEffect == "copy") && (dropEffect == "move" || dropEffect == "copy") &&
document == draggedTab.ownerDocument && document == draggedTab.ownerDocument &&
@@ -138,6 +144,7 @@ @@ -148,6 +154,7 @@
!draggedTab.group.collapsed !draggedTab.group.collapsed
) { ) {
draggedTab.group.collapsed = true; draggedTab.group.collapsed = true;
@@ -30,7 +30,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
} }
if (dropEffect == "move") { if (dropEffect == "move") {
@@ -145,10 +152,6 @@ @@ -155,10 +162,6 @@
// Pinned tabs in expanded vertical mode are on a grid format and require // Pinned tabs in expanded vertical mode are on a grid format and require
// different logic to drag and drop. // different logic to drag and drop.
@@ -41,7 +41,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
this._animateTabMove(event); this._animateTabMove(event);
return; return;
} }
@@ -287,6 +290,10 @@ @@ -297,6 +300,10 @@
this._tabDropIndicator.hidden = true; this._tabDropIndicator.hidden = true;
event.stopPropagation(); event.stopPropagation();
@@ -52,7 +52,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
if (draggedTab && dropEffect == "copy") { if (draggedTab && dropEffect == "copy") {
let duplicatedDraggedTab; let duplicatedDraggedTab;
let duplicatedTabs = []; let duplicatedTabs = [];
@@ -312,12 +319,16 @@ @@ -324,12 +331,16 @@
let translateOffsetY = oldTranslateY % tabHeight; let translateOffsetY = oldTranslateY % tabHeight;
let newTranslateX = oldTranslateX - translateOffsetX; let newTranslateX = oldTranslateX - translateOffsetX;
let newTranslateY = oldTranslateY - translateOffsetY; let newTranslateY = oldTranslateY - translateOffsetY;
@@ -73,7 +73,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
if (this._tabbrowserTabs.isContainerVerticalPinnedGrid(draggedTab)) { if (this._tabbrowserTabs.isContainerVerticalPinnedGrid(draggedTab)) {
// Update both translate axis for pinned vertical expanded tabs // Update both translate axis for pinned vertical expanded tabs
@@ -392,11 +403,13 @@ @@ -404,11 +415,13 @@
this._dragToPinPromoCard, this._dragToPinPromoCard,
]; ];
let shouldPin = let shouldPin =
@@ -87,15 +87,15 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
isTab(draggedTab) && isTab(draggedTab) &&
draggedTab.pinned && draggedTab.pinned &&
this._tabbrowserTabs.arrowScrollbox.contains(event.target); this._tabbrowserTabs.arrowScrollbox.contains(event.target);
@@ -466,6 +479,7 @@ @@ -484,6 +497,7 @@
} }
} }
+ shouldTranslate = false; + shouldTranslate = false;
if (shouldTranslate) { if (shouldTranslate) {
this.#dropAnimationEndTime = Date.now() + DROP_ANIMATION_GRACE_MS;
let translationPromises = []; let translationPromises = [];
for (let item of movingTabs) { @@ -496,7 +510,7 @@
@@ -477,7 +491,7 @@
item.removeAttribute("tabdrop-samewindow"); item.removeAttribute("tabdrop-samewindow");
resolve(); resolve();
}; };
@@ -104,7 +104,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
postTransitionCleanup(); postTransitionCleanup();
} else { } else {
let onTransitionEnd = transitionendEvent => { let onTransitionEnd = transitionendEvent => {
@@ -552,7 +566,7 @@ @@ -580,7 +594,7 @@
if (tab.selected) { if (tab.selected) {
selectedTab = tab; selectedTab = tab;
indexForSelectedTab = newIndex; indexForSelectedTab = newIndex;
@@ -113,7 +113,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
const droppedIntoPinnedArea = dropIndex < gBrowser.pinnedTabCount; const droppedIntoPinnedArea = dropIndex < gBrowser.pinnedTabCount;
const newSplitView = gBrowser.adoptSplitView(tab, { const newSplitView = gBrowser.adoptSplitView(tab, {
elementIndex: droppedIntoPinnedArea elementIndex: droppedIntoPinnedArea
@@ -577,7 +591,7 @@ @@ -605,7 +619,7 @@
} }
} }
} }
@@ -122,7 +122,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
const newTab = gBrowser.adoptTab(selectedTab, { const newTab = gBrowser.adoptTab(selectedTab, {
elementIndex: indexForSelectedTab, elementIndex: indexForSelectedTab,
selectTab: selectedTab == draggedTab, selectTab: selectedTab == draggedTab,
@@ -611,10 +625,6 @@ @@ -639,10 +653,6 @@
this._tabbrowserTabs.dragAndDropElements[ this._tabbrowserTabs.dragAndDropElements[
gBrowser.pinnedTabCount + unpinnedSplitViews.length - 1 gBrowser.pinnedTabCount + unpinnedSplitViews.length - 1
]; ];
@@ -133,7 +133,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
} }
} }
} else { } else {
@@ -664,6 +674,7 @@ @@ -703,6 +713,7 @@
let nextItem = this._tabbrowserTabs.dragAndDropElements[newIndex]; let nextItem = this._tabbrowserTabs.dragAndDropElements[newIndex];
let tabGroup = isTab(nextItem) && nextItem.group; let tabGroup = isTab(nextItem) && nextItem.group;
@@ -141,12 +141,15 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
gBrowser.loadTabs(urls, { gBrowser.loadTabs(urls, {
inBackground, inBackground,
replace, replace,
@@ -705,7 +716,16 @@ @@ -744,6 +755,22 @@
this._expandGroupOnDrop(draggedTab); this._expandGroupOnDrop(draggedTab);
} }
this._resetTabsAfterDrop(draggedTab.ownerDocument); this._resetTabsAfterDrop(draggedTab);
- + if (
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { + !dt.mozUserCancelled &&
+ dt.dropEffect == "none" &&
+ !this._tabbrowserTabs._isCustomizing
+ ) {
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); + const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
+ if (moved) { + if (moved) {
+ delete draggedTab._dragData; + delete draggedTab._dragData;
@@ -154,12 +157,14 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
+ } + }
+ } else if (dt.mozUserCancelled) { + } else if (dt.mozUserCancelled) {
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true); + gZenViewSplitter.onBrowserDragEndToSplit(event, true);
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false; + if (gZenViewSplitter._lastOpenedTab) {
+ gZenViewSplitter._lastOpenedTab._visuallySelected = false;
+ }
+ } + }
if ( if (
dt.mozUserCancelled || dt.mozUserCancelled ||
dt.dropEffect != "none" || @@ -1074,11 +1101,10 @@
@@ -927,11 +947,10 @@
return this.#getHorizontalScrollboxDragTarget(event, ignoreSides); return this.#getHorizontalScrollboxDragTarget(event, ignoreSides);
} }
while (target) { while (target) {
@@ -175,7 +180,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
break; break;
} }
target = target.parentNode; target = target.parentNode;
@@ -961,6 +980,9 @@ @@ -1108,6 +1134,9 @@
return null; return null;
} }
} }
@@ -185,17 +190,36 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
return target; return target;
} }
@@ -1014,7 +1036,8 @@ @@ -1170,14 +1199,20 @@
isTabGroupLabel(draggedTab) && let releaseReservedSpace = () =>
draggedTab._dragData?.expandGroupOnDrop this.#releaseSpaceInScrolledContent(periphery);
) { if (group.collapsed) {
- draggedTab.group.collapsed = false; - // The group's tabs animate back to their full size, so hold on to the
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active"); - // space reserved for them until they get there.
+ gZenFolders.animateGroupMove(draggedTab.group, true); - group.addEventListener(
- "TabGroupAnimationComplete",
- releaseReservedSpace,
- { once: true }
- );
- group.collapsed = false;
+ const expand = !group.hasAttribute("has-active");
+ if (expand) {
+ // The group's tabs animate back to their full size, so hold on to the
+ // space reserved for them until they get there.
+ group.addEventListener(
+ "TabGroupAnimationComplete",
+ releaseReservedSpace,
+ { once: true }
+ );
+ } else {
+ releaseReservedSpace();
+ }
+ group.collapsed = !expand;
+ gZenFolders.animateGroupMove(group, true);
} else {
releaseReservedSpace();
} }
} @@ -1362,7 +1397,6 @@
@@ -1206,7 +1229,6 @@
// using updateDragImage. On Linux, we can use a panel. // using updateDragImage. On Linux, we can use a panel.
if (platform == "win" || platform == "macosx") { if (platform == "win" || platform == "macosx") {
captureListener = function () { captureListener = function () {
@@ -203,7 +227,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
}; };
} else { } else {
// Create a panel to use it in setDragImage // Create a panel to use it in setDragImage
@@ -1244,7 +1266,6 @@ @@ -1400,7 +1434,6 @@
); );
dragImageOffset = dragImageOffset * scale; dragImageOffset = dragImageOffset * scale;
} }
@@ -211,7 +235,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
// _dragData.offsetX/Y give the coordinates that the mouse should be // _dragData.offsetX/Y give the coordinates that the mouse should be
// positioned relative to the corner of the new window created upon // positioned relative to the corner of the new window created upon
@@ -1263,7 +1284,7 @@ @@ -1419,7 +1452,7 @@
let dropEffect = this.getDropEffectForTabDrag(event); let dropEffect = this.getDropEffectForTabDrag(event);
let isMovingInTabStrip = !fromTabList && dropEffect == "move"; let isMovingInTabStrip = !fromTabList && dropEffect == "move";
let collapseTabGroupDuringDrag = let collapseTabGroupDuringDrag =
@@ -220,7 +244,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
tab._dragData = { tab._dragData = {
offsetX: this._tabbrowserTabs.verticalMode offsetX: this._tabbrowserTabs.verticalMode
@@ -1273,7 +1294,7 @@ @@ -1429,7 +1462,7 @@
? event.screenY - window.screenY - tabOffset ? event.screenY - window.screenY - tabOffset
: event.screenY - window.screenY, : event.screenY - window.screenY,
scrollPos: scrollPos:
@@ -229,7 +253,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
? this._tabbrowserTabs.pinnedTabsContainer.scrollPosition ? this._tabbrowserTabs.pinnedTabsContainer.scrollPosition
: this._tabbrowserTabs.arrowScrollbox.scrollPosition, : this._tabbrowserTabs.arrowScrollbox.scrollPosition,
screenX: event.screenX, screenX: event.screenX,
@@ -1320,6 +1341,7 @@ @@ -1522,6 +1555,7 @@
if (tabStripItemElement.hasAttribute("dragtarget")) { if (tabStripItemElement.hasAttribute("dragtarget")) {
return; return;
} }
@@ -237,7 +261,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
let isPinned = tab.pinned; let isPinned = tab.pinned;
let dragAndDropElements = this._tabbrowserTabs.dragAndDropElements; let dragAndDropElements = this._tabbrowserTabs.dragAndDropElements;
let isGrid = this._tabbrowserTabs.isContainerVerticalPinnedGrid(tab); let isGrid = this._tabbrowserTabs.isContainerVerticalPinnedGrid(tab);
@@ -1686,23 +1708,6 @@ @@ -1895,23 +1929,6 @@
// Slide the relevant tabs to their new position. // Slide the relevant tabs to their new position.
// non-moving tabs adjust for RTL // non-moving tabs adjust for RTL
@@ -261,7 +285,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
// moving tabs don't adjust for RTL // moving tabs don't adjust for RTL
for (let item of selectedElements) { for (let item of selectedElements) {
if ( if (
@@ -1751,7 +1756,6 @@ @@ -1960,7 +1977,6 @@
for (let item of this._tabbrowserTabs.dragAndDropElements) { for (let item of this._tabbrowserTabs.dragAndDropElements) {
delete item._moveTogetherSelectedTabsData; delete item._moveTogetherSelectedTabsData;
item = elementToMove(item); item = elementToMove(item);
@@ -269,7 +293,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
item.removeAttribute("multiselected-move-together"); item.removeAttribute("multiselected-move-together");
} }
} }
@@ -2598,7 +2602,6 @@ @@ -2812,7 +2828,6 @@
tab.style.top = ""; tab.style.top = "";
tab.style.maxWidth = ""; tab.style.maxWidth = "";
tab.style.pointerEvents = ""; tab.style.pointerEvents = "";
@@ -277,7 +301,7 @@ index 8bb1219962a1368f50b53c61041f135c68e35f31..8e72441d26883cbef7a352b00c0fe2b1
tab.removeAttribute("small-stack"); tab.removeAttribute("small-stack");
tab.removeAttribute("big-stack"); tab.removeAttribute("big-stack");
} }
@@ -2607,11 +2610,9 @@ @@ -2821,11 +2836,9 @@
)) { )) {
label.style.width = ""; label.style.width = "";
label.style.maxWidth = ""; label.style.maxWidth = "";

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da5504f9d8 100644 index 43180487a2fac15b7a65fac94f233eeed9094990..ae1288974cae29da929f27b78ff8db542566eba2 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js --- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -513,6 +513,7 @@ @@ -514,6 +514,7 @@
* @type {MozBrowser[]} * @type {MozBrowser[]}
*/ */
get splitViewBrowsers() { get splitViewBrowsers() {
@@ -10,7 +10,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
const browsers = []; const browsers = [];
if (this.#activeSplitView) { if (this.#activeSplitView) {
for (const tab of this.#activeSplitView.tabs) { for (const tab of this.#activeSplitView.tabs) {
@@ -611,15 +612,66 @@ @@ -612,15 +613,66 @@
return this.tabContainer.visibleTabs; return this.tabContainer.visibleTabs;
} }
@@ -79,7 +79,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
setSelectedTab(val, metricsContext = null) { setSelectedTab(val, metricsContext = null) {
if (this.selectedTab === val) { if (this.selectedTab === val) {
return; return;
@@ -632,6 +684,9 @@ @@ -633,6 +685,9 @@
) { ) {
return; return;
} }
@@ -89,7 +89,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Update the tab // Update the tab
this.tabbox.selectedTab = val; this.tabbox.selectedTab = val;
@@ -708,6 +763,10 @@ @@ -709,6 +764,10 @@
userContextId = parseInt(tabArgument.getAttribute("usercontextid"), 10); userContextId = parseInt(tabArgument.getAttribute("usercontextid"), 10);
} }
@@ -100,7 +100,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (openWindowInfo) { if (openWindowInfo) {
userContextId = openWindowInfo.originAttributes.userContextId; userContextId = openWindowInfo.originAttributes.userContextId;
} }
@@ -809,6 +868,8 @@ @@ -810,6 +869,8 @@
this.tabpanels.appendChild(panel); this.tabpanels.appendChild(panel);
let tab = this.tabs[0]; let tab = this.tabs[0];
@@ -109,7 +109,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
tab.linkedPanel = uniqueId; tab.linkedPanel = uniqueId;
this._selectedTab = tab; this._selectedTab = tab;
this._selectedBrowser = browser; this._selectedBrowser = browser;
@@ -1178,18 +1239,24 @@ @@ -1179,18 +1240,24 @@
* The context for the operation for telemetry purposes, defaults to an unknown context. * The context for the operation for telemetry purposes, defaults to an unknown context.
*/ */
pinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) { pinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) {
@@ -135,7 +135,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
aTab.setAttribute("pinned", "true"); aTab.setAttribute("pinned", "true");
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
@@ -1206,16 +1273,25 @@ @@ -1207,16 +1274,25 @@
* The context for the operation for telemetry purposes, defaults to an unknown context. * The context for the operation for telemetry purposes, defaults to an unknown context.
*/ */
unpinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) { unpinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) {
@@ -162,7 +162,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
}); });
aTab.style.marginInlineStart = ""; aTab.style.marginInlineStart = "";
@@ -1430,6 +1506,9 @@ @@ -1432,6 +1508,9 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"]; let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
@@ -172,7 +172,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if ( if (
aIconURL && aIconURL &&
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol)) !LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
@@ -1439,6 +1518,9 @@ @@ -1441,6 +1520,9 @@
); );
return; return;
} }
@@ -182,7 +182,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let browser = this.getBrowserForTab(aTab); let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL; browser.mIconURL = aIconURL;
@@ -1761,7 +1843,6 @@ @@ -1763,7 +1845,6 @@
// Preview mode should not reset the owner // Preview mode should not reset the owner
if (!this.#previewMode && !oldTab.selected) { if (!this.#previewMode && !oldTab.selected) {
@@ -190,7 +190,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
let lastRelatedTab = this.#lastRelatedTabMap.get(oldTab); let lastRelatedTab = this.#lastRelatedTabMap.get(oldTab);
@@ -1852,6 +1933,7 @@ @@ -1854,6 +1935,7 @@
if (!this.#previewMode) { if (!this.#previewMode) {
newTab.recordTimeFromUnloadToReload(); newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed(); newTab.updateLastAccessed();
@@ -198,7 +198,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
oldTab.updateLastAccessed(); oldTab.updateLastAccessed();
// if this is the foreground window, update the last-seen timestamps. // if this is the foreground window, update the last-seen timestamps.
if (this.documentGlobal == BrowserWindowTracker.getTopWindow()) { if (this.documentGlobal == BrowserWindowTracker.getTopWindow()) {
@@ -2066,6 +2148,9 @@ @@ -2068,6 +2150,9 @@
} }
let activeEl = document.activeElement; let activeEl = document.activeElement;
@@ -208,7 +208,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// If focus is on the old tab, move it to the new tab. // If focus is on the old tab, move it to the new tab.
if (activeEl == oldTab) { if (activeEl == oldTab) {
newTab.focus(); newTab.focus();
@@ -2104,7 +2189,7 @@ @@ -2106,7 +2191,7 @@
// Focus the location bar if it was previously focused for that tab. // Focus the location bar if it was previously focused for that tab.
// In full screen mode, only bother making the location bar visible // In full screen mode, only bother making the location bar visible
// if the tab is a blank one. // if the tab is a blank one.
@@ -217,7 +217,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let selectURL = () => { let selectURL = () => {
if (this._asyncTabSwitching) { if (this._asyncTabSwitching) {
// Set _awaitingSetURI flag to suppress popup notification // Set _awaitingSetURI flag to suppress popup notification
@@ -2392,7 +2477,12 @@ @@ -2394,7 +2479,12 @@
return this._setTabLabel(aTab, aLabel); return this._setTabLabel(aTab, aLabel);
} }
@@ -231,7 +231,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (!aLabel || (isURL && /^about:reader\?url=/.test(aLabel))) { if (!aLabel || (isURL && /^about:reader\?url=/.test(aLabel))) {
return false; return false;
} }
@@ -2518,7 +2608,7 @@ @@ -2520,7 +2610,7 @@
newIndex = this.selectedTab._tPos + 1; newIndex = this.selectedTab._tPos + 1;
} }
@@ -240,7 +240,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (this.isTabGroupLabel(targetTab)) { if (this.isTabGroupLabel(targetTab)) {
throw new Error( throw new Error(
"Replacing a tab group label with a tab is not supported" "Replacing a tab group label with a tab is not supported"
@@ -2793,6 +2883,7 @@ @@ -2795,6 +2885,7 @@
uriIsAboutBlank, uriIsAboutBlank,
userContextId, userContextId,
skipLoad, skipLoad,
@@ -248,7 +248,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} = {}) { } = {}) {
let b = document.createXULElement("browser"); let b = document.createXULElement("browser");
// Use the JSM global to create the permanentKey, so that if the // Use the JSM global to create the permanentKey, so that if the
@@ -2866,8 +2957,7 @@ @@ -2868,8 +2959,7 @@
// we use a different attribute name for this? // we use a different attribute name for this?
b.setAttribute("name", name); b.setAttribute("name", name);
} }
@@ -258,7 +258,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
b.setAttribute("transparent", "true"); b.setAttribute("transparent", "true");
} }
@@ -3022,7 +3112,7 @@ @@ -3024,7 +3114,7 @@
let panel = this.getPanel(browser); let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID(); let uniqueId = this._generateUniquePanelID();
@@ -267,7 +267,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
aTab.linkedPanel = uniqueId; aTab.linkedPanel = uniqueId;
// Inject the <browser> into the DOM if necessary. // Inject the <browser> into the DOM if necessary.
@@ -3082,8 +3172,8 @@ @@ -3084,8 +3174,8 @@
// If we transitioned from one browser to two browsers, we need to set // If we transitioned from one browser to two browsers, we need to set
// hasSiblings=false on both the existing browser and the new browser. // hasSiblings=false on both the existing browser and the new browser.
if (this.tabs.length == 2) { if (this.tabs.length == 2) {
@@ -278,7 +278,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} else { } else {
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1; aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
} }
@@ -3268,7 +3358,6 @@ @@ -3270,7 +3360,6 @@
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, { this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
tabIndex: tab._tPos + 1, tabIndex: tab._tPos + 1,
userContextId: tab.userContextId, userContextId: tab.userContextId,
@@ -286,7 +286,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
focusUrlBar: true, focusUrlBar: true,
}); });
resolve(this.selectedBrowser); resolve(this.selectedBrowser);
@@ -3378,6 +3467,10 @@ @@ -3380,6 +3469,10 @@
schemelessInput, schemelessInput,
hasValidUserGestureActivation = false, hasValidUserGestureActivation = false,
textDirectiveUserActivation = false, textDirectiveUserActivation = false,
@@ -297,7 +297,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} = {} } = {}
) { ) {
// all callers of addTab that pass a params object need to pass // all callers of addTab that pass a params object need to pass
@@ -3388,10 +3481,25 @@ @@ -3390,10 +3483,25 @@
); );
} }
@@ -323,7 +323,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// If we're opening a foreground tab, set the owner by default. // If we're opening a foreground tab, set the owner by default.
ownerTab ??= inBackground ? null : this.selectedTab; ownerTab ??= inBackground ? null : this.selectedTab;
@@ -3399,6 +3507,7 @@ @@ -3401,6 +3509,7 @@
if (this.selectedTab.owner) { if (this.selectedTab.owner) {
this.selectedTab.owner = null; this.selectedTab.owner = null;
} }
@@ -331,7 +331,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Find the tab that opened this one, if any. This is used for // Find the tab that opened this one, if any. This is used for
// determining positioning, and inherited attributes such as the // determining positioning, and inherited attributes such as the
@@ -3451,6 +3560,22 @@ @@ -3453,6 +3562,22 @@
noInitialLabel, noInitialLabel,
skipBackgroundNotify, skipBackgroundNotify,
}); });
@@ -354,7 +354,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (insertTab) { if (insertTab) {
// Insert the tab into the tab container in the correct position. // Insert the tab into the tab container in the correct position.
this.#insertTabAtIndex(t, { this.#insertTabAtIndex(t, {
@@ -3459,6 +3584,7 @@ @@ -3461,6 +3586,7 @@
ownerTab, ownerTab,
openerTab, openerTab,
pinned, pinned,
@@ -362,7 +362,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
bulkOrderedOpen, bulkOrderedOpen,
tabGroup: tabGroup ?? openerTab?.group, tabGroup: tabGroup ?? openerTab?.group,
}); });
@@ -3477,6 +3603,7 @@ @@ -3479,6 +3605,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -370,7 +370,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
})); }));
if (focusUrlBar) { if (focusUrlBar) {
@@ -3601,6 +3728,12 @@ @@ -3603,6 +3730,12 @@
} }
} }
@@ -383,7 +383,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Additionally send pinned tab events // Additionally send pinned tab events
if (pinned) { if (pinned) {
this.#notifyPinnedStatus(t); this.#notifyPinnedStatus(t);
@@ -3611,6 +3744,15 @@ @@ -3613,6 +3746,15 @@
if (!inBackground) { if (!inBackground) {
this.selectedTab = t; this.selectedTab = t;
} }
@@ -399,7 +399,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
return t; return t;
} }
@@ -3834,6 +3976,7 @@ @@ -3836,6 +3978,7 @@
insertBefore = null, insertBefore = null,
isAdoptingGroup = false, isAdoptingGroup = false,
metricsContext = this.TabMetrics.UNKNOWN_CONTEXT, metricsContext = this.TabMetrics.UNKNOWN_CONTEXT,
@@ -407,7 +407,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} = {} } = {}
) { ) {
if ( if (
@@ -3844,9 +3987,6 @@ @@ -3846,9 +3989,6 @@
!this.isSplitViewWrapper(tabOrSplitView) !this.isSplitViewWrapper(tabOrSplitView)
) )
) { ) {
@@ -417,7 +417,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
if (!color) { if (!color) {
@@ -3867,9 +4007,14 @@ @@ -3869,9 +4009,14 @@
label, label,
isAdoptingGroup isAdoptingGroup
); );
@@ -434,7 +434,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
); );
group.addTabs(tabsAndSplitViews, metricsContext); group.addTabs(tabsAndSplitViews, metricsContext);
@@ -3973,7 +4118,7 @@ @@ -3975,7 +4120,7 @@
} }
this.#handleTabMove(tab, () => this.#handleTabMove(tab, () =>
@@ -443,7 +443,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
); );
} }
@@ -4059,6 +4204,7 @@ @@ -4061,6 +4206,7 @@
color: group.color, color: group.color,
insertBefore: newTabs[0], insertBefore: newTabs[0],
isAdoptingGroup: true, isAdoptingGroup: true,
@@ -451,7 +451,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
}); });
} }
@@ -4269,6 +4415,7 @@ @@ -4271,6 +4417,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -459,7 +459,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
) { ) {
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and // If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
@@ -4329,6 +4476,7 @@ @@ -4331,6 +4478,7 @@
openWindowInfo, openWindowInfo,
name, name,
skipLoad, skipLoad,
@@ -467,7 +467,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
}); });
} }
@@ -4542,9 +4690,9 @@ @@ -4544,9 +4692,9 @@
} }
// Add a new tab if needed. // Add a new tab if needed.
@@ -479,7 +479,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let url = "about:blank"; let url = "about:blank";
if (tabData.entries?.length) { if (tabData.entries?.length) {
@@ -4577,8 +4725,10 @@ @@ -4579,8 +4727,10 @@
insertTab: false, insertTab: false,
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
@@ -491,7 +491,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (select) { if (select) {
tabToSelect = tab; tabToSelect = tab;
} }
@@ -4600,7 +4750,8 @@ @@ -4602,7 +4752,8 @@
this.pinTab(tab); this.pinTab(tab);
// Then ensure all the tab open/pinning information is sent. // Then ensure all the tab open/pinning information is sent.
this._fireTabOpen(tab, {}); this._fireTabOpen(tab, {});
@@ -501,7 +501,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let { groupId } = tabData; let { groupId } = tabData;
const tabGroup = tabGroupWorkingData.get(groupId); const tabGroup = tabGroupWorkingData.get(groupId);
// if a tab refers to a tab group we don't know, skip any group // if a tab refers to a tab group we don't know, skip any group
@@ -4620,7 +4771,10 @@ @@ -4622,7 +4773,10 @@
tabGroup.stateData.id, tabGroup.stateData.id,
tabGroup.stateData.color, tabGroup.stateData.color,
tabGroup.stateData.collapsed, tabGroup.stateData.collapsed,
@@ -513,7 +513,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
); );
tabsFragment.appendChild(tabGroup.node); tabsFragment.appendChild(tabGroup.node);
} }
@@ -4675,9 +4829,21 @@ @@ -4677,9 +4831,21 @@
// to remove the old selected tab. // to remove the old selected tab.
if (tabToSelect) { if (tabToSelect) {
let leftoverTab = this.selectedTab; let leftoverTab = this.selectedTab;
@@ -535,7 +535,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (tabs.length > 1 || !tabs[0].selected) { if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert(); this._updateTabsAfterInsert();
@@ -4882,11 +5048,17 @@ @@ -4884,11 +5050,17 @@
if (ownerTab) { if (ownerTab) {
tab.owner = ownerTab; tab.owner = ownerTab;
} }
@@ -554,7 +554,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if ( if (
!bulkOrderedOpen && !bulkOrderedOpen &&
((openerTab && ((openerTab &&
@@ -4898,7 +5070,7 @@ @@ -4900,7 +5072,7 @@
let lastRelatedTab = let lastRelatedTab =
openerTab && this.#lastRelatedTabMap.get(openerTab); openerTab && this.#lastRelatedTabMap.get(openerTab);
let previousTab = lastRelatedTab || openerTab || this.selectedTab; let previousTab = lastRelatedTab || openerTab || this.selectedTab;
@@ -563,7 +563,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
tabGroup = previousTab.group; tabGroup = previousTab.group;
} }
if ( if (
@@ -4914,7 +5086,7 @@ @@ -4916,7 +5088,7 @@
previousTab.splitview previousTab.splitview
) + 1; ) + 1;
} else if (previousTab.visible) { } else if (previousTab.visible) {
@@ -572,7 +572,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} else if (previousTab == FirefoxViewHandler.tab) { } else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0; elementIndex = 0;
} }
@@ -4942,14 +5114,14 @@ @@ -4944,14 +5116,14 @@
} }
// Ensure index is within bounds. // Ensure index is within bounds.
if (tab.pinned) { if (tab.pinned) {
@@ -591,7 +591,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (pinned && !itemAfter?.pinned) { if (pinned && !itemAfter?.pinned) {
itemAfter = null; itemAfter = null;
@@ -4966,7 +5138,7 @@ @@ -4968,7 +5140,7 @@
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -600,7 +600,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if ( if (
(this.isTab(itemAfter) && itemAfter.group == tabGroup) || (this.isTab(itemAfter) && itemAfter.group == tabGroup) ||
this.isSplitViewWrapper(itemAfter) this.isSplitViewWrapper(itemAfter)
@@ -4997,7 +5169,11 @@ @@ -4999,7 +5171,11 @@
const tabContainer = pinned const tabContainer = pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -612,7 +612,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
if (tab.group?.collapsed) { if (tab.group?.collapsed) {
@@ -5012,6 +5188,7 @@ @@ -5014,6 +5190,7 @@
if (pinned) { if (pinned) {
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
} }
@@ -620,7 +620,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -5568,6 +5745,7 @@ @@ -5577,6 +5754,7 @@
metricsContext, metricsContext,
} = {} } = {}
) { ) {
@@ -628,7 +628,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs // When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window. // can be considered equivalent to closing the window.
if ( if (
@@ -5678,6 +5856,7 @@ @@ -5687,6 +5865,7 @@
closedTabCount -= 1; closedTabCount -= 1;
} }
} }
@@ -636,7 +636,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (closedTabCount > 0) { if (closedTabCount > 0) {
this.recordTabMetrics( this.recordTabMetrics(
@@ -5730,6 +5909,14 @@ @@ -5761,6 +5940,14 @@
return; return;
} }
@@ -651,7 +651,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let isVisibleTab = aTab.visible; let isVisibleTab = aTab.visible;
// We have to sample the tab width now, since _beginRemoveTab might // We have to sample the tab width now, since _beginRemoveTab might
// end up modifying the DOM in such a way that aTab gets a new // end up modifying the DOM in such a way that aTab gets a new
@@ -5737,6 +5924,9 @@ @@ -5768,6 +5955,9 @@
// state). // state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab); let isLastTab = this.#isLastTabInWindow(aTab);
@@ -661,7 +661,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if ( if (
!this._beginRemoveTab(aTab, { !this._beginRemoveTab(aTab, {
closeWindowFastpath: true, closeWindowFastpath: true,
@@ -5747,13 +5937,14 @@ @@ -5778,13 +5968,14 @@
metricsContext, metricsContext,
}) })
) { ) {
@@ -677,7 +677,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let lockTabSizing = let lockTabSizing =
!this.tabContainer.verticalMode && !this.tabContainer.verticalMode &&
!aTab.pinned && !aTab.pinned &&
@@ -5784,7 +5975,13 @@ @@ -5815,7 +6006,13 @@
// We're not animating, so we can cancel the animation stopwatch. // We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null; aTab._closeTimeAnimTimerId = null;
@@ -692,7 +692,18 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
return; return;
} }
@@ -5827,7 +6024,7 @@ @@ -5855,7 +6052,9 @@
get #shouldCloseWindowWithLastTab() {
return (
!window.toolbar.visible ||
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab")
+ (Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") &&
+ !gZenWorkspaces._isClosingWindow &&
+ !gZenWorkspaces._removedByStartupPage)
);
}
@@ -5871,7 +6070,7 @@
*/ */
#isLastTabInWindow(tab) { #isLastTabInWindow(tab) {
for (const otherTab of this.tabs) { for (const otherTab of this.tabs) {
@@ -701,16 +712,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
return false; return false;
} }
} }
@@ -5917,7 +6114,7 @@ @@ -5982,6 +6181,7 @@
closeWindowWithLastTab != null
? closeWindowWithLastTab
: !window.toolbar.visible ||
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab");
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !gZenWorkspaces._isClosingWindow && !gZenWorkspaces._removedByStartupPage;
if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here,
@@ -5941,6 +6138,7 @@
newTab = true; newTab = true;
} }
@@ -718,8 +720,8 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
aTab._endRemoveArgs = [closeWindow, newTab]; aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation. // swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -5982,13 +6180,7 @@ @@ -6029,13 +6229,7 @@
aTab._mouseleave(); }
if (newTab) { if (newTab) {
- this.addTrustedTab(BROWSER_NEW_TAB_URL, { - this.addTrustedTab(BROWSER_NEW_TAB_URL, {
@@ -733,7 +735,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} else { } else {
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -6128,6 +6320,7 @@ @@ -6192,6 +6386,7 @@
this.tabs[i]._tPos = i; this.tabs[i]._tPos = i;
} }
@@ -741,7 +743,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (!this.#windowIsClosing) { if (!this.#windowIsClosing) {
// update tab close buttons state // update tab close buttons state
this.tabContainer._updateCloseButtons(); this.tabContainer._updateCloseButtons();
@@ -6313,6 +6506,7 @@ @@ -6377,6 +6572,7 @@
memory_after: await getTotalMemoryUsage(), memory_after: await getTotalMemoryUsage(),
time_to_unload_in_ms: timeElapsed, time_to_unload_in_ms: timeElapsed,
}); });
@@ -749,7 +751,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
/** /**
@@ -6358,6 +6552,7 @@ @@ -6422,6 +6618,7 @@
} }
let excludeTabs = new Set(aExcludeTabs); let excludeTabs = new Set(aExcludeTabs);
@@ -757,7 +759,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// If this tab has a successor, it should be selectable, since // If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor. // hiding or closing a tab removes that tab as a successor.
@@ -6370,13 +6565,13 @@ @@ -6434,13 +6631,13 @@
!excludeTabs.has(aTab.owner) && !excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) { ) {
@@ -773,7 +775,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
); );
if (Services.prefs.getBoolPref("browser.tabs.selectMRUOnClose", false)) { if (Services.prefs.getBoolPref("browser.tabs.selectMRUOnClose", false)) {
@@ -6392,6 +6587,13 @@ @@ -6456,6 +6653,13 @@
} }
} }
@@ -787,7 +789,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let tab = this.tabContainer.findNextTab(aTab, { let tab = this.tabContainer.findNextTab(aTab, {
direction: 1, direction: 1,
filter: _tab => remainingTabs.includes(_tab), filter: _tab => remainingTabs.includes(_tab),
@@ -6405,7 +6607,7 @@ @@ -6469,7 +6673,7 @@
} }
if (tab) { if (tab) {
@@ -796,7 +798,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
// If no qualifying visible tab was found, see if there is a tab in // If no qualifying visible tab was found, see if there is a tab in
@@ -6426,7 +6628,7 @@ @@ -6490,7 +6694,7 @@
}); });
} }
@@ -805,7 +807,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
_blurTab(aTab) { _blurTab(aTab) {
@@ -6437,7 +6639,7 @@ @@ -6501,7 +6705,7 @@
* @returns {boolean} * @returns {boolean}
* False if swapping isn't permitted, true otherwise. * False if swapping isn't permitted, true otherwise.
*/ */
@@ -814,7 +816,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Do not allow transfering a private tab to a non-private window // Do not allow transfering a private tab to a non-private window
// and vice versa. // and vice versa.
if ( if (
@@ -6491,6 +6693,7 @@ @@ -6555,6 +6759,7 @@
// fire the beforeunload event in the process. Close the other // fire the beforeunload event in the process. Close the other
// window if this was its last tab. // window if this was its last tab.
if ( if (
@@ -822,7 +824,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
!remoteBrowser._beginRemoveTab(aOtherTab, { !remoteBrowser._beginRemoveTab(aOtherTab, {
adoptedByTab: aOurTab, adoptedByTab: aOurTab,
closeWindowWithLastTab: true, closeWindowWithLastTab: true,
@@ -6502,7 +6705,7 @@ @@ -6566,7 +6771,7 @@
// If this is the last tab of the window, hide the window // If this is the last tab of the window, hide the window
// immediately without animation before the docshell swap, to avoid // immediately without animation before the docshell swap, to avoid
// about:blank being painted. // about:blank being painted.
@@ -831,7 +833,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (closeWindow) { if (closeWindow) {
let win = aOtherTab.documentGlobal; let win = aOtherTab.documentGlobal;
win.windowUtils.suppressAnimation(true); win.windowUtils.suppressAnimation(true);
@@ -6636,11 +6839,13 @@ @@ -6700,11 +6905,13 @@
} }
// Finish tearing down the tab that's going away. // Finish tearing down the tab that's going away.
@@ -845,7 +847,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
this.setTabTitle(aOurTab); this.setTabTitle(aOurTab);
@@ -6860,10 +7065,10 @@ @@ -6928,10 +7135,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
} }
@@ -858,7 +860,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
aTab.selected || aTab.selected ||
aTab.closing || aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden. // Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -6923,7 +7128,8 @@ @@ -6991,7 +7198,8 @@
* @param {object} [aOptions={}] * @param {object} [aOptions={}]
* Key-value pairs that will be serialized into the features string. * Key-value pairs that will be serialized into the features string.
*/ */
@@ -868,7 +870,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (this.tabs.length == 1) { if (this.tabs.length == 1) {
return null; return null;
} }
@@ -6940,7 +7146,7 @@ @@ -7008,7 +7216,7 @@
// tell a new window to take the "dropped" tab // tell a new window to take the "dropped" tab
let args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray); let args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
args.appendElement(aTab.splitview ?? aTab); args.appendElement(aTab.splitview ?? aTab);
@@ -877,7 +879,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
private: PrivateBrowsingUtils.isWindowPrivate(window), private: PrivateBrowsingUtils.isWindowPrivate(window),
features: Object.entries(aOptions) features: Object.entries(aOptions)
.map(([key, value]) => `${key}=${value}`) .map(([key, value]) => `${key}=${value}`)
@@ -6948,6 +7154,8 @@ @@ -7016,6 +7224,8 @@
openerWindow: window, openerWindow: window,
args, args,
}); });
@@ -886,7 +888,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
/** /**
@@ -7074,7 +7282,7 @@ @@ -7142,7 +7352,7 @@
* `true` if element is a `<tab-group>` * `true` if element is a `<tab-group>`
*/ */
isTabGroup(element) { isTabGroup(element) {
@@ -895,7 +897,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
/** /**
@@ -7146,8 +7354,8 @@ @@ -7214,8 +7424,8 @@
} }
// Don't allow mixing pinned and unpinned tabs. // Don't allow mixing pinned and unpinned tabs.
@@ -906,7 +908,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} else { } else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount); tabIndex = Math.max(tabIndex, this.pinnedTabCount);
} }
@@ -7193,8 +7401,8 @@ @@ -7261,8 +7471,8 @@
this.#handleTabMove( this.#handleTabMove(
element, element,
() => { () => {
@@ -917,7 +919,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
neighbor = neighbor.group; neighbor = neighbor.group;
} }
if (neighbor?.splitview) { if (neighbor?.splitview) {
@@ -7205,6 +7413,12 @@ @@ -7273,6 +7483,12 @@
return; return;
} }
} }
@@ -930,7 +932,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
if (movingForwards && neighbor) { if (movingForwards && neighbor) {
neighbor.after(element); neighbor.after(element);
@@ -7278,23 +7492,31 @@ @@ -7346,23 +7562,31 @@
) { ) {
if (this.isTabGroupLabel(targetElement)) { if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group; targetElement = targetElement.group;
@@ -968,7 +970,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} else if (!element.pinned && targetElement && targetElement.pinned) { } else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned // If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element // tab, move the unpinned element to be the first unpinned element
@@ -7307,12 +7529,35 @@ @@ -7375,12 +7599,35 @@
// move the tab group right before the first unpinned tab. // move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped: // 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group. // move the tab group right before the first unpinned tab's tab group.
@@ -1005,7 +1007,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// We want to include the splitview wrapper if it's the targetElement, but // We want to include the splitview wrapper if it's the targetElement, but
// not in the case where we want to reverse tabs within the same splitview. // not in the case where we want to reverse tabs within the same splitview.
@@ -7321,6 +7566,7 @@ @@ -7389,6 +7636,7 @@
} }
let getContainer = () => let getContainer = () =>
@@ -1013,7 +1015,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
element.pinned element.pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -7329,11 +7575,15 @@ @@ -7397,11 +7645,15 @@
element, element,
() => { () => {
if (moveBefore) { if (moveBefore) {
@@ -1030,7 +1032,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
}, },
{ metricsContext } { metricsContext }
@@ -7411,11 +7661,15 @@ @@ -7479,11 +7731,15 @@
* The context for the operation for telemetry purposes. * The context for the operation for telemetry purposes.
*/ */
moveTabToExistingGroup(aTab, aGroup, { metricsContext } = {}) { moveTabToExistingGroup(aTab, aGroup, { metricsContext } = {}) {
@@ -1049,7 +1051,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
return; return;
@@ -7489,6 +7743,7 @@ @@ -7557,6 +7813,7 @@
let state = { let state = {
tabIndex: tab._tPos, tabIndex: tab._tPos,
@@ -1057,7 +1059,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
}; };
if (tab.visible) { if (tab.visible) {
state.elementIndex = tab.elementIndex; state.elementIndex = tab.elementIndex;
@@ -7527,7 +7782,7 @@ @@ -7595,7 +7852,7 @@
let changedSplitView = let changedSplitView =
previousTabState.splitViewId != currentTabState.splitViewId; previousTabState.splitViewId != currentTabState.splitViewId;
@@ -1066,7 +1068,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
tab.dispatchEvent( tab.dispatchEvent(
new CustomEvent("TabMove", { new CustomEvent("TabMove", {
bubbles: true, bubbles: true,
@@ -7579,6 +7834,10 @@ @@ -7647,6 +7904,10 @@
moveActionCallback(); moveActionCallback();
@@ -1077,7 +1079,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Clear tabs cache after moving nodes because the order of tabs may have // Clear tabs cache after moving nodes because the order of tabs may have
// changed. // changed.
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -7626,7 +7885,22 @@ @@ -7694,7 +7955,22 @@
* @returns {object} * @returns {object}
* The new tab in the current window, null if the tab couldn't be adopted. * The new tab in the current window, null if the tab couldn't be adopted.
*/ */
@@ -1101,7 +1103,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
// Swap the dropped tab with a new one we create and then close // Swap the dropped tab with a new one we create and then close
// it in the other window (making it seem to have moved between // it in the other window (making it seem to have moved between
// windows). We also ensure that the tab we create to swap into has // windows). We also ensure that the tab we create to swap into has
@@ -7669,6 +7943,8 @@ @@ -7737,6 +8013,8 @@
} }
params.skipLoad = true; params.skipLoad = true;
let newTab = this.addWebTab("about:blank", params); let newTab = this.addWebTab("about:blank", params);
@@ -1110,7 +1112,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
aTab.container.tabDragAndDrop.finishAnimateTabMove(); aTab.container.tabDragAndDrop.finishAnimateTabMove();
@@ -8448,7 +8724,7 @@ @@ -8516,7 +8794,7 @@
// preventDefault(). It will still raise the window if appropriate. // preventDefault(). It will still raise the window if appropriate.
return; return;
} }
@@ -1119,7 +1121,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
window.focus(); window.focus();
aEvent.preventDefault(); aEvent.preventDefault();
} }
@@ -8465,7 +8741,6 @@ @@ -8533,7 +8811,6 @@
on_TabGroupCollapse(aEvent) { on_TabGroupCollapse(aEvent) {
aEvent.target.tabs.forEach(tab => { aEvent.target.tabs.forEach(tab => {
@@ -1127,7 +1129,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
}); });
} }
@@ -8819,7 +9094,9 @@ @@ -8887,7 +9164,9 @@
let filter = this.#tabFilters.get(tab); let filter = this.#tabFilters.get(tab);
if (filter) { if (filter) {
@@ -1137,7 +1139,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
let listener = this.#tabListeners.get(tab); let listener = this.#tabListeners.get(tab);
if (listener) { if (listener) {
@@ -9604,6 +9881,7 @@ @@ -9676,6 +9955,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this._tab.setAttribute("busy", "true"); this._tab.setAttribute("busy", "true");
@@ -1145,7 +1147,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
gBrowser._tabAttrModified(this._tab, ["busy"]); gBrowser._tabAttrModified(this._tab, ["busy"]);
this._tab._notselectedsinceload = !this._tab.selected; this._tab._notselectedsinceload = !this._tab.selected;
} }
@@ -9684,6 +9962,7 @@ @@ -9756,6 +10036,7 @@
// known defaults. Note we use the original URL since about:newtab // known defaults. Note we use the original URL since about:newtab
// redirects to a prerendered page. // redirects to a prerendered page.
const shouldRemoveFavicon = const shouldRemoveFavicon =
@@ -1153,7 +1155,7 @@ index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da
!this._browser.mIconURL && !this._browser.mIconURL &&
!ignoreBlank && !ignoreBlank &&
!(originalLocation.spec in FAVICON_DEFAULTS); !(originalLocation.spec in FAVICON_DEFAULTS);
@@ -9858,13 +10137,6 @@ @@ -9930,13 +10211,6 @@
this._browser.originalURI = aRequest.originalURI; this._browser.originalURI = aRequest.originalURI;
} }

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
index 89f0d44d462de3d7d0f581d6371606f475443822..0d45ce5f6455e9c7276c54f504906bade5b3d286 100644 index e48f0295d803ba9eac5ab9d01ebb3b3dacbc9d4b..cb78b74230f63a47479404767b5ab5883278dfba 100644
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs --- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs +++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
@@ -163,6 +163,9 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([ @@ -161,6 +161,9 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([
// Feature gate pref for flight status suggestions in the urlbar. // Feature gate pref for flight status suggestions in the urlbar.
["flightStatus.featureGate", false], ["flightStatus.featureGate", false],
@@ -12,7 +12,7 @@ index 89f0d44d462de3d7d0f581d6371606f475443822..0d45ce5f6455e9c7276c54f504906bad
// The minimum prefix length of a flight status keyword the user must type to // The minimum prefix length of a flight status keyword the user must type to
// trigger the suggestion. 0 means the min length should be taken from Nimbus // trigger the suggestion. 0 means the min length should be taken from Nimbus
// or remote settings. // or remote settings.
@@ -482,6 +485,7 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([ @@ -486,6 +489,7 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([
["shortcuts.tabs", true], ["shortcuts.tabs", true],
["shortcuts.history", true], ["shortcuts.history", true],
["shortcuts.actions", true], ["shortcuts.actions", true],
@@ -20,12 +20,12 @@ index 89f0d44d462de3d7d0f581d6371606f475443822..0d45ce5f6455e9c7276c54f504906bad
// Boolean to determine if the providers defined in `exposureResults` // Boolean to determine if the providers defined in `exposureResults`
// should be displayed in search results. This can be set by a // should be displayed in search results. This can be set by a
@@ -840,6 +844,8 @@ function makeDefaultResultGroups({ @@ -854,6 +858,8 @@ function makeDefaultResultGroups({
*/ */
let rootGroup = { let rootGroup = {
children: [ children: [
+ { children: [{ group: lazy.UrlbarUtils.RESULT_GROUP.ZEN_ACTION }] }, + { children: [{ group: lazy.UrlbarShared.RESULT_GROUP.ZEN_ACTION }] },
+ { children: [{ group: lazy.UrlbarUtils.RESULT_GROUP.ZEN_WORKSPACE }] }, + { children: [{ group: lazy.UrlbarShared.RESULT_GROUP.ZEN_WORKSPACE }] },
// heuristic // heuristic
{ {
maxResultCount: 1, maxResultCount: 1,

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs b/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs diff --git a/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs b/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs
index f611d8e44af518aa1adc7505c5021235f55b49de..0eca20cb869626dfa6ace02acc00cad84462d54f 100644 index cfc232f038cd491db32e0c0ca35622360dd9dec5..4806a725ddefa9d0709020d537eae5464249a294 100644
--- a/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs --- a/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs
+++ b/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs +++ b/browser/components/urlbar/UrlbarProviderHeuristicFallback.sys.mjs
@@ -78,22 +78,26 @@ export class UrlbarProviderHeuristicFallback extends UrlbarProvider { @@ -77,22 +77,26 @@ export class UrlbarProviderHeuristicFallback extends UrlbarProvider {
// Since we can't tell if this is a real URL and whether the user wants // Since we can't tell if this is a real URL and whether the user wants
// to visit or search for it, we provide an alternative searchengine // to visit or search for it, we provide an alternative searchengine
// match if the string looks like an alphanumeric origin or an e-mail. // match if the string looks like an alphanumeric origin or an e-mail.
@@ -17,7 +17,7 @@ index f611d8e44af518aa1adc7505c5021235f55b49de..0eca20cb869626dfa6ace02acc00cad8
- lazy.UrlUtils.REGEXP_COMMON_EMAIL.test(str)) - lazy.UrlUtils.REGEXP_COMMON_EMAIL.test(str))
- ) { - ) {
+ let trimmedSearchString = queryContext.trimmedSearchString; + let trimmedSearchString = queryContext.trimmedSearchString;
+ let [searchCandidate] = UrlbarUtils.stripPrefixAndTrim( + let [searchCandidate] = lazy.UrlbarShared.stripPrefixAndTrim(
+ trimmedSearchString, + trimmedSearchString,
+ { + {
+ trimSlash: true, + trimSlash: true,

View File

@@ -1,41 +1,16 @@
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
index 78c76bde00b6b581184cee1cd0e1756e5f2da6a4..94c713470b1240729ef2350d090b0449f3801af4 100644 index 178cd5e84fda74a28b2de59b671b3399cc28fac4..b03c6e06de4ee9a95dcb4d33d7ac9f0b053be4e1 100644
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs --- a/browser/components/urlbar/UrlbarUtils.sys.mjs
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs +++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
@@ -126,6 +126,8 @@ export var UrlbarUtils = { @@ -214,6 +214,11 @@ export var UrlbarUtils = {
SEMANTIC_HISTORY: "semanticHistory", return UrlbarShared.RESULT_GROUP.HEURISTIC_FALLBACK;
SUGGESTED_INDEX: "suggestedIndex",
TAIL_SUGGESTION: "tailSuggestion",
+ ZEN_ACTION: "zenAction",
+ ZEN_WORKSPACE: "zenWorkspace",
}),
// Defines provider types.
@@ -274,6 +276,14 @@ export var UrlbarUtils = {
telemetryLabel: "actions",
uiLabel: "urlbar-searchmode-actions3",
},
+ {
+ source: UrlbarShared.RESULT_SOURCE.WORKSPACES,
+ restrict: UrlbarShared.RESTRICT_TOKENS.WORKSPACE,
+ icon: "chrome://browser/skin/zen-icons/selectable/layers.svg",
+ pref: "shortcuts.workspaces",
+ telemetryLabel: "workspaces",
+ uiLabel: "urlbar-search-mode-workspaces",
+ },
]);
},
@@ -566,6 +576,12 @@ export var UrlbarUtils = {
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
case "UrlbarProviderHistoryUrlHeuristic": case "UrlbarProviderHistoryUrlHeuristic":
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL; return UrlbarShared.RESULT_GROUP.HEURISTIC_HISTORY_URL;
+ case "ZenUrlbarProviderGlobalActions": + case "ZenUrlbarProviderGlobalActions":
+ if (result.source == UrlbarShared.RESULT_SOURCE.WORKSPACES) { + if (result.source == UrlbarShared.RESULT_SOURCE.WORKSPACES) {
+ return this.RESULT_GROUP.ZEN_WORKSPACE; + return UrlbarShared.RESULT_GROUP.ZEN_WORKSPACE;
+ } else {
+ return this.RESULT_GROUP.ZEN_ACTION;
+ } + }
+ return UrlbarShared.RESULT_GROUP.ZEN_ACTION;
case "UrlbarProviderOmnibox": case "UrlbarProviderOmnibox":
return this.RESULT_GROUP.HEURISTIC_OMNIBOX; return UrlbarShared.RESULT_GROUP.HEURISTIC_OMNIBOX;
case "UrlbarProviderRestrictKeywordsAutofill": case "UrlbarProviderRestrictKeywordsAutofill":

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/content/UrlbarChildController.mjs b/browser/components/urlbar/content/UrlbarChildController.mjs diff --git a/browser/components/urlbar/content/UrlbarChildController.mjs b/browser/components/urlbar/content/UrlbarChildController.mjs
index a8e9d3093d046612650a17970330a8279f55833f..063a3e8adf009d6c0ddc60430bc0e7485e812b8a 100644 index a17a4de079b69d2818388b33a2c1746cc6148c73..4fee63a22919972af08716db2d2de1c7549ff100 100644
--- a/browser/components/urlbar/content/UrlbarChildController.mjs --- a/browser/components/urlbar/content/UrlbarChildController.mjs
+++ b/browser/components/urlbar/content/UrlbarChildController.mjs +++ b/browser/components/urlbar/content/UrlbarChildController.mjs
@@ -258,7 +258,6 @@ export class UrlbarChildController { @@ -438,7 +438,6 @@ export class UrlbarChildController {
const isMac = AppConstants.platform == "macosx"; const isMac = AppConstants.platform == "macosx";
// Handle readline/emacs-style navigation bindings on Mac. // Handle readline/emacs-style navigation bindings on Mac.
if ( if (
@@ -10,7 +10,7 @@ index a8e9d3093d046612650a17970330a8279f55833f..063a3e8adf009d6c0ddc60430bc0e748
this.view.isOpen && this.view.isOpen &&
event.ctrlKey && event.ctrlKey &&
(event.key == "n" || event.key == "p") (event.key == "n" || event.key == "p")
@@ -450,6 +449,8 @@ export class UrlbarChildController { @@ -630,6 +629,8 @@ export class UrlbarChildController {
}); });
} }
event.preventDefault(); event.preventDefault();
@@ -19,3 +19,25 @@ index a8e9d3093d046612650a17970330a8279f55833f..063a3e8adf009d6c0ddc60430bc0e748
} }
break; break;
} }
@@ -934,6 +935,10 @@ export class UrlbarChildController {
}
reuseEmpty = true;
}
+ if (this.#input.hasAttribute?.("zen-newtab")) {
+ where = "tab";
+ reuseEmpty = true;
+ }
// The browser window exists only in chrome; a content-process input has no
// tab to reuse, so `gBrowser` is absent and the reuse is skipped.
if (
@@ -943,6 +948,10 @@ export class UrlbarChildController {
) {
where = "current";
}
+ if (this.window.gBrowser?.selectedTab.hasAttribute("zen-empty-tab")) {
+ // Always open in a new tab if the current tab is our empty tab.
+ return "tab";
+ }
return where;
}

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs
index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c396406a247e9 100644 index 319fb6870ec18d87b9f1263bd960edaa39b0447c..554cc90fb2307450ddc68033968cefd1a95e28b8 100644
--- a/browser/components/urlbar/content/UrlbarInput.mjs --- a/browser/components/urlbar/content/UrlbarInput.mjs
+++ b/browser/components/urlbar/content/UrlbarInput.mjs +++ b/browser/components/urlbar/content/UrlbarInput.mjs
@@ -101,6 +101,13 @@ const lazy = XPCOMUtils.declareLazy({ @@ -88,6 +88,13 @@ const lazy = XPCOMUtils.declareLazy({
logger: () => UrlbarShared.getLogger({ prefix: "Input" }), logger: () => UrlbarShared.getLogger({ prefix: "Input" }),
}); });
@@ -16,7 +16,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
const UNLIMITED_MAX_RESULTS = 99; const UNLIMITED_MAX_RESULTS = 99;
let getBoundsWithoutFlushing = element => let getBoundsWithoutFlushing = element =>
@@ -769,7 +776,16 @@ ${ @@ -771,7 +778,16 @@ ${
// See _on_select(). HTMLInputElement.select() dispatches a "select" // See _on_select(). HTMLInputElement.select() dispatches a "select"
// event but does not set the primary selection. // event but does not set the primary selection.
this._suppressPrimaryAdjustment = true; this._suppressPrimaryAdjustment = true;
@@ -33,7 +33,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
this._suppressPrimaryAdjustment = false; this._suppressPrimaryAdjustment = false;
} }
@@ -843,6 +859,10 @@ ${ @@ -846,6 +862,10 @@ ${
hideSearchTerms = false, hideSearchTerms = false,
isSameDocument = false, isSameDocument = false,
} = {}) { } = {}) {
@@ -44,7 +44,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
if (!this.#isAddressbar) { if (!this.#isAddressbar) {
throw new Error( throw new Error(
"Cannot set URI for UrlbarInput that is not an address bar" "Cannot set URI for UrlbarInput that is not an address bar"
@@ -1137,7 +1157,16 @@ ${ @@ -1143,7 +1163,16 @@ ${
this.searchModeSwitcher?.updateSearchIcon(); this.searchModeSwitcher?.updateSearchIcon();
} }
@@ -61,7 +61,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
} }
/** /**
@@ -1626,7 +1655,11 @@ ${ @@ -1726,7 +1755,11 @@ ${
openParams.avoidBrowserFocus = keepViewOpen; openParams.avoidBrowserFocus = keepViewOpen;
if (!this.#providesSearchMode(result) && !keepViewOpen) { if (!this.#providesSearchMode(result) && !keepViewOpen) {
@@ -74,7 +74,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
} }
if (isCanonized) { if (isCanonized) {
@@ -2974,6 +3007,42 @@ ${ @@ -3016,6 +3049,42 @@ ${
await this.#updateLayoutBreakoutDimensions(); await this.#updateLayoutBreakoutDimensions();
} }
@@ -117,7 +117,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
startLayoutExtend() { startLayoutExtend() {
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) { if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
// Do not expand if the Urlbar does not support being expanded or it is // Do not expand if the Urlbar does not support being expanded or it is
@@ -2988,6 +3057,13 @@ ${ @@ -3030,6 +3099,13 @@ ${
this.toggleAttribute("breakout-extend", true); this.toggleAttribute("breakout-extend", true);
this.#updateTextboxPosition(); this.#updateTextboxPosition();
@@ -131,7 +131,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
// Enable the animation only after the first extend call to ensure it // Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window. // doesn't run when opening a new window.
if (!this.hasAttribute("breakout-extend-animate")) { if (!this.hasAttribute("breakout-extend-animate")) {
@@ -3011,6 +3087,29 @@ ${ @@ -3053,6 +3129,29 @@ ${
return; return;
} }
@@ -161,7 +161,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
this.toggleAttribute("breakout-extend", false); this.toggleAttribute("breakout-extend", false);
this.#updateTextboxPosition(); this.#updateTextboxPosition();
} }
@@ -3049,7 +3148,7 @@ ${ @@ -3091,7 +3190,7 @@ ${
forceUnifiedSearchButtonAvailable = false forceUnifiedSearchButtonAvailable = false
) { ) {
let prevState = this.getAttribute("pageproxystate"); let prevState = this.getAttribute("pageproxystate");
@@ -170,7 +170,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
this.setAttribute("pageproxystate", state); this.setAttribute("pageproxystate", state);
this._inputContainer.setAttribute("pageproxystate", state); this._inputContainer.setAttribute("pageproxystate", state);
this._identityBox?.setAttribute("pageproxystate", state); this._identityBox?.setAttribute("pageproxystate", state);
@@ -3332,10 +3431,12 @@ ${ @@ -3355,10 +3454,12 @@ ${
} }
this.style.top = px( this.style.top = px(
@@ -183,7 +183,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
); );
} }
@@ -3394,9 +3495,10 @@ ${ @@ -3417,9 +3518,10 @@ ${
return; return;
} }
@@ -193,9 +193,9 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
- px(getBoundsWithoutFlushing(this.parentNode).height) - px(getBoundsWithoutFlushing(this.parentNode).height)
+ px(getBoundsWithoutFlushing(this.parentNode).height + 8) + px(getBoundsWithoutFlushing(this.parentNode).height + 8)
); );
this.style.setProperty(
"--urlbar-height", if (this.#breakoutBlockerCount) {
@@ -3902,6 +4004,7 @@ ${ @@ -3929,6 +4031,7 @@ ${
} }
_toggleActionOverride(event) { _toggleActionOverride(event) {
@@ -203,47 +203,33 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
if ( if (
event.keyCode == KeyEvent.DOM_VK_SHIFT || event.keyCode == KeyEvent.DOM_VK_SHIFT ||
event.keyCode == KeyEvent.DOM_VK_ALT || event.keyCode == KeyEvent.DOM_VK_ALT ||
@@ -4014,8 +4117,8 @@ ${ @@ -4027,9 +4130,10 @@ ${
if (!this.#isAddressbar) { if (!this.#isAddressbar) {
return val; return val;
} }
- let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") - let trimmedValue = UrlbarPrefs.get("trimURLs")
- ? lazy.BrowserUIUtils.trimURL(val) - ? lazy.BrowserUIUtils.trimURL(val)
+ let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") && this._zenTrimURL - : val;
+ ? this._zenTrimURL(val) + let trimmedValue =
: val; + UrlbarPrefs.get("trimURLs") && this._zenTrimURL
+ ? this._zenTrimURL(val)
+ : val;
// Only trim value if the directionality doesn't change to RTL and we're not // Only trim value if the directionality doesn't change to RTL and we're not
// showing a strikeout https protocol. // showing a strikeout https protocol.
@@ -4317,6 +4420,7 @@ ${ return this.controller.isTextDirectionRTL(trimmedValue) ||
browser = this.window.gBrowser.selectedBrowser, @@ -4235,6 +4339,11 @@ ${
keepViewOpen = false keepViewOpen = false,
) { browserId = null,
+ openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere); }) {
if (this.#isAddressbar) { + where = this.window.gZenUIManager.getOpenUILinkWhere(
this.#prepareAddressbarLoad( + url,
url, + this.window.gBrowser.selectedBrowser,
@@ -4430,6 +4534,10 @@ ${ + where
} + );
reuseEmpty = true; let userTypedValue;
} if (this.#isAddressbar && where == "current") {
+ if (this.hasAttribute("zen-newtab")) { // Make sure URL is formatted properly (don't show punycode).
+ where = "tab"; @@ -4576,6 +4685,7 @@ ${
+ reuseEmpty = true;
+ }
if (
where == "tab" &&
reuseEmpty &&
@@ -4437,6 +4545,9 @@ ${
) {
where = "current";
}
+ if (this.window.gBrowser.selectedTab.hasAttribute("zen-empty-tab")) {
+ return "tab"; // Always open in a new tab if the current tab is "our empty tab".
+ }
return where;
}
@@ -4691,6 +4802,7 @@ ${
this.setResultForCurrentValue(null); this.setResultForCurrentValue(null);
this.handleCommand(); this.handleCommand();
this.controller.clearLastQueryContextCache(); this.controller.clearLastQueryContextCache();
@@ -251,7 +237,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
this._suppressStartQuery = false; this._suppressStartQuery = false;
}); });
@@ -4698,7 +4810,6 @@ ${ @@ -4583,7 +4693,6 @@ ${
contextMenu.addEventListener("popupshowing", () => { contextMenu.addEventListener("popupshowing", () => {
// Close the results pane when the input field contextual menu is open, // Close the results pane when the input field contextual menu is open,
// because paste and go doesn't want a result selection. // because paste and go doesn't want a result selection.
@@ -259,7 +245,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
let controller = let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste"); this.document.commandDispatcher.getControllerForCommand("cmd_paste");
@@ -4979,7 +5090,11 @@ ${ @@ -4850,7 +4959,11 @@ ${
if (!engineName && !source && !this.hasAttribute("searchmode")) { if (!engineName && !source && !this.hasAttribute("searchmode")) {
return; return;
} }
@@ -272,7 +258,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
if (this._searchModeIndicatorTitle) { if (this._searchModeIndicatorTitle) {
this._searchModeIndicatorTitle.textContent = ""; this._searchModeIndicatorTitle.textContent = "";
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id"); this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
@@ -5297,6 +5412,7 @@ ${ @@ -5149,6 +5262,7 @@ ${
this.document.l10n.setAttributes( this.document.l10n.setAttributes(
this.inputField, this.inputField,
@@ -280,20 +266,20 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
l10nId, l10nId,
l10nId == "urlbar-placeholder-with-name" l10nId == "urlbar-placeholder-with-name"
? { name: engineName } ? { name: engineName }
@@ -5347,6 +5463,12 @@ ${ @@ -5199,6 +5313,12 @@ ${
} }
lazy.logger.debug("Blur Event"); lazy.logger.debug("Blur Event");
+ if ( + if (
+ this.document.commandDispatcher.focusedElement == this.inputField && + this.document.commandDispatcher.focusedElement == this.inputField &&
+ !lazy.UrlbarPrefs.get("closeOnWindowBlur") + !UrlbarPrefs.get("closeOnWindowBlur")
+ ) { + ) {
+ return; + return;
+ } + }
// We cannot count every blur events after a missed engagement as abandoment // We cannot count every blur events after a missed engagement as abandoment
// because the user may have clicked on some view element that executes // because the user may have clicked on some view element that executes
// a command causing a focus change. For example opening preferences from // a command causing a focus change. For example opening preferences from
@@ -5424,6 +5546,11 @@ ${ @@ -5276,6 +5396,11 @@ ${
} }
_on_click(event) { _on_click(event) {
@@ -305,7 +291,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
switch (event.target) { switch (event.target) {
case this.inputField: case this.inputField:
case this._inputContainer: case this._inputContainer:
@@ -5513,10 +5640,11 @@ ${ @@ -5371,10 +5496,11 @@ ${
} }
if (untrim) { if (untrim) {
this.setValue(this._untrimmedValue); this.setValue(this._untrimmedValue);
@@ -318,7 +304,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
this.view.autoOpen({ event }); this.view.autoOpen({ event });
} else { } else {
if (this._untrimOnFocusAfterKeydown) { if (this._untrimOnFocusAfterKeydown) {
@@ -5556,9 +5684,16 @@ ${ @@ -5414,9 +5540,16 @@ ${
} }
_on_mousedown(event) { _on_mousedown(event) {
@@ -336,7 +322,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
if ( if (
event.composedTarget != this.inputField && event.composedTarget != this.inputField &&
event.composedTarget != this._inputContainer event.composedTarget != this._inputContainer
@@ -5568,6 +5703,10 @@ ${ @@ -5426,6 +5559,10 @@ ${
this.focusedViaMousedown = !this.focused; this.focusedViaMousedown = !this.focused;
this.#preventClickSelectsAll = this.focused; this.#preventClickSelectsAll = this.focused;
@@ -347,7 +333,7 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
// Keep the focus status, since the attribute may be changed // Keep the focus status, since the attribute may be changed
// upon calling this.focus(). // upon calling this.focus().
@@ -5605,7 +5744,7 @@ ${ @@ -5463,7 +5600,7 @@ ${
// view open on tab switch, and the TabSelect event arrived earlier. // view open on tab switch, and the TabSelect event arrived earlier.
// Also ignore mousedown on the urlbarView context menu: opening/closing the // Also ignore mousedown on the urlbarView context menu: opening/closing the
// view is already handled by the result opening flow. // view is already handled by the result opening flow.
@@ -356,12 +342,12 @@ index e7e9495e56076cd112beafb8297dece4ae4cea58..95e4333866a5f0d41fbdbe23910c3964
break; break;
} }
@@ -5894,7 +6033,7 @@ ${ @@ -5754,7 +5891,7 @@ ${
// When we are in actions search mode we can show more results so // When we are in actions search mode we can show more results so
// increase the limit. // increase the limit.
let maxResults = let maxResults =
- this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ACTIONS - this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ACTIONS
+ this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS + this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS
? lazy.UrlbarPrefs.get("maxRichResults") ? UrlbarPrefs.get("maxRichResults")
: UNLIMITED_MAX_RESULTS; : UNLIMITED_MAX_RESULTS;
let options = { let options = {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/content/UrlbarShared.mjs b/browser/components/urlbar/content/UrlbarShared.mjs diff --git a/browser/components/urlbar/content/UrlbarShared.mjs b/browser/components/urlbar/content/UrlbarShared.mjs
index 5b45afb747bfcdbd06782186737669aa2c4c634d..f68bd009f70415b5fb513abdfe19b4427ceefbfc 100644 index 4e67dad66ae006842abc6eed547e4a244320d57a..393b61b4d2543c73e60afd334a353f36119ae73e 100644
--- a/browser/components/urlbar/content/UrlbarShared.mjs --- a/browser/components/urlbar/content/UrlbarShared.mjs
+++ b/browser/components/urlbar/content/UrlbarShared.mjs +++ b/browser/components/urlbar/content/UrlbarShared.mjs
@@ -47,6 +47,7 @@ export const UrlbarShared = { @@ -100,6 +100,7 @@ export const UrlbarShared = {
// `looksLikeOrigin()` returned `LOOKS_LIKE_ORIGIN.OTHER` for this token. // `looksLikeOrigin()` returned `LOOKS_LIKE_ORIGIN.OTHER` for this token.
// It may or may not be an origin. // It may or may not be an origin.
POSSIBLE_ORIGIN_BUT_SEARCH_ALLOWED: 12, POSSIBLE_ORIGIN_BUT_SEARCH_ALLOWED: 12,
@@ -10,7 +10,7 @@ index 5b45afb747bfcdbd06782186737669aa2c4c634d..f68bd009f70415b5fb513abdfe19b442
}), }),
/** /**
@@ -67,6 +68,7 @@ export const UrlbarShared = { @@ -120,6 +121,7 @@ export const UrlbarShared = {
TITLE: "#", TITLE: "#",
URL: "$", URL: "$",
ACTION: ">", ACTION: ">",
@@ -18,7 +18,7 @@ index 5b45afb747bfcdbd06782186737669aa2c4c634d..f68bd009f70415b5fb513abdfe19b442
}), }),
// Defines UrlbarResult types. // Defines UrlbarResult types.
@@ -112,6 +114,8 @@ export const UrlbarShared = { @@ -165,6 +167,8 @@ export const UrlbarShared = {
OTHER_NETWORK: 6, OTHER_NETWORK: 6,
ADDON: 7, ADDON: 7,
ACTIONS: 8, ACTIONS: 8,
@@ -26,9 +26,33 @@ index 5b45afb747bfcdbd06782186737669aa2c4c634d..f68bd009f70415b5fb513abdfe19b442
+ WORKSPACES: 10, + WORKSPACES: 10,
}), }),
/** // Results are categorized into groups to help the muxer compose them. See
@@ -128,6 +132,7 @@ export const UrlbarShared = { @@ -200,6 +204,8 @@ export const UrlbarShared = {
if (lazy.UrlbarPrefs.get("scotchBonnet.enableOverride")) { SEMANTIC_HISTORY: "semanticHistory",
SUGGESTED_INDEX: "suggestedIndex",
TAIL_SUGGESTION: "tailSuggestion",
+ ZEN_ACTION: "zenAction",
+ ZEN_WORKSPACE: "zenWorkspace",
}),
// Defines provider types.
@@ -385,6 +391,14 @@ export const UrlbarShared = {
telemetryLabel: "actions",
uiLabel: "urlbar-searchmode-actions3",
},
+ {
+ source: this.RESULT_SOURCE.WORKSPACES,
+ restrict: this.RESTRICT_TOKENS.WORKSPACE,
+ icon: "chrome://browser/skin/zen-icons/selectable/layers.svg",
+ pref: "shortcuts.workspaces",
+ telemetryLabel: "workspaces",
+ uiLabel: "urlbar-search-mode-workspaces",
+ },
]);
},
@@ -402,6 +416,7 @@ export const UrlbarShared = {
if (UrlbarPrefs.get("scotchBonnet.enableOverride")) {
keys.push(this.RESTRICT_TOKENS.ACTION); keys.push(this.RESTRICT_TOKENS.ACTION);
} }
+ keys.push(this.RESTRICT_TOKENS.WORKSPACE); + keys.push(this.RESTRICT_TOKENS.WORKSPACE);

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/content/UrlbarView.mjs b/browser/components/urlbar/content/UrlbarView.mjs diff --git a/browser/components/urlbar/content/UrlbarView.mjs b/browser/components/urlbar/content/UrlbarView.mjs
index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf545507a7 100644 index 9a2c787cfa4d70bd587d49e017075f905c90f626..1c3b341e5d520ec9541c4021aaedce98751b6993 100644
--- a/browser/components/urlbar/content/UrlbarView.mjs --- a/browser/components/urlbar/content/UrlbarView.mjs
+++ b/browser/components/urlbar/content/UrlbarView.mjs +++ b/browser/components/urlbar/content/UrlbarView.mjs
@@ -803,7 +803,7 @@ export class UrlbarView { @@ -822,7 +822,7 @@ export class UrlbarView {
!this.input.value || !this.input.value ||
this.input.getAttribute("pageproxystate") == "valid" this.input.getAttribute("pageproxystate") == "valid"
) { ) {
@@ -11,7 +11,7 @@ index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf
// Try to reuse the cached top-sites context. If it's not cached, then // Try to reuse the cached top-sites context. If it's not cached, then
// there will be a gap of time between when the input is focused and // there will be a gap of time between when the input is focused and
// when the view opens that can be perceived as flicker. // when the view opens that can be perceived as flicker.
@@ -941,10 +941,6 @@ export class UrlbarView { @@ -963,10 +963,6 @@ export class UrlbarView {
} }
// If search mode isn't active, close the view. // If search mode isn't active, close the view.
@@ -22,7 +22,7 @@ index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf
// Search mode is active. If the one-offs should be shown, make sure they // Search mode is active. If the one-offs should be shown, make sure they
// are enabled and show the view. // are enabled and show the view.
@@ -3203,6 +3199,8 @@ export class UrlbarView { @@ -3306,6 +3302,8 @@ export class UrlbarView {
if (row?.hasAttribute("row-selectable")) { if (row?.hasAttribute("row-selectable")) {
row?.toggleAttribute("selected", true); row?.toggleAttribute("selected", true);
} }
@@ -31,7 +31,7 @@ index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf
if (element != row) { if (element != row) {
row?.toggleAttribute("descendant-selected", true); row?.toggleAttribute("descendant-selected", true);
} }
@@ -3715,7 +3713,7 @@ export class UrlbarView { @@ -3972,7 +3970,7 @@ export class UrlbarView {
} }
#enableOrDisableRowWrap() { #enableOrDisableRowWrap() {
@@ -40,13 +40,13 @@ index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf
this.#rows.toggleAttribute("wrap", wrap); this.#rows.toggleAttribute("wrap", wrap);
this.oneOffSearchButtons?.container.toggleAttribute("wrap", wrap); this.oneOffSearchButtons?.container.toggleAttribute("wrap", wrap);
} }
@@ -4144,6 +4142,12 @@ export class UrlbarView { @@ -4387,6 +4385,12 @@ export class UrlbarView {
} }
on_blur() { on_blur() {
+ if ( + if (
+ this.document.commandDispatcher.focusedElement == this.input.inputField && + this.document.commandDispatcher.focusedElement == this.input.inputField &&
+ !lazy.UrlbarPrefs.get("closeOnWindowBlur") + !UrlbarPrefs.get("closeOnWindowBlur")
+ ) { + ) {
+ return; + return;
+ } + }

View File

@@ -1,11 +1,11 @@
diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css
index e735ec80b56e1a2da4bc5bec29136ce60353277b..330ea62d220d9acd96a95a605888839388e97452 100644 index f276db1d456703493ee713370691352985021708..619ee6724eec1e6a25adcb257af0d02eb7a29d34 100644
--- a/browser/themes/linux/browser.css --- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css
@@ -14,7 +14,6 @@ @@ -14,7 +14,6 @@
@media (-moz-gtk-theme-family) { @media (-moz-gtk-theme-family) {
--tabs-navbar-separator-style: none; --tabs-navbar-separator-style: none;
@media (prefers-color-scheme: light) and (not -moz-pref("browser.nova.enabled")) { @media (prefers-color-scheme: light) {
- --urlbar-box-background-color: #fafafa; - --urlbar-box-background-color: #fafafa;
} }
} }

View File

@@ -1,16 +1,16 @@
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
index 3acdec2b8e043fe27919cfa54e73f4d3c491bfc8..267a1087134464a8193a824a2d7f8ac15ff8ad60 100644 index 2374ed38bd9361d6c7e1886117099c6761e403b8..72f1f52a13096f19ca4009037ad0cdc880775ff7 100644
--- a/browser/themes/shared/tabbrowser/content-area.css --- a/browser/themes/shared/tabbrowser/content-area.css
+++ b/browser/themes/shared/tabbrowser/content-area.css +++ b/browser/themes/shared/tabbrowser/content-area.css
@@ -157,7 +157,6 @@ @@ -239,7 +239,6 @@
min-height: 0; min-width: 0;
/* We want to be able to show the frame color behind the clipped radiused corner */ /* We want to be able to show the frame color behind the clipped radiused corner */
- background: var(--tabpanel-background-color); - background: var(--tabpanel-background-color);
@media -moz-pref("sidebar.revamp") { display: grid;
outline: 0.01px solid var(--chrome-content-separator-color); /**
@@ -216,7 +215,6 @@ @@ -425,7 +424,6 @@
} }
browser:is([blank], [pendingpaint]) { browser:is([blank], [pendingpaint]) {
@@ -18,7 +18,7 @@ index 3acdec2b8e043fe27919cfa54e73f4d3c491bfc8..267a1087134464a8193a824a2d7f8ac1
} }
/* Exclude browsers with smartwindow-content attribute which inherit /* Exclude browsers with smartwindow-content attribute which inherit
@@ -553,7 +551,7 @@ split-view-footer { @@ -865,7 +863,7 @@ split-view-footer {
.dialogStack { .dialogStack {
z-index: var(--browser-stack-z-index-dialog-stack); z-index: var(--browser-stack-z-index-dialog-stack);
@@ -27,12 +27,12 @@ index 3acdec2b8e043fe27919cfa54e73f4d3c491bfc8..267a1087134464a8193a824a2d7f8ac1
inset: 0; inset: 0;
/* --browser-with-dialog set on browser[tabDialogShowing], we want to position the overlay /* --browser-with-dialog set on browser[tabDialogShowing], we want to position the overlay
only on the top of the <browser> element so it doesn't overlap the DevTools toolbox */ only on the top of the <browser> element so it doesn't overlap the DevTools toolbox */
@@ -718,7 +716,7 @@ split-view-footer { @@ -1034,7 +1032,7 @@ split-view-footer {
.dialogOverlay[topmost="true"], .dialogOverlay[topmost="true"],
#window-modal-dialog::backdrop { #window-modal-dialog::backdrop {
- background-color: var(--background-color-overlay); - background-color: var(--background-color-overlay);
+ background-color: light-dark(rgba(255, 255, 255, .3), rgba(0, 0, 0, .3)); + background-color: light-dark(rgba(255, 255, 255, .3), rgba(0, 0, 0, .3));
} border-radius: var(--chrome-block-radius);
.dialogOverlay[hideContent="true"][topmost="true"] { .browserSidebarContainer.responsive-mode & {

View File

@@ -1,17 +1,17 @@
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f253804576e 100644 index 61c0b8382c78f63ad9113af55a6236c4a29bc45b..0ab463c768d4fb3f45d22e753f408c46b61c0480 100644
--- a/browser/themes/shared/tabbrowser/tabs.css --- a/browser/themes/shared/tabbrowser/tabs.css
+++ b/browser/themes/shared/tabbrowser/tabs.css +++ b/browser/themes/shared/tabbrowser/tabs.css
@@ -45,7 +45,7 @@ @@ -46,7 +46,7 @@
--tab-group-line-thickness: 2px; --tab-group-line-thickness: 2px;
--tab-group-line-toolbar-border-distance: 1px; --tab-group-line-toolbar-border-distance: 1px;
/* Collapsed tabs should be square, so set width to match the min height */ /* Collapsed tabs should be square, so set width to match the min height */
- --tab-collapsed-background-width: var(--tab-min-height); - --tab-collapsed-background-width: var(--tab-min-height);
+ --tab-collapsed-background-width: 48px; + --tab-collapsed-background-width: 48px;
--tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin)); --tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin));
--tab-collapsed-split-pill-offset: 0px;
--tab-pinned-min-width-expanded: calc(var(--tab-pinned-expanded-background-width) + 2 * var(--tab-pinned-margin-inline-expanded)); --tab-pinned-min-width-expanded: calc(var(--tab-pinned-expanded-background-width) + 2 * var(--tab-pinned-margin-inline-expanded));
--tab-note-icon-end-margin: var(--dimension-4); @@ -308,7 +308,6 @@ tab-split-view-wrapper[dragtarget] {
@@ -295,7 +295,6 @@ tab-split-view-wrapper[dragtarget] {
} }
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] { :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
@@ -19,7 +19,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
} }
&:is([selected], [multiselected]) { &:is([selected], [multiselected]) {
@@ -309,6 +308,7 @@ tab-split-view-wrapper[dragtarget] { @@ -322,6 +321,7 @@ tab-split-view-wrapper[dragtarget] {
border-radius: inherit; border-radius: inherit;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
@@ -27,7 +27,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&::before { &::before {
position: absolute; position: absolute;
@@ -506,10 +506,6 @@ tab-split-view-wrapper[dragtarget] { @@ -519,10 +519,6 @@ tab-split-view-wrapper[dragtarget] {
@media -moz-pref("browser.tabs.fadeOutUnloadedTabs") { @media -moz-pref("browser.tabs.fadeOutUnloadedTabs") {
&[pending] { &[pending] {
@@ -38,7 +38,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -525,10 +521,6 @@ tab-split-view-wrapper[dragtarget] { @@ -538,10 +534,6 @@ tab-split-view-wrapper[dragtarget] {
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") { @media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
&[pending][discarded] { &[pending][discarded] {
@@ -49,7 +49,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -602,7 +594,7 @@ tab-split-view-wrapper[dragtarget] { @@ -615,7 +607,7 @@ tab-split-view-wrapper[dragtarget] {
} }
#tabbrowser-tabs[orient="vertical"] & { #tabbrowser-tabs[orient="vertical"] & {
@@ -58,7 +58,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
} }
&[crashed] { &[crashed] {
@@ -610,7 +602,7 @@ tab-split-view-wrapper[dragtarget] { @@ -623,7 +615,7 @@ tab-split-view-wrapper[dragtarget] {
} }
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -67,7 +67,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&[soundplaying] { &[soundplaying] {
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg"); list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
} }
@@ -664,7 +656,7 @@ tab-split-view-wrapper[dragtarget] { @@ -677,7 +669,7 @@ tab-split-view-wrapper[dragtarget] {
} }
} }
@@ -76,7 +76,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&[crashed] { &[crashed] {
display: revert; display: revert;
} }
@@ -824,7 +816,7 @@ tab-split-view-wrapper[dragtarget] { @@ -837,7 +829,7 @@ tab-split-view-wrapper[dragtarget] {
has not been added to root. There are certain scenarios when that attribute is temporarily has not been added to root. There are certain scenarios when that attribute is temporarily
removed from root such as when toggling the sidebar to expand with the toolbar button. */ removed from root such as when toggling the sidebar to expand with the toolbar button. */
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]), #tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
@@ -85,7 +85,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&:is([soundplaying], [muted], [activemedia-blocked]) { &:is([soundplaying], [muted], [activemedia-blocked]) {
display: flex; display: flex;
} }
@@ -1044,7 +1036,6 @@ tab-split-view-wrapper[dragtarget] { @@ -1151,7 +1143,6 @@ tab-split-view-wrapper[dragtarget] {
.tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected]), .tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected]),
.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected]), .tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected]),
#tabbrowser-tabs[orient="vertical"] .tabbrowser-tab > .tab-stack > .tab-content[titlechanged]:not([selected]) { #tabbrowser-tabs[orient="vertical"] .tabbrowser-tab > .tab-stack > .tab-content[titlechanged]:not([selected]) {
@@ -93,7 +93,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
background-position: center bottom 6.5px; background-position: center bottom 6.5px;
background-size: 4px 4px; background-size: 4px 4px;
background-repeat: no-repeat; background-repeat: no-repeat;
@@ -1797,7 +1788,7 @@ tab-group { @@ -1904,7 +1895,7 @@ tab-group {
} }
#tabbrowser-tabs[orient="vertical"][expanded] { #tabbrowser-tabs[orient="vertical"][expanded] {
@@ -102,7 +102,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) { &[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
margin-inline-start: var(--space-medium); margin-inline-start: var(--space-medium);
} }
@@ -2351,7 +2342,7 @@ tab-group { @@ -2504,7 +2495,7 @@ tab-group {
} }
} }
@@ -111,8 +111,8 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
#vertical-tabs-newtab-button { #vertical-tabs-newtab-button {
appearance: none; appearance: none;
min-height: var(--tab-min-height); min-height: var(--tab-min-height);
@@ -2362,7 +2353,7 @@ tab-group { @@ -2524,7 +2515,7 @@ tab-group {
margin-inline: var(--tab-inner-inline-margin); }
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text { #tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
- display: none; - display: none;
@@ -120,7 +120,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
} }
&:hover { &:hover {
@@ -2386,7 +2377,7 @@ tab-group { @@ -2548,7 +2539,7 @@ tab-group {
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where * flex container. #tabs-newtab-button is a child of the arrowscrollbox where
* we don't want a gap (between tabs), so we have to add some margin. * we don't want a gap (between tabs), so we have to add some margin.
*/ */
@@ -129,7 +129,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
margin-block: var(--tab-margin-block); margin-block: var(--tab-margin-block);
} }
@@ -2576,7 +2567,6 @@ tab-group { @@ -2740,7 +2731,6 @@ tab-group {
&:not([expanded]) { &:not([expanded]) {
.tabbrowser-tab[pinned] { .tabbrowser-tab[pinned] {
@@ -137,7 +137,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
} }
.tab-background { .tab-background {
@@ -2615,8 +2605,8 @@ tab-group { @@ -2779,8 +2769,8 @@ tab-group {
display: block; display: block;
position: absolute; position: absolute;
inset: auto; inset: auto;
@@ -148,7 +148,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
&:-moz-window-inactive { &:-moz-window-inactive {
background-image: background-image:
@@ -2714,9 +2704,6 @@ tab-group { @@ -2878,9 +2868,6 @@ tab-group {
~ #tabbrowser-tabs[orient="horizontal"]::before { ~ #tabbrowser-tabs[orient="horizontal"]::before {
display: flex; display: flex;
content: ""; content: "";
@@ -158,7 +158,7 @@ index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f25
} }
} }
@@ -2749,7 +2736,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { @@ -2913,7 +2900,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
list-style-image: url(chrome://global/skin/icons/plus.svg); list-style-image: url(chrome://global/skin/icons/plus.svg);
} }

View File

@@ -1,19 +1,19 @@
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
index 22d624d718a289dd7b84ffc2f04dd35893dfbe95..4f57f7853f3043e3ad01d893aa928b9d2e6f3c16 100644 index 149f123e26cd79e89432dfeb504ca7218ee04810..7e0e6d981d6c2aa53bc2a76d82d2078419659065 100644
--- a/browser/themes/shared/urlbar-searchbar.css --- a/browser/themes/shared/urlbar-searchbar.css
+++ b/browser/themes/shared/urlbar-searchbar.css +++ b/browser/themes/shared/urlbar-searchbar.css
@@ -19,8 +19,8 @@ @@ -19,8 +19,8 @@
@media not -moz-pref("browser.nova.enabled") { @media not -moz-pref("browser.nova.enabled") {
--urlbar-basic-component-size: calc(var(--urlbar-min-height) - 2 * (var(--urlbar-input-container-border-width) + var(--urlbar-input-container-padding))); --urlbar-basic-component-size: calc(var(--urlbar-height) - 2 * (var(--urlbar-input-container-border-width) + var(--urlbar-input-container-padding)));
- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2); - --urlbar-icon-padding: calc((var(--urlbar-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
- --urlbar-input-container-padding: round(up, 1px, env(hairline)); - --urlbar-input-container-padding: round(up, 1px, env(hairline));
+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2); + --urlbar-icon-padding: calc((var(--urlbar-height) - 2px /* border */ - 14px /* icon */) / 2);
+ --urlbar-input-container-padding: 2px; + --urlbar-input-container-padding: 2px;
} }
@media (max-width: 770px) { @media (max-width: 770px) {
--urlbar-container-min-width: 240px; --urlbar-container-min-width: 240px;
@@ -126,7 +126,7 @@ toolbar[inactive="true"] .urlbar, @@ -127,7 +127,7 @@ toolbar[inactive="true"] .urlbar,
.urlbar:not([usertyping]) > .urlbar-input-container > .urlbar-go-button, .urlbar:not([usertyping]) > .urlbar-input-container > .urlbar-go-button,
.urlbar:not(#searchbar-new, [focused]) > .urlbar-input-container > .urlbar-go-button, .urlbar:not(#searchbar-new, [focused]) > .urlbar-input-container > .urlbar-go-button,
#urlbar-revert-button-container { #urlbar-revert-button-container {
@@ -22,7 +22,7 @@ index 22d624d718a289dd7b84ffc2f04dd35893dfbe95..4f57f7853f3043e3ad01d893aa928b9d
} }
/* Document Picture-in-Picture API window */ /* Document Picture-in-Picture API window */
@@ -403,6 +403,10 @@ toolbar[inactive="true"] .urlbar, @@ -405,6 +405,10 @@ toolbar[inactive="true"] .urlbar,
.urlbar:not([focused])[textoverflow="left"][domaindir="rtl"] > .urlbar-input-container > .urlbar-input-box > & { .urlbar:not([focused])[textoverflow="left"][domaindir="rtl"] > .urlbar-input-container > .urlbar-input-box > & {
mask-image: linear-gradient(to right, transparent var(--urlbar-scheme-size), black calc(var(--urlbar-scheme-size) + 3ch)); mask-image: linear-gradient(to right, transparent var(--urlbar-scheme-size), black calc(var(--urlbar-scheme-size) + 3ch));
} }
@@ -33,16 +33,18 @@ index 22d624d718a289dd7b84ffc2f04dd35893dfbe95..4f57f7853f3043e3ad01d893aa928b9d
} }
#urlbar-scheme { #urlbar-scheme {
@@ -492,10 +496,14 @@ toolbar[inactive="true"] .urlbar, @@ -476,10 +480,15 @@ toolbar[inactive="true"] .urlbar,
}
.urlbar[breakout][breakout-extend] { .urlbar[breakout][breakout-extend] {
height: auto; - margin-left: calc(-1 * var(--urlbar-margin-inline));
+ align-items: center; + align-items: center;
+ :root:not([zen-single-toolbar='true']) & {
margin-left: calc(-1 * var(--urlbar-margin-inline));
+ }
width: calc(var(--urlbar-width) + 2 * var(--urlbar-margin-inline)); width: calc(var(--urlbar-width) + 2 * var(--urlbar-margin-inline));
+ :root:not([zen-single-toolbar="true"]) & {
+ margin-left: calc(-1 * var(--urlbar-margin-inline));
+ }
+
> .urlbar-input-container { > .urlbar-input-container {
+ align-items: center; + align-items: center;
height: var(--urlbar-container-height); height: var(--urlbar-container-height);

View File

@@ -31,12 +31,13 @@ diff --git a/gfx/webrender_bindings/src/bindings.rs b/gfx/webrender_bindings/src
// Ensure the WR profiler callbacks are hooked up to the Gecko profiler. // Ensure the WR profiler callbacks are hooked up to the Gecko profiler.
set_profiler_hooks(Some(&PROFILER_HOOKS)); set_profiler_hooks(Some(&PROFILER_HOOKS));
@@ -2164,10 +2165,11 @@ @@ -2164,11 +2165,12 @@
texture_cache_config, texture_cache_config,
reject_software_rasterizer, reject_software_rasterizer,
low_quality_pinch_zoom, low_quality_pinch_zoom,
max_shared_surface_size, max_shared_surface_size,
enable_dithering, enable_dithering,
enable_shared_instance_buffer,
+ opaque_backdrop_fallback, + opaque_backdrop_fallback,
..Default::default() ..Default::default()
}; };
@@ -73,8 +74,9 @@ diff --git a/gfx/wr/webrender/src/renderer/init.rs b/gfx/wr/webrender/src/render
+ /// See explanation of `gfx.webrender.opaque-backdrop-fallback`. + /// See explanation of `gfx.webrender.opaque-backdrop-fallback`.
+ pub opaque_backdrop_fallback: bool, + pub opaque_backdrop_fallback: bool,
} }
@@ -277,9 +279,10 @@ @@ -277,10 +279,11 @@
enable_instancing: true, enable_instancing: true,
enable_shared_instance_buffer: false,
reject_software_rasterizer: false, reject_software_rasterizer: false,
low_quality_pinch_zoom: false, low_quality_pinch_zoom: false,
max_shared_surface_size: 2048, max_shared_surface_size: 2048,
@@ -84,12 +86,13 @@ diff --git a/gfx/wr/webrender/src/renderer/init.rs b/gfx/wr/webrender/src/render
} }
} }
@@ -802,10 +805,11 @@ @@ -802,11 +805,12 @@
allocated_native_surfaces: FastHashSet::default(), allocated_native_surfaces: FastHashSet::default(),
debug_overlay_state: DebugOverlayState::new(), debug_overlay_state: DebugOverlayState::new(),
buffer_damage_tracker: BufferDamageTracker::default(), buffer_damage_tracker: BufferDamageTracker::default(),
max_primitive_instance_count, max_primitive_instance_count,
enable_instancing: options.enable_instancing, enable_instancing: options.enable_instancing,
use_shared_instance_buffer,
+ opaque_backdrop_fallback: options.opaque_backdrop_fallback, + opaque_backdrop_fallback: options.opaque_backdrop_fallback,
consecutive_oom_frames: 0, consecutive_oom_frames: 0,
target_frame_publish_id: None, target_frame_publish_id: None,
@@ -99,11 +102,14 @@ diff --git a/gfx/wr/webrender/src/renderer/init.rs b/gfx/wr/webrender/src/render
diff --git a/gfx/wr/webrender/src/renderer/mod.rs b/gfx/wr/webrender/src/renderer/mod.rs diff --git a/gfx/wr/webrender/src/renderer/mod.rs b/gfx/wr/webrender/src/renderer/mod.rs
--- a/gfx/wr/webrender/src/renderer/mod.rs --- a/gfx/wr/webrender/src/renderer/mod.rs
+++ b/gfx/wr/webrender/src/renderer/mod.rs +++ b/gfx/wr/webrender/src/renderer/mod.rs
@@ -867,10 +867,12 @@ @@ -867,13 +867,15 @@
buffer_damage_tracker: BufferDamageTracker, buffer_damage_tracker: BufferDamageTracker,
max_primitive_instance_count: usize, max_primitive_instance_count: usize,
enable_instancing: bool, enable_instancing: bool,
/// If true, stream instance data into large buffers shared by multiple
/// draws, rather than allocating a new instance buffer for each draw.
use_shared_instance_buffer: bool,
+ opaque_backdrop_fallback: bool, + opaque_backdrop_fallback: bool,
+ +

View File

@@ -137,7 +137,7 @@ diff --git a/docshell/shistory/SessionHistoryEntry.cpp b/docshell/shistory/Sessi
: mURI(aLoadState->URI()), : mURI(aLoadState->URI()),
mOriginalURI(aLoadState->OriginalURI()), mOriginalURI(aLoadState->OriginalURI()),
mResultPrincipalURI(aLoadState->ResultPrincipalURI()), mResultPrincipalURI(aLoadState->ResultPrincipalURI()),
@@ -59,9 +67,10 @@ @@ -59,11 +67,12 @@
mLoadReplace(aLoadState->LoadReplace()), mLoadReplace(aLoadState->LoadReplace()),
mHasUserActivation(aLoadState->HasValidUserGestureActivation()), mHasUserActivation(aLoadState->HasValidUserGestureActivation()),
mSharedState(SharedState::Create( mSharedState(SharedState::Create(
@@ -148,6 +148,8 @@ diff --git a/docshell/shistory/SessionHistoryEntry.cpp b/docshell/shistory/Sessi
+ aLoadState->PolicyContainer()), + aLoadState->PolicyContainer()),
/* FIXME Is this correct? */ /* FIXME Is this correct? */
aLoadState->TypeHint())) { aLoadState->TypeHint())) {
MOZ_DIAGNOSTIC_ASSERT(!mURI->SchemeIs("javascript"));
// Pull the upload stream off of the channel instead of the load state, as // Pull the upload stream off of the channel instead of the load state, as
@@ -124,11 +133,12 @@ @@ -124,11 +133,12 @@
loadInfo->GetPrincipalToInherit( loadInfo->GetPrincipalToInherit(

File diff suppressed because it is too large Load Diff

View File

@@ -44,13 +44,7 @@
{ {
"type": "phabricator", "type": "phabricator",
"id": "D320897", "id": "D320897",
"name": "Bug 2011236", "name": "Bug 2011236"
"replaces": {
// The upstream patch context includes a MOZ_DIAGNOSTIC_ASSERT that
// doesn't exist yet in our Firefox version.
"@@ -59,11 +67,12 @@": "@@ -59,9 +67,10 @@",
"aLoadState->TypeHint())) {\n MOZ_DIAGNOSTIC_ASSERT(!mURI->SchemeIs(\"javascript\"));\n \n // Pull": "aLoadState->TypeHint())) {\n // Pull"
}
}, },
{ {
"type": "phabricator", "type": "phabricator",
@@ -59,16 +53,6 @@
}, },
{ {
"type": "local", "type": "local",
// CSS corner-shape rendering stack from bug 2047627 (borders),
// bug 2048908 (box shadows) and bug 2058091 (inset), squashed into a
// single patch: surfer's revert-then-apply on re-import only works for
// independently revertible patches, so a stack of separate files fails.
// Combined revisions, in stack order: D313684, D314332-D314337,
// D316301-D316304, D317056-D317058. The earlier revisions of these
// bugs (D306773-D306779, D308243, D311523) already landed in the
// current Firefox version and are omitted. D314332, D314336, D316301,
// D316303, D316304, D317057 and D317058 are hand-rebased onto
// Firefox 154 (the upstream diffs target a newer mozilla-central).
"path": "firefox/css_corner_shape_rendering.patch" "path": "firefox/css_corner_shape_rendering.patch"
} }
] ]

View File

@@ -1,16 +1,16 @@
diff --git a/layout/style/StyleColor.cpp b/layout/style/StyleColor.cpp diff --git a/layout/style/StyleColor.cpp b/layout/style/StyleColor.cpp
index bbee32af30f35525730a10d0b242c0e8a8fe4695..a590fff105b30bc96fa7a0d8a8d3b1d5aa997e08 100644 index f922f7fdacc7e1a14beb8da77b48aef3f6ae0b2b..47d19242baaf2a1f25ee07c6e210c839cc7b5089 100644
--- a/layout/style/StyleColor.cpp --- a/layout/style/StyleColor.cpp
+++ b/layout/style/StyleColor.cpp +++ b/layout/style/StyleColor.cpp
@@ -9,6 +9,7 @@ @@ -8,6 +8,7 @@
#include "mozilla/dom/BindingDeclarations.h" #include "mozilla/StyleColorInlines.h"
#include "nsIFrame.h" #include "nsIFrame.h"
#include "nsStyleStruct.h" #include "nsStyleStruct.h"
+#include "mozilla/nsZenBoostsBackend.h" +#include "mozilla/nsZenBoostsBackend.h"
#include "nsStyleUtil.h"
namespace mozilla { namespace mozilla {
@@ -98,23 +99,24 @@ StyleAbsoluteColor StyleColor::ResolveColor(
@@ -96,23 +97,24 @@ StyleAbsoluteColor StyleColor::ResolveColor(
template <> template <>
nscolor StyleColor::CalcColor(nscolor aColor) const { nscolor StyleColor::CalcColor(nscolor aColor) const {
@@ -40,7 +40,7 @@ index bbee32af30f35525730a10d0b242c0e8a8fe4695..a590fff105b30bc96fa7a0d8a8d3b1d5
} }
StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace( StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace(
@@ -120,7 +122,7 @@ StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace( @@ -122,7 +124,7 @@ StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace(
return Servo_ConvertColorSpace(this, aColorSpace); return Servo_ConvertColorSpace(this, aColorSpace);
} }
@@ -49,7 +49,7 @@ index bbee32af30f35525730a10d0b242c0e8a8fe4695..a590fff105b30bc96fa7a0d8a8d3b1d5
constexpr StyleColorSpace DEST_COLOR_SPACE = StyleColorSpace::Srgb; constexpr StyleColorSpace DEST_COLOR_SPACE = StyleColorSpace::Srgb;
constexpr float MIN = 0.0f; constexpr float MIN = 0.0f;
@@ -162,11 +164,13 @@ nscolor StyleAbsoluteColor::ToColor() const { @@ -164,11 +166,13 @@ nscolor StyleAbsoluteColor::ToColor() const {
} }
} }

View File

@@ -1,5 +1,5 @@
diff --git a/layout/svg/SVGImageContext.h b/layout/svg/SVGImageContext.h diff --git a/layout/svg/SVGImageContext.h b/layout/svg/SVGImageContext.h
index b1f811989697966e30859610f4fc07579d0385ab..f6f4cd5a45fc49b416111d980fab4e612788903e 100644 index ad833c7c2ee6a4c4984efdb0d59e3576c2d1bc19..36864a34badc0cbfe44d6295798622fd6178f9e3 100644
--- a/layout/svg/SVGImageContext.h --- a/layout/svg/SVGImageContext.h
+++ b/layout/svg/SVGImageContext.h +++ b/layout/svg/SVGImageContext.h
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
@@ -44,7 +44,7 @@ index b1f811989697966e30859610f4fc07579d0385ab..f6f4cd5a45fc49b416111d980fab4e61
const Maybe<SVGPreserveAspectRatio>& GetPreserveAspectRatio() const { const Maybe<SVGPreserveAspectRatio>& GetPreserveAspectRatio() const {
return mPreserveAspectRatio; return mPreserveAspectRatio;
} }
@@ -116,7 +137,11 @@ class SVGImageContext { @@ -110,7 +131,11 @@ class SVGImageContext {
return contextPaintIsEqual && mViewportSize == aOther.mViewportSize && return contextPaintIsEqual && mViewportSize == aOther.mViewportSize &&
mPreserveAspectRatio == aOther.mPreserveAspectRatio && mPreserveAspectRatio == aOther.mPreserveAspectRatio &&
mColorScheme == aOther.mColorScheme && mColorScheme == aOther.mColorScheme &&
@@ -57,17 +57,17 @@ index b1f811989697966e30859610f4fc07579d0385ab..f6f4cd5a45fc49b416111d980fab4e61
} }
bool operator!=(const SVGImageContext&) const = default; bool operator!=(const SVGImageContext&) const = default;
@@ -129,7 +154,8 @@ class SVGImageContext { @@ -123,7 +148,8 @@ class SVGImageContext {
return HashGeneric(hash, mViewportSize.map(HashSize).valueOr(0), return AddToHash(hash, mViewportSize.map(HashSize).valueOr(0),
mPreserveAspectRatio.map(HashPAR).valueOr(0), mPreserveAspectRatio.map(HashPAR).valueOr(0),
mColorScheme.map(HashColorScheme).valueOr(0), mColorScheme.map(HashColorScheme).valueOr(0),
- HashLinkParameters(mLinkParameters)); - HashLinkParameters(mLinkParameters));
+ HashLinkParameters(mLinkParameters), mZenBoostsAccent, + HashLinkParameters(mLinkParameters), mZenBoostsAccent,
+ mZenBoostsComplementaryRotation, mZenBoostsInverted); + mZenBoostsComplementaryRotation, mZenBoostsInverted);
} }
private: private:
@@ -167,6 +193,9 @@ class SVGImageContext { @@ -156,6 +182,9 @@ class SVGImageContext {
Maybe<SVGPreserveAspectRatio> mPreserveAspectRatio; Maybe<SVGPreserveAspectRatio> mPreserveAspectRatio;
Maybe<ColorScheme> mColorScheme; Maybe<ColorScheme> mColorScheme;
StyleLinkParameters mLinkParameters; StyleLinkParameters mLinkParameters;

View File

@@ -1,5 +1,5 @@
diff --git a/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css b/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css diff --git a/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css b/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css
index 6247d7a3923a6fedd4ec9911aba309ce565cd498..744e670eccc936dde664aa07df3e87bdcafd5e48 100644 index c0976c54418a28046802443931042bd285aefbde..2adb18d25edbb8aac4e396fcfc64a4a664607836 100644
--- a/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css --- a/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css
+++ b/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css +++ b/toolkit/content/widgets/moz-toggle/moz-toggle.tokens.css
@@ -13,8 +13,8 @@ @@ -13,8 +13,8 @@
@@ -11,5 +11,5 @@ index 6247d7a3923a6fedd4ec9911aba309ce565cd498..744e670eccc936dde664aa07df3e87bd
+ --toggle-background-color-pressed: var(--zen-primary-color); + --toggle-background-color-pressed: var(--zen-primary-color);
+ --toggle-background-color-pressed-hover: var(--zen-colors-hover-bg); + --toggle-background-color-pressed-hover: var(--zen-colors-hover-bg);
--toggle-background-color-pressed-active: var(--color-accent-primary-active); --toggle-background-color-pressed-active: var(--color-accent-primary-active);
--toggle-border-color: var(--border-color-interactive); --toggle-border-color: light-dark(var(--color-gray-70), var(--border-color-interactive));
--toggle-border-color-hover: var(--toggle-border-color); --toggle-border-color-hover: var(--toggle-border-color);

View File

@@ -1,8 +1,8 @@
diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h
index 312011c1c2ac41e78affecbdef25d72766a7c882..e5865c7d6259f0a3df48edf7a26b1b75a23cdb3a 100644 index 22a2a7ef3a5e9257c8bb00ba6a55e8d39d2abbd9..6d8353fd11921585f7101f5717bdb3dd8f2a5eae 100644
--- a/widget/cocoa/nsCocoaWindow.h --- a/widget/cocoa/nsCocoaWindow.h
+++ b/widget/cocoa/nsCocoaWindow.h +++ b/widget/cocoa/nsCocoaWindow.h
@@ -462,6 +462,10 @@ class nsCocoaWindow final : public nsIWidget { @@ -461,6 +461,10 @@ class nsCocoaWindow final : public nsIWidget {
void SetHideTitlebarSeparator(bool) override; void SetHideTitlebarSeparator(bool) override;
bool IsMacTitlebarDirectionRTL() override; bool IsMacTitlebarDirectionRTL() override;
void SetCustomTitlebar(bool) override; void SetCustomTitlebar(bool) override;
@@ -13,9 +13,9 @@ index 312011c1c2ac41e78affecbdef25d72766a7c882..e5865c7d6259f0a3df48edf7a26b1b75
void UpdateThemeGeometries( void UpdateThemeGeometries(
const nsTArray<ThemeGeometry>& aThemeGeometries) override; const nsTArray<ThemeGeometry>& aThemeGeometries) override;
void LockAspectRatio(bool aShouldLock) override; void LockAspectRatio(bool aShouldLock) override;
@@ -672,6 +676,7 @@ class nsCocoaWindow final : public nsIWidget { @@ -674,6 +678,7 @@ class nsCocoaWindow final : public nsIWidget {
bool mAspectRatioLocked = false; // show (e.g. a window created by detaching a tab from a fullscreen window).
bool mIsAlert = false; // True if this is an non-native alert window. bool mIsInitialFullscreenSuppressed = false;
bool mWasShown = false; bool mWasShown = false;
+ bool mIsBrowserWindow = false; + bool mIsBrowserWindow = false;

View File

@@ -1,16 +1,16 @@
diff --git a/widget/gtk/nsDragService.cpp b/widget/gtk/nsDragService.cpp diff --git a/widget/gtk/nsDragSessionSource.cpp b/widget/gtk/nsDragSessionSource.cpp
index f760a6bb887b321376761431886c771f14fd03af..d52110ba52a95ef7c7bfb915e120b8dd636c9448 100644 index a5f67d700f8c80d513f08cc25405b57cf28a2a9a..58186470bcbb7b1eda34ee20a19e29d540ab052a 100644
--- a/widget/gtk/nsDragService.cpp --- a/widget/gtk/nsDragSessionSource.cpp
+++ b/widget/gtk/nsDragService.cpp +++ b/widget/gtk/nsDragSessionSource.cpp
@@ -23,6 +23,7 @@ @@ -13,6 +13,7 @@
#include "mozilla/Services.h"
#include "mozilla/StaticPrefs_widget.h" #include "mozilla/StaticPrefs_widget.h"
#include "mozilla/WidgetUtils.h"
#include "mozilla/WidgetUtilsGtk.h" #include "mozilla/WidgetUtilsGtk.h"
+#include "mozilla/nsZenDragAndDrop.h" +#include "mozilla/nsZenDragAndDrop.h"
#include "nsAppShell.h" #include "nsAppShell.h"
#include "nsArrayUtils.h" #include "nsArrayUtils.h"
#include "nsCRT.h" #include "nsCRT.h"
@@ -2304,11 +2305,15 @@ bool nsDragSession::SetAlphaPixmap(SourceSurface* aSurface, @@ -1196,11 +1197,15 @@ bool nsDragSessionSource::SetAlphaPixmap(SourceSurface* aSurface,
cairo_image_surface_get_stride(surf), SurfaceFormat::B8G8R8A8); cairo_image_surface_get_stride(surf), SurfaceFormat::B8G8R8A8);
if (!dt) return false; if (!dt) return false;

View File

@@ -1282,7 +1282,7 @@ window.gZenVerticalTabsManager = {
if (!this._hasSetSingleToolbar) { if (!this._hasSetSingleToolbar) {
height = AppConstants.platform == "macosx" ? 34 : 32; height = AppConstants.platform == "macosx" ? 34 : 32;
} else if (!gURLBar.hasAttribute("breakout-extend")) { } else if (!gURLBar.hasAttribute("breakout-extend")) {
height = 38; height = 36;
} }
if (typeof height !== "undefined") { if (typeof height !== "undefined") {
gURLBar.style.setProperty("--urlbar-height", `${height}px`); gURLBar.style.setProperty("--urlbar-height", `${height}px`);

View File

@@ -20,9 +20,9 @@
--urlbarview-separator-color: light-dark(hsl(0, 0%, 80%), hsl(0, 0%, 20%)); --urlbarview-separator-color: light-dark(hsl(0, 0%, 80%), hsl(0, 0%, 20%));
--urlbarview-background-color-hover: var(--toolbarbutton-hover-background); --urlbarview-background-color-hover: var(--toolbarbutton-hover-background);
border-radius: calc(var(--toolbarbutton-border-radius) - 2px); border-radius: calc(var(--toolbarbutton-border-radius) - 2px);
height: var(--urlbar-height);
--urlbarView-results-padding: 10px !important; --urlbarView-results-padding: 10px !important;
--urlbar-container-height: 48px !important; --urlbar-container-height: 48px !important;
--urlbar-input-container-border: none;
--urlbar-margin-inline: 5px; --urlbar-margin-inline: 5px;
--urlbar-container-padding: 4px; --urlbar-container-padding: 4px;
@@ -326,6 +326,7 @@
order: 2; order: 2;
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
#notification-popup-box:not([open]):not(:has(> [showing="true"])) { #notification-popup-box:not([open]):not(:has(> [showing="true"])) {
margin-inline-start: calc(-10px - 2 * var(--urlbar-icon-padding)); margin-inline-start: calc(-10px - 2 * var(--urlbar-icon-padding));
opacity: 0; opacity: 0;
@@ -487,6 +488,7 @@
translate: -50% 0%; translate: -50% 0%;
left: 50% !important; left: 50% !important;
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
#urlbar-container:has(&) { #urlbar-container:has(&) {
border-radius: var(--border-radius-medium); border-radius: var(--border-radius-medium);
background: var(--toolbarbutton-hover-background); background: var(--toolbarbutton-hover-background);
@@ -633,6 +635,7 @@
#urlbar-label-box, #urlbar-label-box,
#urlbar-search-mode-indicator { #urlbar-search-mode-indicator {
--urlbar-basic-component-size: 18px;
background-color: color-mix(in srgb, var(--zen-primary-color) 50%, light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.2)) 50%) !important; background-color: color-mix(in srgb, var(--zen-primary-color) 50%, light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.2)) 50%) !important;
color: white; color: white;
padding: 4px 8px; padding: 4px 8px;

View File

@@ -502,11 +502,13 @@
opacity 0.12s ease-in-out; opacity 0.12s ease-in-out;
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
.permission-popup-permission-item:hover &::before, .permission-popup-permission-item:hover &::before,
.permission-popup-boost-item:hover:not(:has(.zen-permission-popup-boost-editor-button:hover)) &::before { .permission-popup-boost-item:hover:not(:has(.zen-permission-popup-boost-editor-button:hover)) &::before {
transform: scale(1.05); transform: scale(1.05);
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
.permission-popup-permission-item:active:hover &::before, .permission-popup-permission-item:active:hover &::before,
.permission-popup-boost-item:active:hover:not(:has(.zen-permission-popup-boost-editor-button:hover)) &::before { .permission-popup-boost-item:active:hover:not(:has(.zen-permission-popup-boost-editor-button:hover)) &::before {
transform: scale(0.95); transform: scale(0.95);

View File

@@ -156,11 +156,28 @@ class nsZenWorkspaces {
this._invalidateBookmarkContainers(); this._invalidateBookmarkContainers();
}; };
Services.obs.addObserver(observerFunction, "workspace-bookmarks-updated"); Services.obs.addObserver(observerFunction, "workspace-bookmarks-updated");
const onContainerDeleted = subject => {
const userContextId = subject?.wrappedJSObject?.userContextId;
for (const workspace of this.getWorkspaces()) {
if (workspace.containerTabId === userContextId) {
workspace.containerTabId = 0;
this.saveWorkspace(workspace);
}
}
};
Services.obs.addObserver(
onContainerDeleted,
"contextual-identity-deleted"
);
window.addEventListener("unload", () => { window.addEventListener("unload", () => {
Services.obs.removeObserver( Services.obs.removeObserver(
observerFunction, observerFunction,
"workspace-bookmarks-updated" "workspace-bookmarks-updated"
); );
Services.obs.removeObserver(
onContainerDeleted,
"contextual-identity-deleted"
);
}); });
} }
} }

View File

@@ -543,6 +543,7 @@ class nsZenSpacesSyncApplier {
skipBackgroundNotify: true, skipBackgroundNotify: true,
lazyTabTitle: data.title || undefined, lazyTabTitle: data.title || undefined,
userContextId, userContextId,
skipRoute: true,
}); });
// Setting the sync id before the queued TabOpen handler runs makes // Setting the sync id before the queued TabOpen handler runs makes
// window sync treat this tab as already replicated. // window sync treat this tab as already replicated.

View File

@@ -181,10 +181,18 @@ class nsZenSpacesSyncModel {
if (!Number.isSafeInteger(id) || id <= 0) { if (!Number.isSafeInteger(id) || id <= 0) {
return null; return null;
} }
const data = this.#data();
if (!lazy.ContextualIdentityService.getPublicIdentityFromId(id)) {
// A space or tab still pointing at a container that was deleted.
if (id in data.containers) {
delete data.containers[id];
this.#file.saveSoon();
}
return null;
}
if (id <= BUILTIN_CONTAINER_MAX) { if (id <= BUILTIN_CONTAINER_MAX) {
return `${BUILTIN_GUID_PREFIX}${id}`; return `${BUILTIN_GUID_PREFIX}${id}`;
} }
const data = this.#data();
const existing = data.containers[id]; const existing = data.containers[id];
if (existing) { if (existing) {
return existing; return existing;
@@ -202,17 +210,27 @@ class nsZenSpacesSyncModel {
if (typeof guid !== "string" || !guid) { if (typeof guid !== "string" || !guid) {
return null; return null;
} }
const data = this.#data();
for (const [id, mapped] of Object.entries(data.containers)) {
if (mapped === guid) {
const contextId = Number(id);
if (lazy.ContextualIdentityService.getPublicIdentityFromId(contextId)) {
return contextId;
}
delete data.containers[id];
this.#file.saveSoon();
return null;
}
}
if (guid.startsWith(BUILTIN_GUID_PREFIX)) { if (guid.startsWith(BUILTIN_GUID_PREFIX)) {
const id = Number(guid.slice(BUILTIN_GUID_PREFIX.length)); const id = Number(guid.slice(BUILTIN_GUID_PREFIX.length));
return Number.isSafeInteger(id) && id > 0 && id <= BUILTIN_CONTAINER_MAX return Number.isSafeInteger(id) &&
id > 0 &&
id <= BUILTIN_CONTAINER_MAX &&
lazy.ContextualIdentityService.getPublicIdentityFromId(id)
? id ? id
: null; : null;
} }
for (const [id, mapped] of Object.entries(this.#data().containers)) {
if (mapped === guid) {
return Number(id);
}
}
return null; return null;
} }
@@ -223,9 +241,6 @@ class nsZenSpacesSyncModel {
* @param {number} userContextId * @param {number} userContextId
*/ */
registerContainerGuid(guid, userContextId) { registerContainerGuid(guid, userContextId) {
if (guid.startsWith(BUILTIN_GUID_PREFIX)) {
return;
}
this.#data().containers[userContextId] = guid; this.#data().containers[userContextId] = guid;
this.#file.saveSoon(); this.#file.saveSoon();
} }

View File

@@ -4,6 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
&:not([zen-compact-animating]) &:not([zen-compact-animating])
#zen-sidebar-top-buttons:not(:has(#zen-sidebar-top-buttons-customization-target > *:not(#zen-sidebar-top-buttons-separator), .titlebar-buttonbox-container)) { #zen-sidebar-top-buttons:not(:has(#zen-sidebar-top-buttons-customization-target > *:not(#zen-sidebar-top-buttons-separator), .titlebar-buttonbox-container)) {
max-height: 0 !important; max-height: 0 !important;

View File

@@ -100,9 +100,10 @@
width: -moz-available !important; width: -moz-available !important;
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
& #urlbar-container[breakout="true"]:has(#urlbar[zen-floating-urlbar="true"]) { & #urlbar-container[breakout="true"]:has(#urlbar[zen-floating-urlbar="true"]) {
--urlbar-container-height: 36px !important; --urlbar-container-height: 36px !important;
--urlbar-height: 38px !important; --urlbar-height: 36px !important;
} }
& #nav-bar { & #nav-bar {
@@ -319,6 +320,7 @@
display: none; display: none;
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
:root:not([zen-renaming-tab="true"]) :root:not([zen-renaming-tab="true"])
#tabbrowser-tabs:not([movingtab]) #tabbrowser-tabs:not([movingtab])
&:active:not(:has(.tab-content > image:active)) { &:active:not(:has(.tab-content > image:active)) {

View File

@@ -3,10 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
import { import { UrlbarProvider } from "moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs";
UrlbarProvider,
UrlbarUtils,
} from "moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs";
import { UrlbarShared } from "chrome://browser/content/urlbar/UrlbarShared.mjs"; import { UrlbarShared } from "chrome://browser/content/urlbar/UrlbarShared.mjs";
import { globalActions } from "resource:///modules/ZenUBGlobalActions.sys.mjs"; import { globalActions } from "resource:///modules/ZenUBGlobalActions.sys.mjs";
import { zenUrlbarResultsLearner } from "./ZenUBResultsLearner.sys.mjs"; import { zenUrlbarResultsLearner } from "./ZenUBResultsLearner.sys.mjs";
@@ -41,10 +38,10 @@ XPCOMUtils.defineLazyPreferenceGetter(
/** /**
* A convenience function that takes a payload annotated with * A convenience function that takes a payload annotated with
* UrlbarUtils.HIGHLIGHT enums and returns the payload and the payload's * UrlbarShared.HIGHLIGHT enums and returns the payload and the payload's
* highlights. Use this function when the highlighting required by your * highlights. Use this function when the highlighting required by your
* payload is based on simple substring matching, as done by * payload is based on simple substring matching, as done by
* UrlbarUtils.getTokenMatches(). Pass the return values as the `payload` and * UrlbarShared.getTokenMatches(). Pass the return values as the `payload` and
* `payloadHighlights` params of the UrlbarResult constructor. * `payloadHighlights` params of the UrlbarResult constructor.
* `payloadHighlights` is optional. If omitted, payload will not be * `payloadHighlights` is optional. If omitted, payload will not be
* highlighted. * highlighted.
@@ -64,7 +61,7 @@ XPCOMUtils.defineLazyPreferenceGetter(
* payloadPropertyValue may be a string or an array of strings. If * payloadPropertyValue may be a string or an array of strings. If
* it's a string, then the payloadHighlights in the return value will * it's a string, then the payloadHighlights in the return value will
* be an array of match highlights as described in * be an array of match highlights as described in
* UrlbarUtils.getTokenMatches(). If it's an array, then * UrlbarShared.getTokenMatches(). If it's an array, then
* payloadHighlights will be an array of arrays of match highlights, * payloadHighlights will be an array of arrays of match highlights,
* one element per element in payloadPropertyValue. * one element per element in payloadPropertyValue.
* @returns {{ payload: object, payloadHighlights: object }} * @returns {{ payload: object, payloadHighlights: object }}
@@ -93,14 +90,14 @@ function payloadAndSimpleHighlights(tokens, payloadInfo) {
) { ) {
// If there's no title, show the domain as the title. Not all valid URLs // If there's no title, show the domain as the title. Not all valid URLs
// have a domain. // have a domain.
highlightTypes.title = UrlbarUtils.HIGHLIGHT.TYPED; highlightTypes.title = UrlbarShared.HIGHLIGHT.TYPED;
try { try {
payload.title = new URL(payload.url).URI.displayHostPort; payload.title = new URL(payload.url).URI.displayHostPort;
} catch (e) {} } catch (e) {}
} }
if (payload.url) { if (payload.url) {
// For display purposes we need to unescape the url. // For display purposes we need to unescape the url.
payload.displayUrl = UrlbarUtils.prepareUrlForDisplay(payload.url); payload.displayUrl = UrlbarShared.prepareUrlForDisplay(payload.url);
highlightTypes.displayUrl = highlightTypes.url; highlightTypes.displayUrl = highlightTypes.url;
} }
// For performance reasons limit excessive string lengths, to reduce the // For performance reasons limit excessive string lengths, to reduce the
@@ -109,7 +106,7 @@ function payloadAndSimpleHighlights(tokens, payloadInfo) {
for (let prop of ["displayUrl", "title", "suggestion"]) { for (let prop of ["displayUrl", "title", "suggestion"]) {
let value = payload[prop]; let value = payload[prop];
if (typeof value == "string") { if (typeof value == "string") {
payload[prop] = value.substring(0, UrlbarUtils.MAX_TEXT_LENGTH); payload[prop] = value.substring(0, UrlbarShared.MAX_TEXT_LENGTH);
} }
} }
let payloadHighlights = {}; let payloadHighlights = {};
@@ -118,9 +115,9 @@ function payloadAndSimpleHighlights(tokens, payloadInfo) {
let value = payload[name]; let value = payload[name];
let highlights = Array.isArray(value) let highlights = Array.isArray(value)
? value.map(subval => ? value.map(subval =>
UrlbarUtils.getTokenMatches(tokens, subval, highlightType) UrlbarShared.getTokenMatches(tokens, subval, highlightType)
) )
: UrlbarUtils.getTokenMatches(tokens, value || "", highlightType); : UrlbarShared.getTokenMatches(tokens, value || "", highlightType);
if (highlights.length) { if (highlights.length) {
payloadHighlights[name] = highlights; payloadHighlights[name] = highlights;
} }
@@ -140,10 +137,10 @@ export class ZenUrlbarProviderGlobalActions extends UrlbarProvider {
} }
/** /**
* @returns {Values<typeof UrlbarUtils.PROVIDER_TYPE>} * @returns {Values<typeof UrlbarShared.PROVIDER_TYPE>}
*/ */
get type() { get type() {
return UrlbarUtils.PROVIDER_TYPE.HEURISTIC; return UrlbarShared.PROVIDER_TYPE.HEURISTIC;
} }
/** /**
@@ -161,7 +158,7 @@ export class ZenUrlbarProviderGlobalActions extends UrlbarProvider {
UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS || UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS ||
(lazy.enabledPref && (lazy.enabledPref &&
queryContext.searchString && queryContext.searchString &&
queryContext.searchString.length < UrlbarUtils.MAX_TEXT_LENGTH && queryContext.searchString.length < UrlbarShared.MAX_TEXT_LENGTH &&
queryContext.searchString.length > 2 && queryContext.searchString.length > 2 &&
!lazy.UrlUtils.REGEXP_LIKE_PROTOCOL.test(queryContext.searchString)) !lazy.UrlUtils.REGEXP_LIKE_PROTOCOL.test(queryContext.searchString))
); );

View File

@@ -178,6 +178,7 @@
box-shadow: var(--zen-big-shadow); box-shadow: var(--zen-big-shadow);
} }
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
&:has(:checked) { &:has(:checked) {
box-shadow: var(--zen-big-shadow); box-shadow: var(--zen-big-shadow);
border: 2px solid var(--zen-primary-color); border: 2px solid var(--zen-primary-color);
@@ -197,6 +198,7 @@
} }
/* 3 or more engines */ /* 3 or more engines */
/* stylelint-disable-next-line stylelint-plugin-mozilla/no-has-selector */
&[select-engine="true"]:has(label:nth-of-type(3)) > label { &[select-engine="true"]:has(label:nth-of-type(3)) > label {
height: 50%; height: 50%;
} }

View File

@@ -6,7 +6,7 @@
"version": { "version": {
"product": "firefox", "product": "firefox",
"version": "154.0.1", "version": "154.0.1",
"candidate": "154.0.1", "candidate": "155.0",
"candidateBuild": 1 "candidateBuild": 1
}, },
"buildOptions": { "buildOptions": {