mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-05 19:08:18 +00:00
Compare commits
382 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fb1575d875 | ||
![]() |
004b946716 | ||
![]() |
6400722712 | ||
![]() |
d9ec28459e | ||
![]() |
407c1d24af | ||
![]() |
de6d8d1153 | ||
![]() |
3eb10fc05b | ||
![]() |
1ab6f77f95 | ||
![]() |
c1b15b59db | ||
![]() |
3dae5a6d47 | ||
![]() |
dab2646054 | ||
![]() |
ad0485d651 | ||
![]() |
46bbbccdc9 | ||
![]() |
ee28417a4c | ||
![]() |
746ac1eec7 | ||
![]() |
8b67c4fdd1 | ||
![]() |
c3e658d46a | ||
![]() |
ebded1a73b | ||
![]() |
cf879a5c23 | ||
![]() |
4aa3e5b34d | ||
![]() |
303e6066e2 | ||
![]() |
861cd15240 | ||
![]() |
d695ddb91a | ||
![]() |
7abb2edb2f | ||
![]() |
dfe8abd496 | ||
![]() |
61b384ee56 | ||
![]() |
d71a890430 | ||
![]() |
2c85a85fff | ||
![]() |
ce6074530f | ||
![]() |
e20228153c | ||
![]() |
e431170435 | ||
![]() |
c671d1e389 | ||
![]() |
31a5e70b26 | ||
![]() |
0c68c72b29 | ||
![]() |
2b158fdf57 | ||
![]() |
dd005b31a4 | ||
![]() |
0b467cc149 | ||
![]() |
46e2fdca00 | ||
![]() |
983b06266b | ||
![]() |
cb8708d2d9 | ||
![]() |
adbec11c04 | ||
![]() |
404f00c02b | ||
![]() |
5d346205fc | ||
![]() |
db3f1a7c09 | ||
![]() |
d2599f1f9a | ||
![]() |
ed88aafdc1 | ||
![]() |
d94deed341 | ||
![]() |
4b49d87a81 | ||
![]() |
4a6281ebf6 | ||
![]() |
332443fe81 | ||
![]() |
96c784704a | ||
![]() |
b0d10919d7 | ||
![]() |
b0e4681b5f | ||
![]() |
2958f6ea7f | ||
![]() |
4d46f94975 | ||
![]() |
4cc7e9ca98 | ||
![]() |
7688a11ef9 | ||
![]() |
80b182cc54 | ||
![]() |
b6936e7ca4 | ||
![]() |
1590326fc1 | ||
![]() |
1a1eb3264f | ||
![]() |
3d80a8aa39 | ||
![]() |
6cca084e05 | ||
![]() |
1c2c496f7e | ||
![]() |
8ab60be68b | ||
![]() |
f1fe363083 | ||
![]() |
db619790be | ||
![]() |
608749ce1a | ||
![]() |
1135744520 | ||
![]() |
c8d616e657 | ||
![]() |
3f8a6e04c8 | ||
![]() |
851cd8e037 | ||
![]() |
7b3dae8bea | ||
![]() |
e04ec0a00b | ||
![]() |
0a61c26cc1 | ||
![]() |
ff35c58787 | ||
![]() |
0a464fa93a | ||
![]() |
a9958e88d0 | ||
![]() |
d3eb5907a4 | ||
![]() |
a2017cc4c7 | ||
![]() |
87124fdaf4 | ||
![]() |
394c2b54ce | ||
![]() |
7117f1ad62 | ||
![]() |
713e267c16 | ||
![]() |
3932ec21f5 | ||
![]() |
76dc50b052 | ||
![]() |
73749aa34c | ||
![]() |
897932f954 | ||
![]() |
5a2b469e8a | ||
![]() |
ad38e6c15e | ||
![]() |
f5c6fc13a8 | ||
![]() |
7c8625821a | ||
![]() |
8a696ad088 | ||
![]() |
3c1ca8b70f | ||
![]() |
87b0cee53a | ||
![]() |
a56aa7e308 | ||
![]() |
98220c5e74 | ||
![]() |
964c886fb6 | ||
![]() |
f6536aa1d2 | ||
![]() |
ec1c861b13 | ||
![]() |
ae07ed9445 | ||
![]() |
82b94db408 | ||
![]() |
54d716e4b6 | ||
![]() |
a0330465dd | ||
![]() |
af026cfe66 | ||
![]() |
b7d5f6655d | ||
![]() |
964dedba0f | ||
![]() |
f13537e812 | ||
![]() |
037f1bf09f | ||
![]() |
9ee4212060 | ||
![]() |
e3c60cb4d8 | ||
![]() |
6fa325065e | ||
![]() |
cc88c99c45 | ||
![]() |
9d36ed6b1b | ||
![]() |
a6b8843c5c | ||
![]() |
9cf4dbd710 | ||
![]() |
589335f665 | ||
![]() |
1a04cac47c | ||
![]() |
417c6d09bf | ||
![]() |
c36cb4a76a | ||
![]() |
e65b786b46 | ||
![]() |
713f1486c3 | ||
![]() |
a0d3447202 | ||
![]() |
286999599a | ||
![]() |
9b6fae2523 | ||
![]() |
c250279b46 | ||
![]() |
f687df335e | ||
![]() |
aeec7866b4 | ||
![]() |
b49c47516e | ||
![]() |
3bf854c6c3 | ||
![]() |
b55edb8ae9 | ||
![]() |
78bc66668c | ||
![]() |
f965abe7f1 | ||
![]() |
509cb2471d | ||
![]() |
3c273d817b | ||
![]() |
21817ca97a | ||
![]() |
b31e712d2c | ||
![]() |
8f1ee11ff2 | ||
![]() |
0cb80ace3f | ||
![]() |
295a2bb8b8 | ||
![]() |
dd6757be5b | ||
![]() |
e90e4b27a3 | ||
![]() |
2932ca6c2b | ||
![]() |
06a685fc31 | ||
![]() |
e06c20d2f6 | ||
![]() |
e5527cf825 | ||
![]() |
6864af1b2f | ||
![]() |
87ff59bfa7 | ||
![]() |
ecd407d924 | ||
![]() |
ce55e7eed5 | ||
![]() |
f9b3fed403 | ||
![]() |
484f77bffc | ||
![]() |
814e697675 | ||
![]() |
e469c04125 | ||
![]() |
a33e2cbd88 | ||
![]() |
4ecccd67bd | ||
![]() |
8af25b4c67 | ||
![]() |
d6c30caf1b | ||
![]() |
7025efa6f8 | ||
![]() |
d0877eb6bc | ||
![]() |
87c62b4319 | ||
![]() |
9d3382d773 | ||
![]() |
5333e92c42 | ||
![]() |
f2c6d0a6b9 | ||
![]() |
a7e217152b | ||
![]() |
91c993da13 | ||
![]() |
5e7423bdce | ||
![]() |
ba48e15f5f | ||
![]() |
4e407fb0b9 | ||
![]() |
5d1963e0ec | ||
![]() |
c9bb6b25e9 | ||
![]() |
3bf433992e | ||
![]() |
a3a82b9fe7 | ||
![]() |
513f04d41b | ||
![]() |
5b318a8aaf | ||
![]() |
c75de7a096 | ||
![]() |
2cd5140600 | ||
![]() |
eaca3d6cc8 | ||
![]() |
2ce89bf24b | ||
![]() |
97cbd76e8e | ||
![]() |
683bb7eb41 | ||
![]() |
8b0fd0af85 | ||
![]() |
80d177aa92 | ||
![]() |
dea4ccbe58 | ||
![]() |
d156d53307 | ||
![]() |
e1c6b720a4 | ||
![]() |
4033e5d966 | ||
![]() |
b677b9d46d | ||
![]() |
91494aaf1c | ||
![]() |
f1fd0521a3 | ||
![]() |
21e96c32ce | ||
![]() |
96db1ed6db | ||
![]() |
c996f4aab5 | ||
![]() |
eaf803fcc0 | ||
![]() |
b7e1e26c14 | ||
![]() |
f84e994b50 | ||
![]() |
5473afac23 | ||
![]() |
9762d74256 | ||
![]() |
abedfedac6 | ||
![]() |
cca5e22680 | ||
![]() |
69c406c3d6 | ||
![]() |
209428bdc7 | ||
![]() |
853811d387 | ||
![]() |
bb9711639c | ||
![]() |
8f571d5800 | ||
![]() |
f61bd68ad2 | ||
![]() |
a0f5101ac5 | ||
![]() |
6a14f85d22 | ||
![]() |
1e678008a2 | ||
![]() |
2bb183d675 | ||
![]() |
2a5c5e5d69 | ||
![]() |
0a51ad3725 | ||
![]() |
031926efb7 | ||
![]() |
ce8013124b | ||
![]() |
b40ab8a551 | ||
![]() |
b6d1ad3418 | ||
![]() |
3556c66435 | ||
![]() |
40813820da | ||
![]() |
aa673cc361 | ||
![]() |
b4269b9001 | ||
![]() |
dfc9119bbc | ||
![]() |
fea803d4ce | ||
![]() |
7507f72ac0 | ||
![]() |
2eb131fb0b | ||
![]() |
a9f9e0263e | ||
![]() |
200a721a61 | ||
![]() |
45284a3845 | ||
![]() |
32c56d718c | ||
![]() |
1f709f9350 | ||
![]() |
656f046efe | ||
![]() |
ddf4afdd78 | ||
![]() |
e699756093 | ||
![]() |
e180074022 | ||
![]() |
2010c3a5c7 | ||
![]() |
c10c8ac7a7 | ||
![]() |
40b80a21dd | ||
![]() |
5ef7690578 | ||
![]() |
7abae9d69e | ||
![]() |
16d125aa20 | ||
![]() |
006eb1b1e7 | ||
![]() |
12bdf7541f | ||
![]() |
b5abda5054 | ||
![]() |
baf2bc9527 | ||
![]() |
62db2aea7a | ||
![]() |
3e8402b686 | ||
![]() |
a3850551c5 | ||
![]() |
9147e46856 | ||
![]() |
e200b6080b | ||
![]() |
8391e6fc2f | ||
![]() |
fbaea7e419 | ||
![]() |
2d8687a853 | ||
![]() |
f8b6b05a25 | ||
![]() |
3f2334a3ad | ||
![]() |
d7cdfb2b5e | ||
![]() |
9bd7b5a900 | ||
![]() |
e6fad72a2a | ||
![]() |
eb8f8ee1da | ||
![]() |
7bec1c2025 | ||
![]() |
2408524660 | ||
![]() |
fd99c13ee7 | ||
![]() |
7dc45bb438 | ||
![]() |
a8ea2e6085 | ||
![]() |
7b18c40781 | ||
![]() |
923b049b85 | ||
![]() |
59b36847f6 | ||
![]() |
a78f8586f4 | ||
![]() |
14395263aa | ||
![]() |
60e96a73eb | ||
![]() |
35107c20cb | ||
![]() |
00d9b0ad55 | ||
![]() |
00d8f60a02 | ||
![]() |
0c6fe6f77c | ||
![]() |
2656f9e641 | ||
![]() |
da609c1747 | ||
![]() |
41752dcac5 | ||
![]() |
6a52500bd3 | ||
![]() |
ebd9419a94 | ||
![]() |
dac08aa448 | ||
![]() |
c60c9fbd30 | ||
![]() |
6f5671e41f | ||
![]() |
ad79b576a5 | ||
![]() |
e2b6884d46 | ||
![]() |
3e91ecb8d5 | ||
![]() |
f7678338bc | ||
![]() |
5462f035f8 | ||
![]() |
12edc9279c | ||
![]() |
b1ef2d237d | ||
![]() |
01b8628504 | ||
![]() |
3bb11e11c3 | ||
![]() |
bfae6d975c | ||
![]() |
aa4721428f | ||
![]() |
20cb086c76 | ||
![]() |
92de61442a | ||
![]() |
173242e2bb | ||
![]() |
1c1d4697e5 | ||
![]() |
d011bb9497 | ||
![]() |
e43f9729a7 | ||
![]() |
baafa12967 | ||
![]() |
c3e33fa7f3 | ||
![]() |
daf6d6aea8 | ||
![]() |
02c9ec67c0 | ||
![]() |
63d25a11ae | ||
![]() |
a4e703f2fd | ||
![]() |
360079d15e | ||
![]() |
1473675094 | ||
![]() |
a6e03680eb | ||
![]() |
c99d3d37db | ||
![]() |
b2fa05fa22 | ||
![]() |
77070be769 | ||
![]() |
3467e5070f | ||
![]() |
5fb8fe86de | ||
![]() |
afea93d327 | ||
![]() |
53ec2f15b6 | ||
![]() |
342186584e | ||
![]() |
bd5d3c00f1 | ||
![]() |
53eeb4e921 | ||
![]() |
f2909fb3bd | ||
![]() |
1039f1db38 | ||
![]() |
741ae9eb1e | ||
![]() |
76ff984b9c | ||
![]() |
f89478bf67 | ||
![]() |
f530c389a4 | ||
![]() |
a1ab0512b7 | ||
![]() |
3dad9896eb | ||
![]() |
ff9b0c79c0 | ||
![]() |
19ed3fb303 | ||
![]() |
09dd3c94c1 | ||
![]() |
e79afc87ca | ||
![]() |
f3ff74b0df | ||
![]() |
569ee488f5 | ||
![]() |
68ebe2d503 | ||
![]() |
8939e889f0 | ||
![]() |
796a52625e | ||
![]() |
0fbc5178f6 | ||
![]() |
d1505287b2 | ||
![]() |
8959adf9e0 | ||
![]() |
5961462cd7 | ||
![]() |
af0eeb710e | ||
![]() |
75a75d78ec | ||
![]() |
ddd8eb6da4 | ||
![]() |
d9d8437b6d | ||
![]() |
c2f2a589ed | ||
![]() |
c3d09c486c | ||
![]() |
897e817f3c | ||
![]() |
491234b310 | ||
![]() |
408206ace3 | ||
![]() |
4ec493950c | ||
![]() |
4f140893c9 | ||
![]() |
9c7c44cb49 | ||
![]() |
ba89f392d6 | ||
![]() |
04308fbaea | ||
![]() |
5d1021350d | ||
![]() |
800dae11e8 | ||
![]() |
ba5f816772 | ||
![]() |
1651956cbd | ||
![]() |
4a9967b8d0 | ||
![]() |
109eb96c08 | ||
![]() |
5d0807de4c | ||
![]() |
2d7832b132 | ||
![]() |
a7e2a05d80 | ||
![]() |
d36ce36235 | ||
![]() |
34c78dff52 | ||
![]() |
bd8a2fb287 | ||
![]() |
38770d9393 | ||
![]() |
c65e747dd2 | ||
![]() |
53f2baf52b | ||
![]() |
5b9be518b8 | ||
![]() |
e0de3b410b | ||
![]() |
2b1f2fe019 | ||
![]() |
37b5ab916c | ||
![]() |
af261e126a | ||
![]() |
2cbec90c96 | ||
![]() |
01c5bd61ef | ||
![]() |
e01291afd6 | ||
![]() |
a53b3130c8 | ||
![]() |
d808e72d2a | ||
![]() |
02a860ba19 | ||
![]() |
8902f3202e | ||
![]() |
c17779b6d4 | ||
![]() |
7f6c5f7211 | ||
![]() |
45f49738f3 | ||
![]() |
cf0662d0a4 |
20
.formal-git/components
Normal file
20
.formal-git/components
Normal file
@@ -0,0 +1,20 @@
|
||||
split-view
|
||||
kbs
|
||||
folders
|
||||
workspaces
|
||||
mods
|
||||
tests
|
||||
glance
|
||||
media
|
||||
images
|
||||
vendor
|
||||
tabs
|
||||
compact-mode
|
||||
common
|
||||
fonts
|
||||
welcome
|
||||
scripts
|
||||
workflows
|
||||
winsign
|
||||
flatpak
|
||||
configs
|
1
.formal-git/template
Normal file
1
.formal-git/template
Normal file
@@ -0,0 +1 @@
|
||||
{type}: {message}, b=({bugId}), c={components}
|
48
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
48
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -6,7 +6,8 @@ body:
|
||||
value: |
|
||||
Thank you for filing a bug report!
|
||||
|
||||
## Important
|
||||
## IMPORTANT READ
|
||||
- Please provide descriptive titles. Bad titles do more harm than good.
|
||||
- Please search existing issues to avoid creating duplicates.
|
||||
- For enhancement requests, please use GitHub Discussions.
|
||||
- Please fill out the template below to the best of your ability.
|
||||
@@ -20,6 +21,10 @@ body:
|
||||
- label: I have read the instructions.
|
||||
- label: I have searched existing issues and avoided creating duplicates.
|
||||
- label: I am not filing an enhancement request.
|
||||
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||
- label: I have checked that this issue can be reproduced once I removed all my Mods and Custom CSS.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
@@ -28,19 +33,12 @@ body:
|
||||
placeholder: Tell us what you see!
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: firefox
|
||||
attributes:
|
||||
label: Reproducible?
|
||||
description: Is this issue reproducible on Firefox?
|
||||
options:
|
||||
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of our software are you running? Please do not use "latest" or "newest" as version numbers. Go to `Help -> About Zen` to find the version number.
|
||||
placeholder: 1.0.0
|
||||
placeholder: 1.0.0b
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -54,10 +52,40 @@ body:
|
||||
- Linux (Tarball)
|
||||
- macOS - aarch64
|
||||
- macOS - Intel
|
||||
- Windows
|
||||
- Windows - x64
|
||||
- Windows - aarch64
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: component
|
||||
attributes:
|
||||
label: What component is this issue related to?
|
||||
options:
|
||||
- Other
|
||||
- Compact Mode
|
||||
- Workspaces
|
||||
- Mods / Themes
|
||||
- Glance
|
||||
- URL Bar
|
||||
- Tabs
|
||||
- Split View
|
||||
- Settings
|
||||
- Privacy
|
||||
- Performance
|
||||
- Media Controler
|
||||
- Tab unloading
|
||||
- Tab Folders
|
||||
- Keyboard Shortcuts
|
||||
- Security
|
||||
- Extensions
|
||||
- Customizable UI / Toolbars
|
||||
- Localization
|
||||
- Bookmarks
|
||||
- Sync
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
|
58
.github/advanced-issue-labeler.yml
vendored
Normal file
58
.github/advanced-issue-labeler.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
policy:
|
||||
- section:
|
||||
- id: [component]
|
||||
label:
|
||||
# Make sure it's in sync with the dropdown in the issue template
|
||||
- name: 'component: sync'
|
||||
keys: ['Sync']
|
||||
- name: 'component: compact-mode'
|
||||
keys: ['Compact Mode']
|
||||
- name: 'component: workspaces'
|
||||
keys: ['Workspaces']
|
||||
- name: 'component: mods-themes'
|
||||
keys: ['Mods / Themes']
|
||||
- name: 'component: bookmarks'
|
||||
keys: ['Bookmarks']
|
||||
- name: 'component: glance'
|
||||
keys: ['Glance']
|
||||
- name: 'component: url-bar'
|
||||
keys: ['URL Bar']
|
||||
- name: 'component: tabs'
|
||||
keys: ['Tabs']
|
||||
- name: 'component: settings'
|
||||
keys: ['Settings']
|
||||
- name: 'component: privacy'
|
||||
keys: ['Privacy']
|
||||
- name: 'component: split-view'
|
||||
keys: ['Split View']
|
||||
- name: 'component: performance'
|
||||
keys: ['Performance']
|
||||
- name: 'component: media-controller'
|
||||
keys: ['Media Controler']
|
||||
- name: 'component: tab-unloading'
|
||||
keys: ['Tab unloading']
|
||||
- name: 'component: tab-folders'
|
||||
keys: ['Tab Folders']
|
||||
- name: 'component: keyboard-shortcuts'
|
||||
keys: ['Keyboard Shortcuts']
|
||||
- name: 'component: security'
|
||||
keys: ['Security']
|
||||
- name: 'component: extensions'
|
||||
keys: ['Extensions']
|
||||
- name: 'component: customizable-ui-toolbars'
|
||||
keys: ['Customizable UI / Toolbars']
|
||||
- name: 'component: localization'
|
||||
keys: ['Localization']
|
||||
- name: 'component: other'
|
||||
keys: ['Other']
|
||||
|
||||
- id: [platform]
|
||||
block-list: ['Other']
|
||||
label:
|
||||
# Make sure it's in sync with the dropdown in the issue template
|
||||
- name: 'platform: linux'
|
||||
keys: ['Linux (AppImage)', 'Linux (Flatpak)', 'Linux (Tarball)']
|
||||
- name: 'platform: macOS'
|
||||
keys: ['macOS - aarch64', 'macOS - Intel']
|
||||
- name: 'platform: windows'
|
||||
keys: ['Windows - x64', 'Windows - aarch64']
|
36
.github/workflows/build.yml
vendored
36
.github/workflows/build.yml
vendored
@@ -21,6 +21,11 @@ on:
|
||||
options:
|
||||
- 'release'
|
||||
- 'twilight'
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: true
|
||||
type: 'boolean'
|
||||
default: false
|
||||
workflow_call:
|
||||
inputs:
|
||||
create_release:
|
||||
@@ -38,6 +43,11 @@ on:
|
||||
required: true
|
||||
default: 'release'
|
||||
type: 'string'
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: true
|
||||
type: 'boolean'
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
debug-inputs:
|
||||
@@ -48,10 +58,10 @@ jobs:
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
echo "update_version: ${{ inputs.update_version }}"
|
||||
echo "use sccache: ${{ inputs.use-sccache }}"
|
||||
echo "update_branch: ${{ inputs.update_branch }}"
|
||||
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
buildid:
|
||||
@@ -71,6 +81,7 @@ jobs:
|
||||
needs: debug-inputs
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
@@ -283,6 +294,7 @@ jobs:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
with:
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: true
|
||||
profile-data-path-archive: zen-windows-profile-data-and-jarlog.zip
|
||||
@@ -313,6 +325,7 @@ jobs:
|
||||
generate-gpo: false
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
linux:
|
||||
name: Linux build
|
||||
@@ -325,6 +338,7 @@ jobs:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
mac:
|
||||
name: macOS build
|
||||
@@ -337,6 +351,7 @@ jobs:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
|
||||
use-sccache: ${{ inputs.use-sccache }}
|
||||
|
||||
mac-uni:
|
||||
name: macOS build (Universal)
|
||||
@@ -386,23 +401,23 @@ jobs:
|
||||
set -eux
|
||||
export ARCH=${{ matrix.arch }}
|
||||
UPINFO="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-$ARCH.AppImage.zsync"
|
||||
rm AppDir/.DirIcon || true
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
rm build/AppDir/.DirIcon || true
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png build/AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png build/AppDir/zen.png && ln -s zen.png build/AppDir/.DirIcon
|
||||
|
||||
if [ "${{ inputs.update_branch }}" = "twilight" ]; then
|
||||
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' build/AppDir/zen.desktop
|
||||
sed -i -e 's/StartupWMClass=zen/StartupWMClass=zen-twilight/g' build/AppDir/zen.desktop
|
||||
fi
|
||||
|
||||
APPDIR=AppDir
|
||||
APPDIR=build/AppDir
|
||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||
mv zen/* $APPDIR/
|
||||
wget "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
|
||||
wget "https://github.com/VHSgunzo/uruntime/releases/latest/download/uruntime-appimage-squashfs-lite-$ARCH"
|
||||
chmod +x *.AppImage
|
||||
chmod +x ./uruntime-appimage-squashfs-lite-"$ARCH"
|
||||
chmod +x ./AppDir/AppRun
|
||||
chmod +x ./build/AppDir/AppRun
|
||||
|
||||
# keep the uruntime mountpoint (massively speeds up launch time)
|
||||
sed -i 's|URUNTIME_MOUNT=[0-9]|URUNTIME_MOUNT=0|' ./uruntime-appimage-squashfs-lite-"$ARCH"
|
||||
@@ -436,6 +451,7 @@ jobs:
|
||||
if: always()
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
unzip awscliv2.zip
|
||||
@@ -487,7 +503,7 @@ jobs:
|
||||
- name: Download object files
|
||||
if: ${{ inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object --depth 1
|
||||
|
||||
- name: Copy update manifests
|
||||
env:
|
||||
@@ -691,7 +707,7 @@ jobs:
|
||||
--linux-archive zen.linux-x86_64.tar.xz \
|
||||
--linux-aarch64-archive zen.linux-aarch64.tar.xz \
|
||||
--output app.zen_browser.zen.yml \
|
||||
--template-root ./zen-browser/flatpak
|
||||
--template-root ./zen-browser/build/flatpak
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
|
25
.github/workflows/clear-all-cache.yml
vendored
Normal file
25
.github/workflows/clear-all-cache.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
name: Cleanup cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
permissions: write-all
|
||||
steps:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
echo "Fetching list of cache key"
|
||||
cacheKeysForPR=$(gh cache list --limit 1000 --json id --jq '.[].id')
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
echo "Deleting caches..."
|
||||
for cacheKey in $cacheKeysForPR
|
||||
do
|
||||
gh cache delete $cacheKey
|
||||
done
|
||||
echo "Done"
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GH_REPO: ${{ github.repository }}
|
33
.github/workflows/clear-cache.yml
vendored
33
.github/workflows/clear-cache.yml
vendored
@@ -1,33 +0,0 @@
|
||||
name: Clear cache
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
|
||||
jobs:
|
||||
clear-cache:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clear cache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
console.log("About to clear")
|
||||
const caches = await github.rest.actions.getActionsCacheList({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
})
|
||||
|
||||
for (const cache of caches.data.actions_caches) {
|
||||
console.log(cache)
|
||||
await github.rest.actions.deleteActionsCacheById({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
cache_id: cache.id,
|
||||
})
|
||||
}
|
||||
|
||||
console.log("Clear completed")
|
2
.github/workflows/code-linter.yml
vendored
2
.github/workflows/code-linter.yml
vendored
@@ -11,7 +11,7 @@ on:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
pr-test:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
34
.github/workflows/issue-labeler.yml
vendored
Normal file
34
.github/workflows/issue-labeler.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Issue labeler
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
label-component:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
# required for all workflows
|
||||
issues: write
|
||||
|
||||
# only required for workflows in private repositories
|
||||
actions: read
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Parse issue form
|
||||
uses: stefanbuck/github-issue-parser@v3
|
||||
id: issue-parser
|
||||
with:
|
||||
template-path: .github/ISSUE_TEMPLATE/bug_report.yml
|
||||
|
||||
- name: Set labels based on animals field
|
||||
uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
|
||||
with:
|
||||
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
12
.github/workflows/linux-release-build.yml
vendored
12
.github/workflows/linux-release-build.yml
vendored
@@ -15,6 +15,11 @@ on:
|
||||
type: string
|
||||
required: true
|
||||
default: ''
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
@@ -27,9 +32,9 @@ jobs:
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: 'true'
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
RUSTC_WRAPPER: 'sccache'
|
||||
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
|
||||
CARGO_INCREMENTAL: 0
|
||||
name: Build Linux - ${{ matrix.arch }}
|
||||
|
||||
@@ -56,6 +61,7 @@ jobs:
|
||||
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
@@ -91,7 +97,7 @@ jobs:
|
||||
- name: Fix Rust version
|
||||
run: |
|
||||
# Install a rust version compatible with LLVM 18
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
|
12
.github/workflows/macos-release-build.yml
vendored
12
.github/workflows/macos-release-build.yml
vendored
@@ -15,6 +15,11 @@ on:
|
||||
type: string
|
||||
required: true
|
||||
default: ''
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
@@ -26,9 +31,9 @@ jobs:
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: 'true'
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
RUSTC_WRAPPER: 'sccache'
|
||||
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
|
||||
CARGO_INCREMENTAL: 0
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -44,6 +49,7 @@ jobs:
|
||||
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
@@ -82,7 +88,7 @@ jobs:
|
||||
|
||||
brew install watchman
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
|
@@ -10,6 +10,11 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
@@ -20,6 +25,7 @@ jobs:
|
||||
with:
|
||||
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
||||
update_branch: twilight
|
||||
use-sccache: ${{ github.event_name != 'workflow_dispatch' && false || inputs.use-sccache }}
|
||||
update_version: false
|
||||
|
||||
post-build:
|
||||
|
6
.github/workflows/windows-profile-build.yml
vendored
6
.github/workflows/windows-profile-build.yml
vendored
@@ -90,15 +90,9 @@ jobs:
|
||||
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
|
||||
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
|
||||
echo 'ls /c/Users/runneradmin/.mozbuild/clang/bin' '' >> mozilla-build-run.sh
|
||||
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move profile data
|
||||
if: ${{ matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
|
43
.github/workflows/windows-release-build.yml
vendored
43
.github/workflows/windows-release-build.yml
vendored
@@ -22,6 +22,11 @@ on:
|
||||
type: string
|
||||
required: true
|
||||
default: ''
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: true
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
@@ -29,9 +34,9 @@ jobs:
|
||||
# aarch64 does not need full 16x, and we also dont use full LTO when generating GPO
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'ubuntu-latest' }}
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: 'true'
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
RUSTC_WRAPPER: 'sccache'
|
||||
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
|
||||
CARGO_INCREMENTAL: 0
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -62,6 +67,7 @@ jobs:
|
||||
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@main
|
||||
if: ${{ inputs.use-sccache }}
|
||||
with:
|
||||
disable_annotations: true
|
||||
|
||||
@@ -105,6 +111,7 @@ jobs:
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
sudo apt-get install python3-launchpadlib
|
||||
sudo add-apt-repository ppa:savoury1/backports
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip autoconf \
|
||||
@@ -150,7 +157,7 @@ jobs:
|
||||
aria2
|
||||
echo Setup wine
|
||||
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
||||
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
||||
tar --zstd -xf wine.tar.zst -C ~/win-cross
|
||||
rm wine.tar.zst
|
||||
echo Setup Visual Studio
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||
@@ -176,14 +183,14 @@ jobs:
|
||||
- name: Setup Rust
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
cd engine/
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.81
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
|
||||
source $HOME/.cargo/env
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
else
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
fi
|
||||
cd engine/
|
||||
cargo install cargo-download --locked
|
||||
cargo download -x windows=0.58.0
|
||||
export CARGO_INCREMENTAL=0
|
||||
@@ -249,11 +256,6 @@ jobs:
|
||||
ls ./dist
|
||||
ls .
|
||||
|
||||
- name: Debug session
|
||||
if: ${{ failure() }}
|
||||
uses: WarpBuilds/action-debugger@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||
run: |
|
||||
@@ -279,21 +281,24 @@ jobs:
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
set -x
|
||||
if test "${{ matrix.arch }}" = "aarch64"; then
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
else
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||
fi
|
||||
mkdir obj-${{ matrix.arch }}-pc-windows-msvc/
|
||||
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/_tests
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/config/autoconf.mk
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/config.statusd/substs/
|
||||
rm -rf engine/obj-${{ matrix.arch }}-pc-windows-msvc/dist/install
|
||||
|
||||
find engine/obj-${{ matrix.arch }}-pc-windows-msvc/dist -maxdepth 1 -type f -name "*.zip" -delete
|
||||
|
||||
cp -r --no-dereference engine/obj-${{ matrix.arch }}-pc-windows-msvc/* obj-${{ matrix.arch }}-pc-windows-msvc/ || true
|
||||
|
||||
- name: Upload dist object
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 5
|
||||
retention-days: 2
|
||||
name: windows-x64-obj-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
|
||||
path: engine/obj-${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }}-pc-windows-msvc/
|
||||
path: obj-${{ matrix.arch }}-pc-windows-msvc
|
||||
|
||||
- name: Upload artifact (if Twilight branch, binary)
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,3 +11,4 @@ windsign-temp/
|
||||
venv/
|
||||
|
||||
!firefox-cache/
|
||||
win-cross/
|
||||
|
@@ -22,7 +22,8 @@ docs/issue-metrics/*.md
|
||||
|
||||
# Some CSS files are preprocessed and prettier doesn't handle them well
|
||||
# We also dont want to format the CSS files that are generated by the build
|
||||
src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css
|
||||
src/browser/base/content/zen-styles/zen-compact-mode.css
|
||||
src/browser/base/zen-components/ZenEmojies.mjs
|
||||
build/codesign/codesign.bash
|
||||
src/zen/tabs/zen-tabs/vertical-tabs.css
|
||||
src/zen/compact-mode/zen-compact-mode.css
|
||||
src/zen/common/ZenEmojies.mjs
|
||||
|
||||
*.inc
|
||||
|
1
.rust-toolchain
Normal file
1
.rust-toolchain
Normal file
@@ -0,0 +1 @@
|
||||
1.82
|
12
README.md
12
README.md
@@ -6,7 +6,7 @@
|
||||
[](https://crowdin.com/project/zen-browser)
|
||||
[](https://github.com/zen-browser/desktop/actions/workflows/build.yml)
|
||||
|
||||
✨ Experience tranquillity while browsing the web without people tracking you! Zen is a privacy-focused browser that blocks trackers, ads, and other unwanted content while offering the best browsing experience!
|
||||
✨ Experience tranquillity while browsing the internet with Zen! Our mission is to give you a balance between speed, privacy and productivity!
|
||||
|
||||
<div flex="true">
|
||||
<a href="https://zen-browser.app/download">
|
||||
@@ -28,9 +28,9 @@
|
||||
|
||||
## 🖥️ Compatibility
|
||||
|
||||
Zen is currently built using Firefox version `136.0.2`! 🚀
|
||||
Zen is currently built using Firefox version `137.0.2`! 🚀
|
||||
|
||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 136.0`!
|
||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 137.0.2`!
|
||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||
|
||||
@@ -85,7 +85,7 @@ winget install --id Zen-Team.Zen-Browser
|
||||
You can also install Zen using Homebrew:
|
||||
|
||||
```
|
||||
brew install --cask zen-browser
|
||||
brew install zen-browser
|
||||
```
|
||||
|
||||
#### Linux
|
||||
@@ -118,11 +118,11 @@ To upgrade the browser to a newer version, use the embedded update functionality
|
||||
|
||||
## 👨💻 Development and Contributing
|
||||
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/browser/base/zen-components).
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/zen).
|
||||
|
||||
#### `Run Locally`
|
||||
|
||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/building).
|
||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/guides/building).
|
||||
|
||||
#### `Special Thanks`
|
||||
|
||||
|
1
build/firefox-cache/l10n-last-commit-hash
Normal file
1
build/firefox-cache/l10n-last-commit-hash
Normal file
@@ -0,0 +1 @@
|
||||
ee85441427e22eb9fbc8d3eb62c7e5804535f0bc
|
@@ -28,7 +28,7 @@ finish-args:
|
||||
- --system-talk-name=org.freedesktop.NetworkManager
|
||||
- --talk-name=org.a11y.Bus
|
||||
- --env=GTK_PATH=/app/lib/gtkmodules
|
||||
- --env=MESA_SHADER_CACHE_DIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID/cache/mesa_shader_cache_db
|
||||
- --env=MESA_SHADER_CACHE_DIR=/var/cache/mesa_shader_cache_db
|
||||
modules:
|
||||
- name: zen_browser
|
||||
buildsystem: simple
|
||||
@@ -49,6 +49,12 @@ modules:
|
||||
strip-components: 0
|
||||
only-arches:
|
||||
- x86_64
|
||||
x-checker-data:
|
||||
type: json
|
||||
url: https://api.github.com/repos/zen-browser/desktop/releases/latest
|
||||
version-query: .tag_name
|
||||
url-query: .assets[] | select(.name=="zen.linux-x86_64.tar.xz") | .browser_download_url
|
||||
is-main-source: true
|
||||
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/desktop/releases/download/{version}/zen.linux-aarch64.tar.xz
|
||||
@@ -56,6 +62,12 @@ modules:
|
||||
strip-components: 0
|
||||
only-arches:
|
||||
- aarch64
|
||||
x-checker-data:
|
||||
type: json
|
||||
url: https://api.github.com/repos/zen-browser/desktop/releases/latest
|
||||
version-query: .tag_name
|
||||
url-query: .assets[] | select(.name=="zen.linux-aarch64.tar.xz") | .browser_download_url
|
||||
is-main-source: true
|
||||
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/flatpak/releases/download/{version}/archive.tar
|
9
build/winsign/bootstrap.ps1
Normal file
9
build/winsign/bootstrap.ps1
Normal file
@@ -0,0 +1,9 @@
|
||||
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe", "C:\MozillaBuildSetup-Latest.exe")
|
||||
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
|
||||
cd engine
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ../win-cross/vs2022
|
||||
cd ..
|
@@ -6,7 +6,7 @@ param(
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
echo "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
git pull --recurse
|
||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
|
||||
# Download in parallel
|
||||
@@ -19,40 +19,145 @@ mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||
# echo "Downloaded git objects repo to"
|
||||
#} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
gh run download $GithubRunId --name windows-x64-obj-arm64 -D windsign-temp\windows-x64-obj-arm64
|
||||
echo "Downloaded arm64 artifacts"
|
||||
gh run download $GithubRunId --name windows-x64-obj-x86_64 -D windsign-temp\windows-x64-obj-x86_64
|
||||
echo "Downloaded x86_64 artifacts"
|
||||
Start-Job -Name "DownloadGitl10n" -ScriptBlock {
|
||||
param($PWD)
|
||||
cd $PWD
|
||||
$env:ZEN_L10N_CURR_DIR=[regex]::replace($PWD, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
||||
C:\mozilla-build\start-shell.bat $PWD\scripts\download-language-packs.sh
|
||||
echo "Fetched l10n and firefox's one"
|
||||
} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
Start-Job -Name "SurferInit" -ScriptBlock {
|
||||
param($PWD)
|
||||
cd $PWD
|
||||
surfer -- ci --brand release
|
||||
npm run import -- --verbose
|
||||
} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
#Wait-Job -Name "DownloadGitObjectsRepo"
|
||||
echo "Downloading artifacts info"
|
||||
$artifactsInfo=gh api repos/zen-browser/desktop/actions/runs/$GithubRunId/artifacts
|
||||
$token = gh auth token
|
||||
|
||||
function New-TemporaryDirectory {
|
||||
$tmp = [System.IO.Path]::GetTempPath() # Not $env:TEMP, see https://stackoverflow.com/a/946017
|
||||
$name = (New-Guid).ToString("N")
|
||||
New-Item -ItemType Directory -Path (Join-Path $tmp $name)
|
||||
}
|
||||
|
||||
function DownloadFile($url, $targetFile) {
|
||||
$uri = New-Object "System.Uri" "$url"
|
||||
$request = [System.Net.HttpWebRequest]::Create($uri)
|
||||
$request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
||||
$request.Headers.Add("Authorization", "Bearer $token")
|
||||
$response = $request.GetResponse()
|
||||
$totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
|
||||
$responseStream = $response.GetResponseStream()
|
||||
$targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList $targetFile, Create
|
||||
$buffer = new-object byte[] 10KB
|
||||
$count = $responseStream.Read($buffer,0,$buffer.length)
|
||||
$downloadedBytes = $count
|
||||
|
||||
while ($count -gt 0) {
|
||||
$targetStream.Write($buffer, 0, $count)
|
||||
$count = $responseStream.Read($buffer,0,$buffer.length)
|
||||
$downloadedBytes = $downloadedBytes + $count
|
||||
Write-Progress -activity "Downloading file '$($url.split('/') | Select -Last 1)'" -status "Downloaded ($([System.Math]::Floor($downloadedBytes/1024))K of $($totalLength)K): " -PercentComplete ((([System.Math]::Floor($downloadedBytes/1024)) / $totalLength) * 100)
|
||||
}
|
||||
|
||||
Write-Progress -activity "Finished downloading file '$($url.split('/') | Select -Last 1)'"
|
||||
|
||||
$targetStream.Flush()
|
||||
$targetStream.Close()
|
||||
$targetStream.Dispose()
|
||||
$responseStream.Dispose()
|
||||
}
|
||||
|
||||
function DownloadArtifacts($name) {
|
||||
echo "Downloading artifacts for $name"
|
||||
$artifactUrl=$($artifactsInfo | jq -r --arg NAME "windows-x64-obj-$name" '.artifacts[] | select(.name == $NAME) | .archive_download_url')
|
||||
echo "Artifact URL: $artifactUrl"
|
||||
|
||||
# download the artifact
|
||||
$outputPath="$PWD\windsign-temp\windows-x64-obj-$name"
|
||||
$tempDir = New-TemporaryDirectory
|
||||
$tempFile = Join-Path $tempDir "artifact-$($name).zip"
|
||||
|
||||
echo "Downloading artifact to $tempFile"
|
||||
DownloadFile $artifactUrl $tempFile
|
||||
|
||||
Start-Job -Name "UnzipArtifact$name" -ScriptBlock {
|
||||
param($tempFile, $outputPath)
|
||||
echo "Unzipping artifact to $outputPath"
|
||||
Expand-Archive -Path $tempFile -DestinationPath $outputPath -Force
|
||||
echo "Unzipped artifact to $outputPath"
|
||||
} -ArgumentList $tempFile, $outputPath -Verbose -Debug
|
||||
}
|
||||
|
||||
DownloadArtifacts arm64
|
||||
DownloadArtifacts x86_64
|
||||
|
||||
# Wait for the jobs to finish
|
||||
Wait-Job -Name "UnzipArtifactarm64"
|
||||
Wait-Job -Name "UnzipArtifactx86_64"
|
||||
|
||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||
|
||||
npm run surfer -- ci --brand release
|
||||
# Collect all .exe and .dll files into a list
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-obj-x86_64\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-x86_64\ -Recurse -Include *.dll
|
||||
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-arm64\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-obj-arm64\ -Recurse -Include *.dll
|
||||
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
|
||||
$env:ZEN_RELEASE="true"
|
||||
$env:SURFER_SIGNING_MODE="true"
|
||||
Wait-Job -Name "SurferInit"
|
||||
Wait-Job -Name "DownloadGitl10n"
|
||||
|
||||
function SignAndPackage($name) {
|
||||
echo "Executing on $name"
|
||||
rmdir .\dist -Recurse -ErrorAction SilentlyContinue
|
||||
rmdir engine\obj-x86_64-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-x86_64-pc-windows-msvc\ -Recurse
|
||||
echo "Signing $name"
|
||||
rmdir engine\obj-$name-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
$objName=$name
|
||||
# instead of arm, use aarch64
|
||||
if ($name -eq "arm64") {
|
||||
$objName="aarch64"
|
||||
}
|
||||
|
||||
# Collect all .exe and .dll files into a list
|
||||
$files = Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.exe
|
||||
$files += Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.dll
|
||||
echo "Removing old obj dir"
|
||||
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Creating new obj dir"
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-$objName-pc-windows-msvc\ -Recurse
|
||||
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
echo "Packaging $name"
|
||||
$env:SURFER_SIGNING_MODE="sign"
|
||||
$env:MAR="$PWD\\build\\winsign\\mar.exe"
|
||||
echo "Copying setup.exe into obj dir"
|
||||
$env:ZEN_SETUP_EXE_PATH="$PWD\windsign-temp\windows-x64-obj-$name\browser\installer\windows\instgen\setup.exe"
|
||||
|
||||
if ($name -eq "arm64") {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2022\VC\Redist\MSVC\14.38.33135\arm64\Microsoft.VC143.CRT"
|
||||
} else {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2022\VC\Redist\MSVC\14.38.33135\x64\Microsoft.VC143.CRT"
|
||||
}
|
||||
|
||||
$env:MAR="..\\build\\winsign\\mar.exe"
|
||||
if ($name -eq "arm64") {
|
||||
$env:SURFER_COMPAT="aarch64"
|
||||
} else {
|
||||
$env:SURFER_COMPAT="x86_64"
|
||||
}
|
||||
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
|
||||
# Configure each time since we are cloning from a linux environment into
|
||||
# a windows environment, and the build system is not smart enough to detect that
|
||||
# we are on a different platform.
|
||||
cd .\engine
|
||||
echo "Configuring for $name"
|
||||
.\mach configure
|
||||
cd ..
|
||||
|
||||
echo "Packaging $name"
|
||||
npm run package -- --verbose
|
||||
|
||||
# In the release script, we do the following:
|
||||
@@ -62,7 +167,6 @@ function SignAndPackage($name) {
|
||||
# - update_manifest/*
|
||||
# - windows.mar
|
||||
# - zen.installer.exe
|
||||
# - zen.win-x86_64.zip
|
||||
echo "Creating tar for $name"
|
||||
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mkdir windsign-temp\windows-x64-signed-$name
|
||||
@@ -83,30 +187,13 @@ function SignAndPackage($name) {
|
||||
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||
}
|
||||
|
||||
# Move the zip
|
||||
echo "Moving zip for $name"
|
||||
if ($name -eq "arm64") {
|
||||
mv (Get-Item .\dist\*.en-US.win64-aarch64.zip) windsign-temp\windows-x64-signed-$name\zen.win-arm64.zip
|
||||
} else {
|
||||
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
}
|
||||
|
||||
# Extract the zip, sign everything inside, and repackage it
|
||||
Expand-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name.zip -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name
|
||||
rm windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.dll
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
Compress-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
rmdir windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
# Move the manifest
|
||||
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
|
||||
|
||||
echo "Invoking tar for $name"
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
|
||||
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
echo "Finished $name"
|
||||
}
|
||||
@@ -114,6 +201,9 @@ function SignAndPackage($name) {
|
||||
SignAndPackage arm64
|
||||
SignAndPackage x86_64
|
||||
|
||||
$files = Get-ChildItem .\windsign-temp\windows-binaries -Recurse -Include *.exe
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
cd windsign-temp\windows-binaries
|
||||
|
@@ -1,14 +1,12 @@
|
||||
# Browser branding
|
||||
ac_add_options --with-app-name=${binName}
|
||||
ac_add_options --with-app-basename=Zen
|
||||
ac_add_options --enable-official-branding
|
||||
|
||||
# Localization (Must be an absolute path)
|
||||
ac_add_options --with-l10n-base="${topsrcdir}/browser/locales"
|
||||
|
||||
export MOZ_USER_DIR="${name}"
|
||||
export MOZ_APP_BASENAME=Zen
|
||||
export MOZ_APP_PROFILE=${binName}
|
||||
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
||||
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
||||
|
||||
@@ -25,15 +23,19 @@ export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
if test -x "$(command -v sccache)"; then
|
||||
ac_add_options --with-ccache=sccache
|
||||
elif test -f "$HOME/.mozbuild/sccache/sccache"; then
|
||||
ac_add_options --with-ccache="$HOME"/.mozbuild/sccache/sccache
|
||||
# Anything except 'SCCACHE_GHA_ENABLED == false'
|
||||
if ! test "$SCCACHE_GHA_ENABLED" = "false"; then
|
||||
if test -x "$(command -v sccache)"; then
|
||||
ac_add_options --with-ccache=sccache
|
||||
elif test -f "$HOME/.mozbuild/sccache/sccache"; then
|
||||
ac_add_options --with-ccache="$HOME"/.mozbuild/sccache/sccache
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
|
||||
ac_add_options --enable-clang-plugin
|
||||
# TODO: Make this successful in builds
|
||||
# ac_add_options --enable-clang-plugin
|
||||
ac_add_options --enable-bootstrap=-sccache
|
||||
|
||||
ac_add_options --enable-release
|
||||
|
@@ -20,7 +20,7 @@ if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
fi
|
||||
|
||||
# Optimization flags for SURFER_COMPAT
|
||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -Qvec -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
||||
|
||||
export LDFLAGS="$LDFLAGS -Wl,-O3"
|
||||
export RUSTFLAGS="$RUSTFLAGS -Clink-args=--icf=safe"
|
||||
|
@@ -4,7 +4,6 @@ ac_add_options --disable-dmd
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
export MOZ_MACBUNDLE_ID=${appId}
|
||||
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
||||
|
||||
# override LTO settings
|
||||
# TODO: Dont use LTO for now, it's causing a lot of issues
|
||||
@@ -32,6 +31,7 @@ if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
export LDFLAGS="-Wl,-O3 -march=nehalem"
|
||||
export RUSTFLAGS="-Ctarget-cpu=nehalem"
|
||||
else
|
||||
ac_add_options --enable-clang-plugin
|
||||
ac_add_options --target=aarch64-apple-darwin
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
||||
|
@@ -17,7 +17,6 @@ if test "$ZEN_CROSS_COMPILING"; then
|
||||
else
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||
@@ -25,14 +24,14 @@ fi
|
||||
ac_add_options --disable-maintenance-service
|
||||
ac_add_options --disable-bits-download
|
||||
|
||||
ac_add_options --disable-clang-plugin
|
||||
|
||||
if test "$SURFER_COMPAT" = "x86_64"; then
|
||||
|
||||
ac_add_options --target=x86_64-pc-windows-msvc
|
||||
ac_add_options --enable-eme=widevine,wmfcdm
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -Qvec -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
||||
# ac_add_options --disable-jemalloc
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
||||
|
||||
export LDFLAGS="-Wl,-O3"
|
||||
export RUSTFLAGS="-Clink-args=--icf=safe"
|
||||
|
912
docs/issue-metrics/2025_2025-03-01..2025-03-31.md
Normal file
912
docs/issue-metrics/2025_2025-03-01..2025-03-31.md
Normal file
@@ -0,0 +1,912 @@
|
||||
# Issue Metrics
|
||||
|
||||
| Metric | Average | Median | 90th percentile |
|
||||
| --- | --- | --- | ---: |
|
||||
| Time to first response | 6 days, 8:09:03 | 1 day, 14:52:55 | 21 days, 21:21:10 |
|
||||
| Time to close | 10 days, 5:20:59 | 8 days, 2:01:25 | 24 days, 0:21:04 |
|
||||
|
||||
| Metric | Count |
|
||||
| --- | ---: |
|
||||
| Number of items that remain open | 134 |
|
||||
| Number of items closed | 760 |
|
||||
| Total number of items created | 894 |
|
||||
|
||||
| Title | URL | Time to first response | Time to close |
|
||||
| --- | --- | --- | --- |
|
||||
| After the recent updates, web fonts are blurry | https://github.com/zen-browser/desktop/issues/7160 | 7:52:59 | 1 day, 11:16:02 |
|
||||
| [Twilight 1.10.3] Many context menus have too much transparency | https://github.com/zen-browser/desktop/issues/7159 | 0:22:16 | 1 day, 12:39:30 |
|
||||
| Zen crashes when trying to access chrome://browser/content/browser.xhtml | https://github.com/zen-browser/desktop/issues/7158 | None | None |
|
||||
| Open network login page | https://github.com/zen-browser/desktop/issues/7157 | None | None |
|
||||
| Enabling HDR Causes Visual Artifact on UI Elements | https://github.com/zen-browser/desktop/issues/7155 | 10:29:19 | None |
|
||||
| Pinterest opening and working weirdly | https://github.com/zen-browser/desktop/issues/7153 | 12:49:28 | None |
|
||||
| Blocking "Override keyboard shortcuts" permission disables delete and backspace keys | https://github.com/zen-browser/desktop/issues/7150 | None | None |
|
||||
| Hovering over tabs now displays an x to close them | https://github.com/zen-browser/desktop/issues/7149 | 18:04:00 | 21:59:51 |
|
||||
| Sorry for what? | https://github.com/zen-browser/desktop/issues/7146 | 0:45:11 | 3:22:37 |
|
||||
| Simple tab group is locked loading in a new window | https://github.com/zen-browser/desktop/issues/7145 | 1 day, 20:18:06 | None |
|
||||
| Authentication on sites via a certificate (such as a Smart Card) broken on macOS since 1.10b | https://github.com/zen-browser/desktop/issues/7144 | None | None |
|
||||
| Browser flickers when using mission control | https://github.com/zen-browser/desktop/issues/7143 | 1:08:33 | None |
|
||||
| Workspace icons automatically pinned on Toolbar when removed from Sidebar | https://github.com/zen-browser/desktop/issues/7140 | None | None |
|
||||
| Mac OS Browser thinks there's one more tab open than there actually is | https://github.com/zen-browser/desktop/issues/7139 | None | None |
|
||||
| When using split view in incognito window, zen crashes, freezes after opening new tab & close tab. | https://github.com/zen-browser/desktop/issues/7136 | 1 day, 22:54:48 | None |
|
||||
| Problem with Context Menu and Pop-ups: Can Only Close with Escape | https://github.com/zen-browser/desktop/issues/7135 | None | None |
|
||||
| websites not loading ! | https://github.com/zen-browser/desktop/issues/7134 | 6:12:15 | None |
|
||||
| Twilight build auto-switching url from one workspace to another causes Zen to break | https://github.com/zen-browser/desktop/issues/7133 | 3:02:54 | 15:26:16 |
|
||||
| Web fonts are blurry with zen.view.experimental-rounded-view or GTK CSD on linux | https://github.com/zen-browser/desktop/issues/7132 | 3:25:04 | None |
|
||||
| Renamed pinned tab changes title upon loading, when unloading title changes back to previously set name | https://github.com/zen-browser/desktop/issues/7131 | None | None |
|
||||
| Open in split window in split window undefined behaviour | https://github.com/zen-browser/desktop/issues/7130 | None | None |
|
||||
| Close buttons on Mac positioned wrong when sidebar is collapsed | https://github.com/zen-browser/desktop/issues/7129 | None | None |
|
||||
| Inconsistent behaviour of middle click and right click -> new tab | https://github.com/zen-browser/desktop/issues/7128 | None | None |
|
||||
| Zen displayed as "Unknown App" in windows system media player | https://github.com/zen-browser/desktop/issues/7123 | 0:14:54 | None |
|
||||
| Search shortcuts are hardly usable with new URL bar popover | https://github.com/zen-browser/desktop/issues/7122 | None | 0:04:44 |
|
||||
| Dragging link from tab to same workspace in different window causes container indicator to show up | https://github.com/zen-browser/desktop/issues/7120 | None | None |
|
||||
| Pinned tab separator inconsistent width | https://github.com/zen-browser/desktop/issues/7119 | None | None |
|
||||
| Inconsistent spacing in compact modes | https://github.com/zen-browser/desktop/issues/7118 | None | None |
|
||||
| Sidebar/Tab Bar navigation buttons overflow | https://github.com/zen-browser/desktop/issues/7117 | None | None |
|
||||
| No default favicon for sites without Favicon | https://github.com/zen-browser/desktop/issues/7116 | 2 days, 18:03:49 | 3 days, 12:16:53 |
|
||||
| Text in modals are blank | https://github.com/zen-browser/desktop/issues/7115 | None | None |
|
||||
| Automatically leaving meetings when expanding a glance tab containing the meeting | https://github.com/zen-browser/desktop/issues/7114 | None | None |
|
||||
| Right clicking on VSCode running via Github Codespaces does not trigger the typical menu and only shows "Paste" | https://github.com/zen-browser/desktop/issues/7113 | 0:16:40 | 0:16:40 |
|
||||
| Dragging a tab to the edge of the sidebar detaches the tab from cursor | https://github.com/zen-browser/desktop/issues/7112 | None | None |
|
||||
| RAM usage spike | https://github.com/zen-browser/desktop/issues/7111 | 0:49:18 | 0:49:18 |
|
||||
| Default Browser issue | https://github.com/zen-browser/desktop/issues/7110 | 2 days, 20:45:37 | None |
|
||||
| Several problem with patch notes tab after update | https://github.com/zen-browser/desktop/issues/7109 | None | None |
|
||||
| Glance opens new window instead of glance | https://github.com/zen-browser/desktop/issues/7108 | None | None |
|
||||
| Floating sidebar is not kept open when cursor at the left-most position | https://github.com/zen-browser/desktop/issues/7107 | None | None |
|
||||
| Bookmark Bar persists when opening a bookmark from a folder | https://github.com/zen-browser/desktop/issues/7106 | None | None |
|
||||
| Pdf Printing doesn't have drawings in the right place | https://github.com/zen-browser/desktop/issues/7105 | 1:36:28 | 1:36:28 |
|
||||
| Zen crashes on right click on tab | https://github.com/zen-browser/desktop/issues/7104 | None | None |
|
||||
| Web Side Panel Issue | https://github.com/zen-browser/desktop/issues/7103 | None | None |
|
||||
| Bookmarks Menu Toolbar Keyboard Shortcut Opens Library, not List | https://github.com/zen-browser/desktop/issues/7102 | None | None |
|
||||
| Tab bar doesnt hide when all tabs closed | https://github.com/zen-browser/desktop/issues/7100 | 2:36:39 | None |
|
||||
| The media animation causes high CPU usage | https://github.com/zen-browser/desktop/issues/7099 | None | None |
|
||||
| Duplicate entry in Settings > Keyboard Shortcuts | https://github.com/zen-browser/desktop/issues/7098 | None | None |
|
||||
| Switch to Zen with low frame rate animation | https://github.com/zen-browser/desktop/issues/7097 | None | None |
|
||||
| Tab list still scrolls to top sometimes | https://github.com/zen-browser/desktop/issues/7096 | None | None |
|
||||
| Weird workspace scroll change behaviour with sidebar to the right | https://github.com/zen-browser/desktop/issues/7095 | None | None |
|
||||
| Top toolbar is shown when hovering the top side of the screen in "single toolbar" layout with "compact mode" | https://github.com/zen-browser/desktop/issues/7094 | 3:23:41 | None |
|
||||
| Workspace bottom indicator is not updated when scrolling the sidebar while another Zen window is focused | https://github.com/zen-browser/desktop/issues/7093 | None | None |
|
||||
| Keyboard shortcuts stop working in the keyboard shortcuts configuration page | https://github.com/zen-browser/desktop/issues/7092 | None | None |
|
||||
| Confusing case-insensitivity in the keyboard shortcuts configuration page | https://github.com/zen-browser/desktop/issues/7091 | None | None |
|
||||
| Broken keyboard shortcuts for compact mode | https://github.com/zen-browser/desktop/issues/7090 | 0:11:49 | 2 days, 10:19:52 |
|
||||
| UI glitch when glancing in split view | https://github.com/zen-browser/desktop/issues/7089 | 3:52:12 | 3:52:12 |
|
||||
| Scroll Freeze after drag-and-drop on laptop (TouchPad) | https://github.com/zen-browser/desktop/issues/7088 | None | None |
|
||||
| The sidebar shrinks too much when switching to compact mode while floating is enabled | https://github.com/zen-browser/desktop/issues/7087 | None | None |
|
||||
| Unable to define a Ctrl+Alt+Tab keyboard shortcut | https://github.com/zen-browser/desktop/issues/7086 | None | None |
|
||||
| WebPanel doesn't respect Multi-Account Containers proxy settings. | https://github.com/zen-browser/desktop/issues/7085 | None | None |
|
||||
| Certificate Manager does not work | https://github.com/zen-browser/desktop/issues/7083 | 18:44:46 | 23:16:08 |
|
||||
| Weird zooming and window placement issues on Windows | https://github.com/zen-browser/desktop/issues/7082 | None | None |
|
||||
| Default Translucency Not Working - Toolbar and Sidebar Colors Forced to Windows Theme | https://github.com/zen-browser/desktop/issues/7081 | None | None |
|
||||
| Browser Freezes When Expanding Toolbar Options Menu in Compact Window State | https://github.com/zen-browser/desktop/issues/7080 | None | None |
|
||||
| Workspaces working as tab groups and not as workspaces | https://github.com/zen-browser/desktop/issues/7079 | 0:09:06 | None |
|
||||
| Container Tabs dissappear when 'switch to workspace where container is set as default when opening container tabs' is enabled | https://github.com/zen-browser/desktop/issues/7078 | 3 days, 18:59:29 | None |
|
||||
| tab switcher is jumping 2-3 tabs ahead instead of the next tab | https://github.com/zen-browser/desktop/issues/7077 | None | None |
|
||||
| Some browser dialogs appear off-screen | https://github.com/zen-browser/desktop/issues/7076 | 1 day, 1:32:55 | None |
|
||||
| Mouse over floating sidebar prevents hide | https://github.com/zen-browser/desktop/issues/7075 | None | None |
|
||||
| CRX Installer Not working in Zen Browser. | https://github.com/zen-browser/desktop/issues/7074 | 2 days, 23:32:33 | 3 days, 2:39:52 |
|
||||
| Cannot resize native firefox sidebar when positioned on the right after restarting the browser | https://github.com/zen-browser/desktop/issues/7073 | None | None |
|
||||
| compact mode color bug | https://github.com/zen-browser/desktop/issues/7068 | 0:19:56 | 2:12:33 |
|
||||
| Unable to assign Cmd+Z for undo | https://github.com/zen-browser/desktop/issues/7067 | None | None |
|
||||
| "change theme colors" cannot be undone and breaks other theming features | https://github.com/zen-browser/desktop/issues/7066 | None | None |
|
||||
| Theme Color alpha hex functionality broken | https://github.com/zen-browser/desktop/issues/7065 | None | None |
|
||||
| Toolbar set to Hide, but intermittently get stuck unhidden | https://github.com/zen-browser/desktop/issues/7063 | None | None |
|
||||
| [Regression 1.8b+] Multiple tab issues regarding extensions | https://github.com/zen-browser/desktop/issues/7062 | 3 days, 9:25:56 | None |
|
||||
| Alt-Tab Behavior: Mouse Focus Interference | https://github.com/zen-browser/desktop/issues/7061 | None | None |
|
||||
| Sidebar icons misaligned in split view | https://github.com/zen-browser/desktop/issues/7060 | 2 days, 12:48:26 | None |
|
||||
| Is this window border line transparency effect(glitch?) an expected behavior? | https://github.com/zen-browser/desktop/issues/7059 | None | None |
|
||||
| Essentials tab with "messages.google.com", after browser restart, is now just an empty essentials tab. | https://github.com/zen-browser/desktop/issues/7058 | 0:35:22 | None |
|
||||
| 2FAS Extension problem - abnormal CPU usage in 1.9b - no problems on Firefox (REOPENED) | https://github.com/zen-browser/desktop/issues/7057 | 2:13:51 | 7:57:05 |
|
||||
| Cannot drag tabs in private mode | https://github.com/zen-browser/desktop/issues/7056 | 1:16:48 | 1 day, 11:09:47 |
|
||||
| Inconsistent/Incorrect behavior when using ctrl+enter from new tab addressbar | https://github.com/zen-browser/desktop/issues/7055 | None | None |
|
||||
| 1Password not connecting to desktop app | https://github.com/zen-browser/desktop/issues/7054 | 1:54:09 | 13:49:32 |
|
||||
| Welcome page after initial setup has absolute positioning for buttons | https://github.com/zen-browser/desktop/issues/7053 | None | None |
|
||||
| MacOS compact mode ignores mouse on traffic buttons and collapses the bar | https://github.com/zen-browser/desktop/issues/7052 | 0:18:46 | 0:18:46 |
|
||||
| URL/Search Bar misalignment | https://github.com/zen-browser/desktop/issues/7051 | 3 days, 11:31:03 | None |
|
||||
| Trying to export/share Rice softlocks the browser | https://github.com/zen-browser/desktop/issues/7049 | None | None |
|
||||
| Tabs and Essentials are being created in the same place | https://github.com/zen-browser/desktop/issues/7048 | 15:16:39 | None |
|
||||
| Gestures not working in Zen Browser | https://github.com/zen-browser/desktop/issues/7047 | None | None |
|
||||
| Text contrast in context menus is inadequate in default Light theme | https://github.com/zen-browser/desktop/issues/7046 | None | 0:10:12 |
|
||||
| Popup is cut in compact mode | https://github.com/zen-browser/desktop/issues/7045 | None | None |
|
||||
| App icon on the task bar disappears when personalizing toolbar seting the title bar visible | https://github.com/zen-browser/desktop/issues/7044 | None | None |
|
||||
| macOS passkeys not working on certain websites, such as Duo Authentication | https://github.com/zen-browser/desktop/issues/7043 | 17:48:19 | None |
|
||||
| Bookmarks in Toolbar disappearing when entering fullscreen | https://github.com/zen-browser/desktop/issues/7042 | 1 day, 0:15:33 | None |
|
||||
| blurry fonts on 32:9 aspect ratio | https://github.com/zen-browser/desktop/issues/7041 | 1:21:09 | 3 days, 13:30:02 |
|
||||
| iCloud Passwords extension broken | https://github.com/zen-browser/desktop/issues/7040 | 1 day, 20:47:39 | None |
|
||||
| Cmd + M to minimise doesn't work on 1.10.3b | https://github.com/zen-browser/desktop/issues/7039 | None | None |
|
||||
| Ram usage | https://github.com/zen-browser/desktop/issues/7038 | 1 day, 17:57:47 | 1 day, 19:52:42 |
|
||||
| Screen sharing is not working for calls on teams and google meet after the update | https://github.com/zen-browser/desktop/issues/7037 | None | None |
|
||||
| Zen Browser can not automatically update its self. | https://github.com/zen-browser/desktop/issues/7035 | None | None |
|
||||
| Bookmarks Toolbar "Always show" does not work | https://github.com/zen-browser/desktop/issues/7034 | None | None |
|
||||
| Bookmark title editing: Left/Right arrows trigger bookmark selection instead of text navigation | https://github.com/zen-browser/desktop/issues/7033 | None | None |
|
||||
| Ram usage | https://github.com/zen-browser/desktop/issues/7032 | 0:10:50 | 0:10:50 |
|
||||
| Tabs stuck and not clickable - suspect tab unload with popup dialog on tab close | https://github.com/zen-browser/desktop/issues/7031 | 1:06:39 | None |
|
||||
| Zen abruptly switches to unloaded tab If It has unsaved changes | https://github.com/zen-browser/desktop/issues/7030 | 2 days, 16:03:14 | None |
|
||||
| Enhance Tracking Protection icon shield does not work when present | https://github.com/zen-browser/desktop/issues/7029 | None | None |
|
||||
| URL Bar selection discarded upon floating | https://github.com/zen-browser/desktop/issues/7028 | None | None |
|
||||
| Glance's buttons are rendered above the sidebar | https://github.com/zen-browser/desktop/issues/7027 | None | None |
|
||||
| Browser gives no visual indication that a browser window is private | https://github.com/zen-browser/desktop/issues/7026 | None | None |
|
||||
| Not possible to use CTRL + F on a web panel | https://github.com/zen-browser/desktop/issues/7025 | 3 days, 20:07:32 | None |
|
||||
| Browser extensions no longer work in the web panel. | https://github.com/zen-browser/desktop/issues/7024 | None | None |
|
||||
| Installing mods overwrites all currently installed ones | https://github.com/zen-browser/desktop/issues/7022 | None | None |
|
||||
| Incorrect `MESA_SHADER_CACHE_DIR` | https://github.com/zen-browser/desktop/issues/7020 | None | None |
|
||||
| Firefox's screenshot tool exits unexpectedly when using change split tabs on hover | https://github.com/zen-browser/desktop/issues/7019 | 0:05:50 | None |
|
||||
| The name of the application displayed in the notification | https://github.com/zen-browser/desktop/issues/7018 | None | None |
|
||||
| Very high meory usage (Memory leak?) | https://github.com/zen-browser/desktop/issues/7017 | 21:15:37 | 21:15:37 |
|
||||
| Pinned extension icons move inside the web page when an extension reloads | https://github.com/zen-browser/desktop/issues/7016 | 0:24:01 | None |
|
||||
| Page screenshot buttons, `about:logins` and `Secure Site Not Available` page [seem to] use default accent color | https://github.com/zen-browser/desktop/issues/7015 | None | None |
|
||||
| Screenshots overlay out of place in split tabs view | https://github.com/zen-browser/desktop/issues/7014 | None | None |
|
||||
| Extension installation dialog is cut off screen | https://github.com/zen-browser/desktop/issues/7013 | None | None |
|
||||
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/7012 | None | 0:00:07 |
|
||||
| Youtube and Youtube Music seeking in Media player is not synced | https://github.com/zen-browser/desktop/issues/7011 | None | None |
|
||||
| New Tab Opens in Current Tab Instead | https://github.com/zen-browser/desktop/issues/7010 | None | None |
|
||||
| Tab close button clickable area smaller than hover-highlighted area | https://github.com/zen-browser/desktop/issues/7008 | None | None |
|
||||
| browser.tabs.searchclipboardfor.middleclick enabled by default only on Linux | https://github.com/zen-browser/desktop/issues/7007 | None | 0:02:06 |
|
||||
| Unloaded Pinned Tabs Turn Into Blank 'New Tab' After Reopening | https://github.com/zen-browser/desktop/issues/7006 | None | None |
|
||||
| Zooming with Cmd + Scroll Wheel Not Working on Mac | https://github.com/zen-browser/desktop/issues/7005 | None | None |
|
||||
| "zen.theme.border-radius" dosen't work on linux. | https://github.com/zen-browser/desktop/issues/7004 | None | None |
|
||||
| Shortcut key (ALT + C) not working as it shoud | https://github.com/zen-browser/desktop/issues/7003 | 0:31:34 | None |
|
||||
| The UI is overlapping and there is no adaptive feature | https://github.com/zen-browser/desktop/issues/7002 | 15:53:29 | None |
|
||||
| Ring.com can't play videos (missing codec) | https://github.com/zen-browser/desktop/issues/7001 | 0:35:50 | None |
|
||||
| Unwanted Connections, Transparency and Default Search Engine | https://github.com/zen-browser/desktop/issues/7000 | None | None |
|
||||
| workforcenow.adp.com doesn't prompt for passkey | https://github.com/zen-browser/desktop/issues/6999 | 0:05:36 | None |
|
||||
| [Unload] Unloading/Closing (pinned) a playing YT Music tab breaks it and keeps the tab alive in the background | https://github.com/zen-browser/desktop/issues/6998 | None | 0:02:20 |
|
||||
| Slow New Window Opening | https://github.com/zen-browser/desktop/issues/6997 | None | None |
|
||||
| Transparent Url bar's background when clicking Ctrl+T while playing a video in fullscreen mode | https://github.com/zen-browser/desktop/issues/6996 | None | None |
|
||||
| Media Playback Continues After Unloading a Pinned Tab | https://github.com/zen-browser/desktop/issues/6995 | 0:09:56 | 4 days, 2:46:22 |
|
||||
| Publisher on the install registry shows `Mozilla` | https://github.com/zen-browser/desktop/issues/6994 | None | 16:35:26 |
|
||||
| Moving `Bookmark toolbar items` to sidebar && Closing and reopening `Customize toolbar…` expands bookmarks in `Customize toolbar…` | https://github.com/zen-browser/desktop/issues/6993 | None | None |
|
||||
| Unloading a Pinned Tab Does Not Correctly Focus the New Tab | https://github.com/zen-browser/desktop/issues/6992 | None | None |
|
||||
| Unexplained Black Background in full screen mode | https://github.com/zen-browser/desktop/issues/6991 | 3 days, 0:40:29 | 3 days, 4:47:09 |
|
||||
| Missing Menu Bar, but Menu Bar Button Present | https://github.com/zen-browser/desktop/issues/6990 | None | None |
|
||||
| When opening a external link from VS Code editor, the maximize, minimize, and close buttons are shown on the left corner instead of the right corner | https://github.com/zen-browser/desktop/issues/6989 | None | None |
|
||||
| Please reopen my issues | https://github.com/zen-browser/desktop/issues/6988 | None | 0:06:17 |
|
||||
| Right-Click (on a tab) Context Menu: Keyboard Shortcuts Require Enter to Activate The Shortcut | https://github.com/zen-browser/desktop/issues/6987 | None | None |
|
||||
| Search bar not autofocused on startup when zen.urlbar.replace-newtab is false | https://github.com/zen-browser/desktop/issues/6986 | None | None |
|
||||
| Zen crashes on right click on tab | https://github.com/zen-browser/desktop/issues/6985 | None | 0:00:13 |
|
||||
| Can't skip revamped welcome page | https://github.com/zen-browser/desktop/issues/6983 | 2 days, 6:25:43 | None |
|
||||
| Pinned tabs aren't restored properly when multiple windows are open | https://github.com/zen-browser/desktop/issues/6982 | 1:45:51 | None |
|
||||
| Tab synchronisation across different devices | https://github.com/zen-browser/desktop/issues/6981 | 1:06:34 | None |
|
||||
| Mac OS Browser thinks there's one more tab open than there actually is | https://github.com/zen-browser/desktop/issues/6980 | 1 day, 20:08:41 | 1 day, 20:08:41 |
|
||||
| Scroll bar can't be scrolled from the right edge of the window (Windows) | https://github.com/zen-browser/desktop/issues/6979 | 0:29:46 | None |
|
||||
| Close tab buttons slightly cut off when in compact mode (Windows) | https://github.com/zen-browser/desktop/issues/6978 | 0:32:01 | None |
|
||||
| "Change theme color" clears previous hex values | https://github.com/zen-browser/desktop/issues/6977 | None | None |
|
||||
| Mouse does not become pointer on hover | https://github.com/zen-browser/desktop/issues/6976 | None | None |
|
||||
| Change theme color wipes out previous hex codes | https://github.com/zen-browser/desktop/issues/6975 | None | 0:00:57 |
|
||||
| Letterboxing adds +1 to width when not in compact mode and sidebar is resized (e.g., 1400 → 1401) | https://github.com/zen-browser/desktop/issues/6974 | None | None |
|
||||
| Unable to log in to Pocket | https://github.com/zen-browser/desktop/issues/6973 | None | None |
|
||||
| Failing to drag tab for split window when native sidebar is on the right | https://github.com/zen-browser/desktop/issues/6972 | None | None |
|
||||
| Windows system theme switching does not work | https://github.com/zen-browser/desktop/issues/6971 | 3 days, 1:44:45 | None |
|
||||
| Compact mode sidebar sticking | https://github.com/zen-browser/desktop/issues/6970 | None | 1 day, 12:33:48 |
|
||||
| Failing to drag tab for split window when native sidebar is on the right | https://github.com/zen-browser/desktop/issues/6969 | None | 0:05:51 |
|
||||
| closing tab opened from essentials will leads to blank window | https://github.com/zen-browser/desktop/issues/6968 | None | None |
|
||||
| Blank dropdown in bookmark manager | https://github.com/zen-browser/desktop/issues/6967 | 4 days, 0:24:47 | None |
|
||||
| Split tab groups can break your browser in private windows | https://github.com/zen-browser/desktop/issues/6966 | None | None |
|
||||
| Theme Color alpha hex functionality broken | https://github.com/zen-browser/desktop/issues/6965 | 2:52:38 | None |
|
||||
| High GPU/CPU usage on some youtube videos | https://github.com/zen-browser/desktop/issues/6964 | None | None |
|
||||
| workforcenow.adp.com doesn't prompt for passkey | https://github.com/zen-browser/desktop/issues/6963 | 0:14:47 | 0:14:47 |
|
||||
| Split tab group favicon missaligned | https://github.com/zen-browser/desktop/issues/6962 | 0:01:05 | 4:14:59 |
|
||||
| cmd + m doesn’t work anymore on 1.10.3b | https://github.com/zen-browser/desktop/issues/6961 | 0:00:59 | 0:01:00 |
|
||||
| Windows system theme switching does not work | https://github.com/zen-browser/desktop/issues/6960 | 0:01:11 | 0:01:12 |
|
||||
| Zen applies themes incorectly | https://github.com/zen-browser/desktop/issues/6959 | 0:01:45 | 0:02:15 |
|
||||
| test | https://github.com/zen-browser/desktop/issues/6958 | None | 0:04:09 |
|
||||
| URL in email; click to open browser | https://github.com/zen-browser/desktop/issues/6954 | 1:17:19 | 1:17:20 |
|
||||
| Google Drive upload limited to 20MBit/s | https://github.com/zen-browser/desktop/issues/6953 | 2:42:08 | 2:42:09 |
|
||||
| Using File, Edit etc buttons brings up the sidebar | https://github.com/zen-browser/desktop/issues/6952 | 4:37:18 | 4:37:19 |
|
||||
| cmd + m broke | https://github.com/zen-browser/desktop/issues/6951 | 4:42:17 | 4:42:18 |
|
||||
| Bug: Search bar breaks UI above tab bar | https://github.com/zen-browser/desktop/issues/6947 | 10:39:20 | 10:39:21 |
|
||||
| Clicking non functional for some buttons on websites | https://github.com/zen-browser/desktop/issues/6945 | 13:03:39 | 13:03:40 |
|
||||
| High RAM usage with WhatsApp Web | https://github.com/zen-browser/desktop/issues/6944 | 13:09:03 | 13:09:03 |
|
||||
| Unloading a Pinned Tab Does Not Correctly Focus the New Tab | https://github.com/zen-browser/desktop/issues/6943 | 13:25:58 | 13:25:59 |
|
||||
| Media Playback Continues After Unloading a Pinned Tab | https://github.com/zen-browser/desktop/issues/6942 | 13:28:38 | 13:28:38 |
|
||||
| Essential and Pinned tabs icons not loading on startup | https://github.com/zen-browser/desktop/issues/6941 | 14:53:33 | 14:53:33 |
|
||||
| Site with Login Popup dialog doesnt work | https://github.com/zen-browser/desktop/issues/6939 | 16:22:37 | 16:22:38 |
|
||||
| closing tab opened from essentials will leads to blank window | https://github.com/zen-browser/desktop/issues/6938 | 19:53:55 | 19:53:56 |
|
||||
| Keyboard Shortcut Issue When Switching Languages in Zen | https://github.com/zen-browser/desktop/issues/6936 | 21:30:24 | 21:30:25 |
|
||||
| Live Stream Performance Issues: Douyu Live Room Loads Slowly and Douyin Live Freezes Every 3 Minutes | https://github.com/zen-browser/desktop/issues/6935 | 22:35:15 | 22:35:15 |
|
||||
| Any letter opens the control find box(ctrl + f) | https://github.com/zen-browser/desktop/issues/6934 | 0:51:47 | 23:15:00 |
|
||||
| Tab-box overflows into adjacent workspace | https://github.com/zen-browser/desktop/issues/6933 | 1 day, 1:24:50 | 1 day, 1:24:50 |
|
||||
| Zen applies themes incorectly | https://github.com/zen-browser/desktop/issues/6931 | 1 day, 2:58:17 | 1 day, 2:59:24 |
|
||||
| windows onboarding "idle" chewing 30-40% cpu | https://github.com/zen-browser/desktop/issues/6930 | 1 day, 3:04:32 | 1 day, 3:04:32 |
|
||||
| Add to Essentials - option disappears | https://github.com/zen-browser/desktop/issues/6927 | 1 day, 4:48:22 | 1 day, 4:48:22 |
|
||||
| Computer overheating | https://github.com/zen-browser/desktop/issues/6926 | 4:14:21 | 1 day, 5:46:28 |
|
||||
| File Handler Dialog not opening in Archlinux (Hyprland) | https://github.com/zen-browser/desktop/issues/6925 | 0:55:53 | 1 day, 5:58:11 |
|
||||
| Repeated Screen Sharing Permission Prompt Despite Existing Approval for Google Meet | https://github.com/zen-browser/desktop/issues/6924 | 1 day, 6:17:41 | 1 day, 6:17:41 |
|
||||
| Bookmark title editing: Left/Right arrows trigger bookmark selection instead of text navigation | https://github.com/zen-browser/desktop/issues/6923 | 1 day, 6:37:50 | 1 day, 6:37:51 |
|
||||
| Search Bar selection discarded upon floating | https://github.com/zen-browser/desktop/issues/6922 | 1 day, 6:51:59 | 1 day, 6:52:00 |
|
||||
| A new media player starts playing before actual youtube video starts | https://github.com/zen-browser/desktop/issues/6920 | 3:22:39 | 1 day, 7:47:32 |
|
||||
| Splitting a non-pinned tab with a pinned tabs pins it | https://github.com/zen-browser/desktop/issues/6918 | 1 day, 8:58:13 | 1 day, 8:58:14 |
|
||||
| Default Zen Homepage not accessible | https://github.com/zen-browser/desktop/issues/6915 | 5:02:51 | 7:20:33 |
|
||||
| The toolbar layout gets disrupted when I switch between browser layouts. | https://github.com/zen-browser/desktop/issues/6914 | 1 day, 13:03:34 | 1 day, 13:03:35 |
|
||||
| Mouse Back button often switches to different workspace | https://github.com/zen-browser/desktop/issues/6913 | 8:00:54 | 1 day, 13:12:41 |
|
||||
| New tab does not work properly when typing Chinese. | https://github.com/zen-browser/desktop/issues/6912 | 1 day, 13:33:11 | 1 day, 13:33:12 |
|
||||
| Add-ons Affecting Browser Performance and Behavior | https://github.com/zen-browser/desktop/issues/6911 | 1 day, 13:38:12 | 1 day, 13:38:13 |
|
||||
| Essentials and pinned tabs go blank (see image) | https://github.com/zen-browser/desktop/issues/6907 | 16:37:51 | 1 day, 15:54:52 |
|
||||
| Containerized Tabs Disappearing upon Switching Workspaces | https://github.com/zen-browser/desktop/issues/6904 | 0:21:59 | 2:15:45 |
|
||||
| Split tab breaks when placed in a tab group | https://github.com/zen-browser/desktop/issues/6903 | 1:11:36 | 1 day, 18:12:59 |
|
||||
| omega long loading times in www.icloud.lt | https://github.com/zen-browser/desktop/issues/6902 | 1 day, 11:09:34 | 12:55:47 |
|
||||
| whenever i do ctrl + tab to move between different pages while in compact mode ... i got the side bar pop up for 1-2 seconds... which is not helpful or logical | https://github.com/zen-browser/desktop/issues/6901 | 0:33:37 | 1:13:20 |
|
||||
| autofill just fill password without user and vice versa | https://github.com/zen-browser/desktop/issues/6897 | 1 day, 22:28:43 | 1 day, 22:28:43 |
|
||||
| Spotify Music Problem | https://github.com/zen-browser/desktop/issues/6895 | 0:28:47 | 2:52:23 |
|
||||
| [twilight] downloads icon not aligned to webpage border | https://github.com/zen-browser/desktop/issues/6894 | 0:45:03 | 1 day, 23:31:34 |
|
||||
| Icon Rendering Incorrectly in KDE Plasma 6 Wayland Window Switcher | https://github.com/zen-browser/desktop/issues/6892 | 7:33:56 | 2 days, 0:31:16 |
|
||||
| Unable to open Zen on an m1 pro | https://github.com/zen-browser/desktop/issues/6890 | 2 days, 2:29:43 | 2 days, 2:29:43 |
|
||||
| Laggy keyboard Input | https://github.com/zen-browser/desktop/issues/6889 | 2 days, 2:31:48 | 2 days, 2:31:48 |
|
||||
| Glitch for smaller windows heights | https://github.com/zen-browser/desktop/issues/6887 | 2 days, 3:49:40 | 2 days, 3:49:41 |
|
||||
| websites not loading ! | https://github.com/zen-browser/desktop/issues/6886 | 1 day, 22:18:25 | 2 days, 4:04:00 |
|
||||
| This site can’t provide a secure connection zen-browser.app sent an invalid response. ERR_SSL_PROTOCOL_ERROR | https://github.com/zen-browser/desktop/issues/6885 | 0:09:18 | 22:35:10 |
|
||||
| Muted video playing in a pinned tab prevent MacOS from sleeping | https://github.com/zen-browser/desktop/issues/6884 | 2:58:48 | 4:19:38 |
|
||||
| [twilight] random redirect to another semi-related website | https://github.com/zen-browser/desktop/issues/6883 | 0:41:41 | 1:20:40 |
|
||||
| [twilight] Essentials and workspace emoji are translucent and not in full colour | https://github.com/zen-browser/desktop/issues/6882 | 2 days, 4:52:41 | 2 days, 4:52:41 |
|
||||
| Toolobar Theming doesn't fully apply | https://github.com/zen-browser/desktop/issues/6881 | 7:13:07 | 23:34:52 |
|
||||
| High GPU/CPU usage on some youtube videos | https://github.com/zen-browser/desktop/issues/6880 | 6:07:33 | 2 days, 6:07:27 |
|
||||
| cookie related isssue | https://github.com/zen-browser/desktop/issues/6879 | 2 days, 6:24:50 | 2 days, 6:24:50 |
|
||||
| The "add extension" button does not appear on small screens | https://github.com/zen-browser/desktop/issues/6877 | 2 days, 9:33:17 | 2 days, 9:33:17 |
|
||||
| Opening new tab in a split tab causes them to disappear. | https://github.com/zen-browser/desktop/issues/6876 | 2 days, 11:09:48 | 2 days, 11:09:48 |
|
||||
| Super Url Bar | https://github.com/zen-browser/desktop/issues/6874 | 1:33:49 | 2 days, 14:28:38 |
|
||||
| On launch, will open first tab in tab list (can be inconsistent, not sure of exact trigger) | https://github.com/zen-browser/desktop/issues/6873 | 6:07:49 | 2 days, 16:35:57 |
|
||||
| Minor uneven UI spacing between essential tabs | https://github.com/zen-browser/desktop/issues/6871 | 2 days, 17:33:23 | 2 days, 17:33:23 |
|
||||
| Text blurry | https://github.com/zen-browser/desktop/issues/6870 | 2 days, 17:44:41 | 2 days, 17:44:42 |
|
||||
| Option "Open links in tabs instead of new windows" unchecked after restart browser | https://github.com/zen-browser/desktop/issues/6869 | 2 days, 18:08:58 | 2 days, 18:08:59 |
|
||||
| KeepassXC is added but i cant link my database | https://github.com/zen-browser/desktop/issues/6868 | 21:32:29 | 1 day, 0:11:31 |
|
||||
| Extensions do not open when no tabs are open | https://github.com/zen-browser/desktop/issues/6866 | 1:10:21 | 2 days, 22:06:54 |
|
||||
| Split favicon bug | https://github.com/zen-browser/desktop/issues/6864 | 2 days, 22:37:00 | 2 days, 22:37:01 |
|
||||
| Icon not visible when playing audio | https://github.com/zen-browser/desktop/issues/6863 | 1 day, 1:04:41 | 2 days, 22:56:26 |
|
||||
| Increased ram usage fro just 4-5 tabs | https://github.com/zen-browser/desktop/issues/6862 | 2 days, 22:59:53 | 2 days, 22:59:54 |
|
||||
| Screen sharing is not working on newer Macbook | https://github.com/zen-browser/desktop/issues/6861 | 2 days, 23:15:15 | 2 days, 23:15:15 |
|
||||
| Screen Sharing Malfunction in Google Meet (Windows) | https://github.com/zen-browser/desktop/issues/6860 | 2 days, 23:36:47 | 2 days, 23:36:47 |
|
||||
| "Customize Toolbar" Menu breaks when sidebar is at minimum width | https://github.com/zen-browser/desktop/issues/6859 | 3 days, 0:16:52 | 3 days, 0:16:52 |
|
||||
| Split tabs breaking when opening a glance window | https://github.com/zen-browser/desktop/issues/6858 | 3 days, 0:17:15 | 3 days, 0:17:15 |
|
||||
| Compact mode adds padding on the left misaligning icons in collapsed sidebar | https://github.com/zen-browser/desktop/issues/6857 | None | 0:08:37 |
|
||||
| Flickering unusable menus if `widget.wayland.fractional-scale.enabled` is enabled | https://github.com/zen-browser/desktop/issues/6856 | 3 days, 0:24:24 | 3 days, 0:24:24 |
|
||||
| Sidebar/TabBar too small on `multiple toolbar`, but right size in `single toolbars` mode - 1.10.2b (Firefox 136.0.3) (64-bit) | https://github.com/zen-browser/desktop/issues/6855 | 0:16:27 | 3 days, 1:18:50 |
|
||||
| extension downloadhelper | https://github.com/zen-browser/desktop/issues/6854 | 3 days, 1:31:24 | 3 days, 1:31:24 |
|
||||
| Can only interact with 1 tab when split | https://github.com/zen-browser/desktop/issues/6851 | 3 days, 4:17:12 | 3 days, 4:17:13 |
|
||||
| Cannot share screen on MacOS | https://github.com/zen-browser/desktop/issues/6850 | 12:46:43 | 3 days, 4:22:22 |
|
||||
| Mouse Cursor doesnt dissapear when watching Fullscreen Youtube Video | https://github.com/zen-browser/desktop/issues/6849 | 3 days, 4:35:46 | 3 days, 4:35:46 |
|
||||
| "ALT + C" shortcut key bug has not fixed in 1.10.2b | https://github.com/zen-browser/desktop/issues/6847 | 0:19:13 | 2:19:17 |
|
||||
| Tab bar doesnt hide when all tabs closed | https://github.com/zen-browser/desktop/issues/6846 | 1:11:00 | 3 days, 6:06:22 |
|
||||
| Issue with hidden sidebar on desktop with margins. | https://github.com/zen-browser/desktop/issues/6845 | 3 days, 6:26:39 | 3 days, 6:26:39 |
|
||||
| Google meet is not granted permissions for the first few seconds. | https://github.com/zen-browser/desktop/issues/6844 | 2:23:20 | 3 days, 6:55:39 |
|
||||
| Google meet will kick out of meeting on switching to another tab | https://github.com/zen-browser/desktop/issues/6843 | 2:29:00 | 3 days, 7:00:24 |
|
||||
| Can't click popup window javascript:setopenerValue | https://github.com/zen-browser/desktop/issues/6842 | 3 days, 8:03:52 | 3 days, 8:03:53 |
|
||||
| [1.10.1b] Focusing and Unfocusing out of split view has janky window resizing and rendering delays | https://github.com/zen-browser/desktop/issues/6841 | 3 days, 8:37:54 | 3 days, 8:37:54 |
|
||||
| [Twilight 1.10.2] Brief black flash when switching workspaces. | https://github.com/zen-browser/desktop/issues/6839 | None | 0:55:54 |
|
||||
| Slow New Window Opening | https://github.com/zen-browser/desktop/issues/6838 | 0:03:51 | 3 days, 9:31:19 |
|
||||
| Minimizing Full Screen Video Players make the toolbar temp pop up and slide in | https://github.com/zen-browser/desktop/issues/6836 | 3 days, 11:24:59 | 3 days, 11:24:59 |
|
||||
| window alert is hidden behind other split pane | https://github.com/zen-browser/desktop/issues/6832 | 3 days, 17:35:05 | 3 days, 17:35:06 |
|
||||
| Compact mode sidebar sticking | https://github.com/zen-browser/desktop/issues/6831 | 3 days, 17:39:13 | 3 days, 17:39:13 |
|
||||
| Upscayl site does not work properly | https://github.com/zen-browser/desktop/issues/6830 | 3 days, 18:07:45 | 3 days, 18:07:46 |
|
||||
| Unremovable duplicate workspace icon | https://github.com/zen-browser/desktop/issues/6829 | 3 days, 19:38:34 | 3 days, 19:38:35 |
|
||||
| Bookmarks Toolbar "Always show" does not work | https://github.com/zen-browser/desktop/issues/6828 | 2 days, 0:52:10 | 3 days, 20:14:50 |
|
||||
| Pined & Essential Tabs don't unload | https://github.com/zen-browser/desktop/issues/6827 | 3 days, 23:26:09 | 3 days, 23:26:10 |
|
||||
| Entire zen window transparent | https://github.com/zen-browser/desktop/issues/6825 | None | 20:47:40 |
|
||||
| Duplicate/duplicating a split tab causes erratic tab movements | https://github.com/zen-browser/desktop/issues/6824 | 3 days, 23:44:29 | 3 days, 23:44:29 |
|
||||
| "Full screen" item can be interacted with inside "Customise Toolbar..." Menu which breaks it | https://github.com/zen-browser/desktop/issues/6822 | 4 days, 0:54:03 | 4 days, 0:54:04 |
|
||||
| When Web Panel is open split tab movement indicators do not display correctly | https://github.com/zen-browser/desktop/issues/6819 | 4 days, 1:28:54 | 4 days, 1:28:55 |
|
||||
| When Web Panel is open Vertical Tab Splits can't be resized | https://github.com/zen-browser/desktop/issues/6817 | 16:18:30 | 4 days, 1:42:11 |
|
||||
| Anthropic's Claude freezes only on Zen browser | https://github.com/zen-browser/desktop/issues/6816 | 1 day, 6:43:57 | 4 days, 1:48:02 |
|
||||
| Cursor Auto-Highlight on Ctrl+Tab Disrupts Tab Cycling | https://github.com/zen-browser/desktop/issues/6815 | 4 days, 1:59:18 | 4 days, 1:59:19 |
|
||||
| Disabling "Use workspace colors as primary color" does nothing | https://github.com/zen-browser/desktop/issues/6812 | 4 days, 2:25:50 | 4 days, 2:25:51 |
|
||||
| Sites within WebPanel behaves wrong if navigator API is spoofed vie extension | https://github.com/zen-browser/desktop/issues/6811 | 4 days, 2:41:39 | 4 days, 2:41:40 |
|
||||
| When removing an extension, confirmation message has a mistake | https://github.com/zen-browser/desktop/issues/6810 | 4 days, 3:08:04 | 4 days, 3:08:04 |
|
||||
| Zen comes pre-installed with an English (United States) dictionary which can't be removed | https://github.com/zen-browser/desktop/issues/6809 | 4 days, 3:29:07 | 4 days, 3:29:07 |
|
||||
| UI bug: Responsive Design Mode reload notification being obscured by music player | https://github.com/zen-browser/desktop/issues/6808 | 4 days, 4:28:07 | 4 days, 4:28:07 |
|
||||
| Placing the "Zoom Controls" item in the Top Item Row of the Side Toolbar causes zoom indicator to not appear. | https://github.com/zen-browser/desktop/issues/6807 | 4 days, 4:37:37 | 4 days, 4:37:37 |
|
||||
| While in the "Customize Toolbar..." Menu the maximise window button is greyed out and not usable | https://github.com/zen-browser/desktop/issues/6806 | 4 days, 5:01:40 | 4 days, 5:01:40 |
|
||||
| Placing a Large Item as the first item in the Top Item Row of the Side Toolbar breaks entire Side Toolbar when in Collapsed Toolbar Layout | https://github.com/zen-browser/desktop/issues/6805 | 4 days, 5:38:36 | 4 days, 5:38:37 |
|
||||
| Top item row in Side Toolbar not aligned with items in Top Toolbar when using Collapsed Toolbar | https://github.com/zen-browser/desktop/issues/6804 | 2:30:37 | 4 days, 6:01:27 |
|
||||
| Toolbar with a lot of items can break single toolbar | https://github.com/zen-browser/desktop/issues/6803 | 4 days, 6:51:09 | 4 days, 6:51:09 |
|
||||
| Zen Webpanel (Sidebar) does not move | https://github.com/zen-browser/desktop/issues/6802 | 4 days, 6:56:53 | 4 days, 6:56:53 |
|
||||
| [Twilight 1.10.1t] All tabs are loading after update | https://github.com/zen-browser/desktop/issues/6801 | 0:08:03 | 21:25:15 |
|
||||
| Side flap bug | https://github.com/zen-browser/desktop/issues/6800 | None | 0:00:08 |
|
||||
| Pinned tabs glance does not reset | https://github.com/zen-browser/desktop/issues/6799 | 0:06:08 | 4 days, 9:00:07 |
|
||||
| [Twilight 1.10.1t] Last selected tab not respected if restoring split view group on launch | https://github.com/zen-browser/desktop/issues/6798 | None | 3 days, 5:15:16 |
|
||||
| [Twilight 1.10.1] Switching workspaces is not as fluid as before with a brief black flash when moving to new workspace. | https://github.com/zen-browser/desktop/issues/6797 | None | 1 day, 2:14:58 |
|
||||
| Theme not correctly working/resetting when switching workspace | https://github.com/zen-browser/desktop/issues/6796 | 4 days, 11:30:51 | 4 days, 11:30:51 |
|
||||
| Zen Browser Freeze When Downloading | https://github.com/zen-browser/desktop/issues/6795 | 4 days, 11:54:20 | 4 days, 11:54:21 |
|
||||
| Default Translucency Not Working - Toolbar and Sidebar Colors Forced to Windows Theme | https://github.com/zen-browser/desktop/issues/6794 | 4 days, 13:11:15 | 4 days, 13:11:16 |
|
||||
| Invisible Floating Bar | https://github.com/zen-browser/desktop/issues/6792 | None | 22:04:52 |
|
||||
| Unable to log in to Pocket | https://github.com/zen-browser/desktop/issues/6790 | 4 days, 17:42:50 | 4 days, 17:42:51 |
|
||||
| Workspaces working as tab groups and not as workspaces | https://github.com/zen-browser/desktop/issues/6789 | 4:18:48 | 4 days, 17:46:34 |
|
||||
| [Privacy] Unwanted Connections, Transparency and Default Search Engine | https://github.com/zen-browser/desktop/issues/6787 | 4 days, 20:40:43 | 4 days, 20:40:43 |
|
||||
| glance in Google drive | https://github.com/zen-browser/desktop/issues/6785 | 4 days, 22:23:09 | 4 days, 22:23:10 |
|
||||
| Winget adds desktop shortcut | https://github.com/zen-browser/desktop/issues/6784 | 0:22:29 | 4 days, 22:41:24 |
|
||||
| Theme Color alpha hex functionality broken | https://github.com/zen-browser/desktop/issues/6783 | 4 days, 6:08:04 | 5 days, 0:00:15 |
|
||||
| Kernel panics on macOS | https://github.com/zen-browser/desktop/issues/6781 | 4:00:11 | 5 days, 1:16:46 |
|
||||
| workforcenow.adp.com doesn't prompt for passkey | https://github.com/zen-browser/desktop/issues/6780 | 5 days, 1:58:56 | 5 days, 1:58:56 |
|
||||
| macOS Title Bar reg/yellow/green Buttons Are Colorless | https://github.com/zen-browser/desktop/issues/6776 | 0:12:16 | 5:53:54 |
|
||||
| Cant login to netflix | https://github.com/zen-browser/desktop/issues/6773 | 1:34:11 | 11:31:40 |
|
||||
| Tab unloader disregards preferences on unsaved tabs | https://github.com/zen-browser/desktop/issues/6770 | 5 days, 17:40:09 | 5 days, 17:40:09 |
|
||||
| Inconsistent sizes for bottom icons | https://github.com/zen-browser/desktop/issues/6769 | 5 days, 18:00:19 | 5 days, 18:00:20 |
|
||||
| Blank Screen Insted of Home screen | https://github.com/zen-browser/desktop/issues/6768 | 13:18:07 | 5 days, 18:57:14 |
|
||||
| Pin syncing on new devices | https://github.com/zen-browser/desktop/issues/6767 | 4 days, 3:54:28 | 5 days, 19:11:28 |
|
||||
| zen.mediacontrols.enabled doesn't appear in about:config | https://github.com/zen-browser/desktop/issues/6766 | 8:19:56 | 11:30:57 |
|
||||
| Address bar closes when switching input language with Cmd+Space on Wayland (Ubuntu) | https://github.com/zen-browser/desktop/issues/6765 | 1 day, 6:03:22 | 5 days, 20:53:14 |
|
||||
| New tab overlay hides when CTRL key is pressed | https://github.com/zen-browser/desktop/issues/6764 | 21:36:14 | 5 days, 21:13:53 |
|
||||
| New Tab Button | Error | https://github.com/zen-browser/desktop/issues/6762 | 16:35:56 | 21:18:08 |
|
||||
| Extensions doesn't load automatically | https://github.com/zen-browser/desktop/issues/6760 | 5 days, 22:22:05 | 5 days, 22:22:06 |
|
||||
| PowerToys Run still not working correctly (web search) | https://github.com/zen-browser/desktop/issues/6759 | 6 days, 0:37:43 | 6 days, 0:37:44 |
|
||||
| URL which beging with HTTPS Glace does not recognize | https://github.com/zen-browser/desktop/issues/6758 | 6 days, 0:46:54 | 6 days, 0:46:54 |
|
||||
| opening external files and links | https://github.com/zen-browser/desktop/issues/6757 | 6 days, 1:30:57 | 6 days, 1:30:58 |
|
||||
| editing pdfs do not export correctly | https://github.com/zen-browser/desktop/issues/6756 | 6 days, 1:32:26 | 6 days, 1:32:27 |
|
||||
| spotify can't play songs | https://github.com/zen-browser/desktop/issues/6755 | 1:46:04 | 2:43:09 |
|
||||
| Scrolling seems to be lagging back again in `v1.10.1b` while the browser rounded corner was disabled | https://github.com/zen-browser/desktop/issues/6754 | 6 days, 2:13:52 | 6 days, 2:13:53 |
|
||||
| Can't install mods | https://github.com/zen-browser/desktop/issues/6752 | 1 day, 10:42:01 | 6 days, 2:50:15 |
|
||||
| Ctrl-Q closes current tab before exit | https://github.com/zen-browser/desktop/issues/6751 | 6 days, 3:34:38 | 6 days, 3:34:38 |
|
||||
| Extensions spilling out of the sidebar | https://github.com/zen-browser/desktop/issues/6750 | 5:04:56 | 6 days, 4:23:46 |
|
||||
| heylogin popup empty | https://github.com/zen-browser/desktop/issues/6749 | None | 1 day, 8:42:50 |
|
||||
| The pip option often fails after a reboot | https://github.com/zen-browser/desktop/issues/6748 | 6 days, 4:59:02 | 6 days, 4:59:02 |
|
||||
| Movie Player error 6007-1001-3102: Please use an updated version of your browser or use another device | https://github.com/zen-browser/desktop/issues/6747 | None | 2:09:47 |
|
||||
| Zen crashes on right click on tab | https://github.com/zen-browser/desktop/issues/6746 | 1:10:39 | 6 days, 5:37:54 |
|
||||
| It would be useful to have a Restore/Reset icon next to changed keyboard shortcuts. | https://github.com/zen-browser/desktop/issues/6744 | 6 days, 5:49:25 | 6 days, 5:49:26 |
|
||||
| Opening the settings page not selecting the unloaded tab | https://github.com/zen-browser/desktop/issues/6743 | 6 days, 7:14:48 | 6 days, 7:14:49 |
|
||||
| Pinned Essentials clipping thorugh Workspace/Tabs area in Compact Mode | https://github.com/zen-browser/desktop/issues/6741 | 6 days, 9:36:36 | 6 days, 9:36:37 |
|
||||
| split with essentials not working | https://github.com/zen-browser/desktop/issues/6739 | 6 days, 16:29:52 | 6 days, 16:29:53 |
|
||||
| Media player music animation should respect animation accessibility settings | https://github.com/zen-browser/desktop/issues/6737 | 6 days, 17:23:48 | 6 days, 17:23:49 |
|
||||
| Unable to swipe through workspaces. | https://github.com/zen-browser/desktop/issues/6735 | 6 days, 19:53:12 | 6 days, 19:53:12 |
|
||||
| Automatically leaving meetings when expanding a glance tab containing the meeting | https://github.com/zen-browser/desktop/issues/6734 | 1 day, 15:01:01 | 6 days, 21:10:19 |
|
||||
| Zen crashes my Computer completely | https://github.com/zen-browser/desktop/issues/6732 | 3:19:38 | 6 days, 22:54:38 |
|
||||
| Tab bar width issues | https://github.com/zen-browser/desktop/issues/6730 | 6 days, 23:26:00 | 6 days, 23:26:01 |
|
||||
| Transparency no longer works with the 1.10.1b update on Linux | https://github.com/zen-browser/desktop/issues/6729 | 0:00:56 | 7 days, 0:06:00 |
|
||||
| Issues with css live edit | https://github.com/zen-browser/desktop/issues/6728 | 7 days, 0:43:26 | 7 days, 0:43:27 |
|
||||
| corner case: Media Player handling long media names | https://github.com/zen-browser/desktop/issues/6727 | 7 days, 0:46:48 | 7 days, 0:46:49 |
|
||||
| Vimium tab navigation broken since 1.9b | https://github.com/zen-browser/desktop/issues/6726 | 7 days, 0:50:09 | 7 days, 0:50:09 |
|
||||
| When i open zen it only shows black screen home page | https://github.com/zen-browser/desktop/issues/6725 | 0:22:12 | 7 days, 1:14:36 |
|
||||
| Shortcuts not working as intended/unclear. i.e: Does X instead of Y as stated in the Keyboard Shortcuts section. | https://github.com/zen-browser/desktop/issues/6724 | 7 days, 1:20:26 | 7 days, 1:20:26 |
|
||||
| Zen icon not showing in Plasma title bar | https://github.com/zen-browser/desktop/issues/6723 | 7 days, 1:38:55 | 7 days, 1:38:55 |
|
||||
| Windows system theme switching does not work | https://github.com/zen-browser/desktop/issues/6722 | 7 days, 2:41:59 | 7 days, 2:41:59 |
|
||||
| All of Essentials suddenly disappearing | https://github.com/zen-browser/desktop/issues/6721 | 4 days, 5:40:42 | 7 days, 2:43:33 |
|
||||
| New tab shortcut broken | https://github.com/zen-browser/desktop/issues/6719 | 4 days, 4:59:23 | 10 days, 9:35:09 |
|
||||
| having a lot of workspaces still require from me to have wide sidebar | https://github.com/zen-browser/desktop/issues/6718 | 22:37:20 | 23:25:25 |
|
||||
| YouTube essential disappear when reopening the browser | https://github.com/zen-browser/desktop/issues/6717 | 7 days, 5:24:03 | 7 days, 5:24:03 |
|
||||
| Window Control Buttons Misaligned in Compact Mode | https://github.com/zen-browser/desktop/issues/6716 | 0:24:05 | 7 days, 6:18:13 |
|
||||
| Certificate Manager is mostly broken | https://github.com/zen-browser/desktop/issues/6713 | 9:53:59 | 7 days, 7:51:20 |
|
||||
| Zen browser's implementation of Content Security Policy | https://github.com/zen-browser/desktop/issues/6712 | 6 days, 22:36:46 | 7 days, 8:01:58 |
|
||||
| macOS passkeys not working on certain websites | https://github.com/zen-browser/desktop/issues/6709 | 3 days, 0:44:40 | 7 days, 13:20:09 |
|
||||
| Website Appearance: Automatic broken on macOS | https://github.com/zen-browser/desktop/issues/6708 | 2 days, 20:48:35 | 7 days, 13:22:04 |
|
||||
| zen new tab process in new window is cpu heavy | https://github.com/zen-browser/desktop/issues/6707 | None | 1:22:09 |
|
||||
| Stopping YouTube video on Zen forcing Alcove (dynamic island app) to quit and cannot be launched again | https://github.com/zen-browser/desktop/issues/6704 | 0:32:40 | 7 days, 14:46:10 |
|
||||
| New tabs open on new windows | https://github.com/zen-browser/desktop/issues/6703 | 7 days, 15:11:33 | 7 days, 15:11:34 |
|
||||
| Query input dialog disappears when changing the language | https://github.com/zen-browser/desktop/issues/6702 | 7 days, 17:44:36 | 7 days, 17:44:36 |
|
||||
| adding new tab while being on full screen | https://github.com/zen-browser/desktop/issues/6701 | 17:49:38 | 7 days, 18:20:09 |
|
||||
| Trying to export/share Rice softlocks the browser | https://github.com/zen-browser/desktop/issues/6700 | 7 days, 18:55:49 | 7 days, 18:55:50 |
|
||||
| Changing tabs scrolls the tab bar to the top | https://github.com/zen-browser/desktop/issues/6699 | None | 1 day, 4:31:48 |
|
||||
| External Links - Opens the browser, but not the link. (ZenBrowser.x86_64.AppImage + POP!_os 22.04) | https://github.com/zen-browser/desktop/issues/6698 | 2 days, 15:10:42 | 7 days, 20:37:03 |
|
||||
| Problem with Youtube Music | https://github.com/zen-browser/desktop/issues/6697 | 2:07:46 | 7 days, 21:15:12 |
|
||||
| some website/graph is not rendered correctly | https://github.com/zen-browser/desktop/issues/6692 | None | 0:10:52 |
|
||||
| Preference "zen.workspaces.show-icon-strip=false" no-longer hides non-current workspaces. | https://github.com/zen-browser/desktop/issues/6690 | 0:03:14 | 8 days, 0:46:14 |
|
||||
| some sites wont load properly | https://github.com/zen-browser/desktop/issues/6689 | None | 16:58:42 |
|
||||
| 如何保证常驻标签页在关闭浏览器后,重新打开浏览器后常驻标签页的URL保持不变,而不是上一次关闭浏览器前最后访问的地址 | https://github.com/zen-browser/desktop/issues/6687 | 0:19:22 | 8 days, 3:16:36 |
|
||||
| Youtube and Youtube Music seeking in Media player is not synced | https://github.com/zen-browser/desktop/issues/6685 | 0:32:27 | 8 days, 3:18:50 |
|
||||
| Screen Sharing Bug on Mac | https://github.com/zen-browser/desktop/issues/6683 | 8 days, 3:49:00 | 8 days, 3:49:01 |
|
||||
| Weird workspace scroll change behaviour with sidebar to the right | https://github.com/zen-browser/desktop/issues/6680 | 8 days, 4:52:43 | 8 days, 4:52:44 |
|
||||
| Zen not drawing properly when first opened | https://github.com/zen-browser/desktop/issues/6679 | 3 days, 22:17:55 | 8 days, 5:02:06 |
|
||||
| The browser.tabs.allow_transparent_browser stoped working | https://github.com/zen-browser/desktop/issues/6678 | 0:14:11 | 8 days, 5:49:04 |
|
||||
| "Reading List" extension: Can't read or change data on this site | https://github.com/zen-browser/desktop/issues/6677 | 8 days, 6:42:58 | 8 days, 6:42:59 |
|
||||
| Media Control does not respect playback speed | https://github.com/zen-browser/desktop/issues/6675 | None | 3:03:07 |
|
||||
| Extension install confirm dialog goes offscreen in single toolbar mode | https://github.com/zen-browser/desktop/issues/6674 | 0:29:54 | 8 days, 7:25:57 |
|
||||
| bug: media player applet doesn't respect current progress when paused | https://github.com/zen-browser/desktop/issues/6672 | 0:18:24 | 8 days, 7:45:39 |
|
||||
| media playing asks if i want to leave | https://github.com/zen-browser/desktop/issues/6671 | 3:56:03 | 4:27:20 |
|
||||
| Showing previous version even after Updating | https://github.com/zen-browser/desktop/issues/6669 | 1:54:14 | 8 days, 12:38:12 |
|
||||
| Pin Tabs & Essential Tabs are Removed | https://github.com/zen-browser/desktop/issues/6668 | 8 days, 13:06:17 | 8 days, 13:06:17 |
|
||||
| Google Docs breaking | https://github.com/zen-browser/desktop/issues/6664 | 19:28:30 | 8 days, 16:13:47 |
|
||||
| Media freezes after toggling Zen from different window | https://github.com/zen-browser/desktop/issues/6663 | 8 days, 17:32:25 | 8 days, 17:32:26 |
|
||||
| CPU | https://github.com/zen-browser/desktop/issues/6662 | 22:12:03 | 8 days, 18:02:57 |
|
||||
| [ Twilight ] Loosing transparency | https://github.com/zen-browser/desktop/issues/6660 | 18:34:05 | 1 day, 0:27:29 |
|
||||
| Automaticallty leaving google meets. | https://github.com/zen-browser/desktop/issues/6659 | 0:51:01 | 13:36:13 |
|
||||
| Cannot reorder tabs or open split view in private browsing | https://github.com/zen-browser/desktop/issues/6658 | 8 days, 20:34:09 | 8 days, 20:34:09 |
|
||||
| Extension icons overflowing when pinned to toolbar | https://github.com/zen-browser/desktop/issues/6657 | 16:23:15 | 8 days, 20:53:25 |
|
||||
| Essential tabs frequently exhibit an overlay that obscures their content | https://github.com/zen-browser/desktop/issues/6655 | 8 days, 21:20:37 | 8 days, 21:20:37 |
|
||||
| Workspaces Icon Strip STILL never scrolls or stops expanding and it makes the browser unusable | https://github.com/zen-browser/desktop/issues/6652 | 16:08:33 | 16:08:33 |
|
||||
| Roboform extension is not filling logon form fields in Zen browswer | https://github.com/zen-browser/desktop/issues/6650 | None | 5 days, 18:03:32 |
|
||||
| Media player controller causes youtube music to stop playing after sometime | https://github.com/zen-browser/desktop/issues/6648 | 23:18:57 | 1 day, 0:47:45 |
|
||||
| Shortcut Override Disables Backspace Input | https://github.com/zen-browser/desktop/issues/6647 | 9 days, 1:23:39 | 9 days, 1:23:39 |
|
||||
| "leave"message keeps popping-up | https://github.com/zen-browser/desktop/issues/6646 | 0:19:09 | 9 days, 1:27:14 |
|
||||
| UI Scaling issue on linux desktop | https://github.com/zen-browser/desktop/issues/6644 | 9 days, 1:37:58 | 9 days, 1:37:58 |
|
||||
| Update 1.10b removes option to toggle displaying workspaces as icon strip | https://github.com/zen-browser/desktop/issues/6643 | 1:56:58 | 20:11:36 |
|
||||
| Flatpak theming issue with GTK | https://github.com/zen-browser/desktop/issues/6642 | 9 days, 2:15:14 | 9 days, 2:15:14 |
|
||||
| Some websites doesnt load but others load!!! | https://github.com/zen-browser/desktop/issues/6641 | 3:22:02 | 21:31:59 |
|
||||
| Problem with Zen In instagram | https://github.com/zen-browser/desktop/issues/6640 | 4 days, 3:24:24 | 9 days, 3:47:22 |
|
||||
| Media Control Keys Not Working | https://github.com/zen-browser/desktop/issues/6639 | 6:49:55 | 2 days, 1:54:44 |
|
||||
| DRM content get's paused abruptly | https://github.com/zen-browser/desktop/issues/6638 | 4 days, 5:05:32 | 4 days, 5:05:32 |
|
||||
| Google Meet disconnects after a few seconds if I switch tabs | https://github.com/zen-browser/desktop/issues/6637 | 0:28:11 | 2:43:39 |
|
||||
| Problems with Google meet, unusable in call continuos down | https://github.com/zen-browser/desktop/issues/6636 | 0:05:47 | 2:56:40 |
|
||||
| Deleted workpaces with tabs still exist(?) | https://github.com/zen-browser/desktop/issues/6635 | 9 days, 6:03:15 | 9 days, 6:03:15 |
|
||||
| Audio shut off after about 25 seconds on some website. | https://github.com/zen-browser/desktop/issues/6634 | 3:41:06 | 3:41:06 |
|
||||
| Essential and Pinned tabs not opening on startup | https://github.com/zen-browser/desktop/issues/6630 | 9 days, 11:09:25 | 9 days, 11:09:25 |
|
||||
| Youtube Music randomly switch to tab and showing leave page dialog. | https://github.com/zen-browser/desktop/issues/6627 | 0:27:21 | 10:06:53 |
|
||||
| Rendering Issues for Startpage, Vercel and other websites | https://github.com/zen-browser/desktop/issues/6626 | 4:36:44 | 9 days, 12:48:07 |
|
||||
| Few bugs | https://github.com/zen-browser/desktop/issues/6623 | 9 days, 15:23:47 | 9 days, 15:23:47 |
|
||||
| Dark mode on Google has darker boxes around each result compared to the background | https://github.com/zen-browser/desktop/issues/6622 | 15:46:04 | 9 days, 15:32:25 |
|
||||
| [1.10b] Focusing back into split windows causes janky resizing of websites along with rendering delay when exiting out of split view into other tabs | https://github.com/zen-browser/desktop/issues/6621 | None | 6 days, 6:36:15 |
|
||||
| Blur behind new tab isn't centered properly | https://github.com/zen-browser/desktop/issues/6620 | 0:23:52 | 0:43:53 |
|
||||
| The media animation causes high CPU usage | https://github.com/zen-browser/desktop/issues/6619 | 9 days, 16:13:08 | 9 days, 16:13:08 |
|
||||
| white streak on left side of window when i fullscreen | https://github.com/zen-browser/desktop/issues/6617 | 1:29:28 | 9 days, 17:18:57 |
|
||||
| [1.10b] Focusing back into split windows causes janky resizing animation | https://github.com/zen-browser/desktop/issues/6614 | None | 2:09:32 |
|
||||
| Color is not theme switching on audio widget | https://github.com/zen-browser/desktop/issues/6613 | 9 days, 17:54:09 | 9 days, 17:54:10 |
|
||||
| Authentication on sites via a certificate (such as a Smart Card) broken on macOS in 1.10b | https://github.com/zen-browser/desktop/issues/6612 | 9 days, 18:33:37 | 9 days, 18:33:37 |
|
||||
| Pinned tab separator inconsistent width | https://github.com/zen-browser/desktop/issues/6611 | 9 days, 19:23:43 | 9 days, 19:23:44 |
|
||||
| Sidebar/Tab Bar navigation buttons overflow | https://github.com/zen-browser/desktop/issues/6610 | 9 days, 19:28:07 | 9 days, 19:28:08 |
|
||||
| Inconsistent spacing in compact modes | https://github.com/zen-browser/desktop/issues/6609 | 9 days, 19:40:12 | 9 days, 19:40:13 |
|
||||
| No default favicon for sites without Favicon | https://github.com/zen-browser/desktop/issues/6608 | 20:08:49 | 9 days, 19:44:17 |
|
||||
| Music playback from Jellyfin fails if tab not focused | https://github.com/zen-browser/desktop/issues/6607 | None | 17:48:12 |
|
||||
| New "Media player controller" autoscrolls to top of tab list | https://github.com/zen-browser/desktop/issues/6605 | 21:45:39 | 2 days, 10:48:27 |
|
||||
| Autofill does not work in Mac OS | https://github.com/zen-browser/desktop/issues/6604 | 9 days, 20:41:25 | 9 days, 20:41:26 |
|
||||
| warning pop up randomly | https://github.com/zen-browser/desktop/issues/6603 | 0:20:03 | 18:13:51 |
|
||||
| Controls not visible in new media player controller | https://github.com/zen-browser/desktop/issues/6601 | 1:42:38 | 9 days, 21:46:37 |
|
||||
| Unexplained Black Background in full screen mode | https://github.com/zen-browser/desktop/issues/6600 | 9 days, 21:59:10 | 9 days, 21:59:11 |
|
||||
| can't delete a shortcut | https://github.com/zen-browser/desktop/issues/6599 | 0:02:25 | 19:13:46 |
|
||||
| With Media Player, pinned tabs playing audio/video do not unload | https://github.com/zen-browser/desktop/issues/6598 | None | 0:09:27 |
|
||||
| workspaces being displayed in a line made sidebar too wide resulting in multiple visual issues | https://github.com/zen-browser/desktop/issues/6597 | 1:21:34 | 1 day, 17:31:25 |
|
||||
| Close page alert appears out of nowhere randomly whenever using YouTube Music in the background | https://github.com/zen-browser/desktop/issues/6596 | 0:40:11 | 9 days, 23:14:36 |
|
||||
| All tabs keep crashing on Windows | https://github.com/zen-browser/desktop/issues/6595 | 9 days, 23:41:59 | 9 days, 23:42:00 |
|
||||
| Missing Profile Manager in Application Menu | https://github.com/zen-browser/desktop/issues/6594 | 7 days, 20:01:45 | 9 days, 23:51:00 |
|
||||
| google slides stops | https://github.com/zen-browser/desktop/issues/6592 | 0:18:30 | 10 days, 0:18:42 |
|
||||
| [1.10b] Google meet auto leaves if tab not in focus | https://github.com/zen-browser/desktop/issues/6591 | 0:51:20 | 21:44:10 |
|
||||
| Buggy UI when switching from Single toolbar to Collapsed toolbar [1.10b] | https://github.com/zen-browser/desktop/issues/6590 | 10 days, 0:56:02 | 10 days, 0:56:02 |
|
||||
| [1.10b] Unloaded pinned tab with middle click is still loaded | https://github.com/zen-browser/desktop/issues/6589 | None | 2 days, 18:22:26 |
|
||||
| Essentials tab with "messages.google.com", after browser restart, is now just an empty essentials window. | https://github.com/zen-browser/desktop/issues/6587 | 10 days, 1:47:23 | 10 days, 1:47:23 |
|
||||
| Customize toolbar glitch | https://github.com/zen-browser/desktop/issues/6584 | None | 0:07:05 |
|
||||
| Weird behaviour of media player | https://github.com/zen-browser/desktop/issues/6583 | 0:28:23 | 19:58:25 |
|
||||
| weird behavior of pinned tab when in unload state. (1.10b) | https://github.com/zen-browser/desktop/issues/6582 | None | 3 days, 4:21:05 |
|
||||
| Sidebar(Bookmarks) not resizable when on the right | https://github.com/zen-browser/desktop/issues/6581 | 10 days, 3:38:17 | 10 days, 3:38:17 |
|
||||
| Shortcut key (ALT + C) not working as it shoud | https://github.com/zen-browser/desktop/issues/6580 | 8:01:15 | 10 days, 3:47:52 |
|
||||
| Extension's options pop-up in the address after switching between single and multiple toolbars | https://github.com/zen-browser/desktop/issues/6579 | 7 days, 23:16:56 | 10 days, 3:48:18 |
|
||||
| search bar cuts out of screen | https://github.com/zen-browser/desktop/issues/6578 | 7 days, 7:58:30 | 10 days, 4:05:13 |
|
||||
| new media player controls invisible | https://github.com/zen-browser/desktop/issues/6577 | 2:40:31 | 4 days, 1:29:05 |
|
||||
| Broke layout when resizing on gnome | https://github.com/zen-browser/desktop/issues/6574 | 10 days, 5:06:32 | 10 days, 5:06:33 |
|
||||
| Split screen is still unusable | https://github.com/zen-browser/desktop/issues/6573 | 10 days, 5:22:13 | 10 days, 5:22:14 |
|
||||
| Bookmark toolbar hidden forever, cannot re-enable | https://github.com/zen-browser/desktop/issues/6572 | 4:29:45 | 10 days, 5:30:23 |
|
||||
| Music player disappears when I enter fullscreen mode. | https://github.com/zen-browser/desktop/issues/6571 | 10 days, 5:46:36 | 10 days, 5:46:37 |
|
||||
| Shortcut for compact mode not working | https://github.com/zen-browser/desktop/issues/6570 | 23:53:56 | 10 days, 5:48:07 |
|
||||
| The tab playing music suddenly tries to close | https://github.com/zen-browser/desktop/issues/6569 | 2:34:44 | 1 day, 3:41:49 |
|
||||
| pages are not loading. | https://github.com/zen-browser/desktop/issues/6568 | 0:36:26 | 6:12:21 |
|
||||
| [1.10b] Problem reproducing music after new update | https://github.com/zen-browser/desktop/issues/6567 | 4:36:27 | 1 day, 4:05:32 |
|
||||
| Website for `grok.com` unable to be opened | https://github.com/zen-browser/desktop/issues/6566 | 0:34:25 | 4:23:14 |
|
||||
| I don't see the new media player | https://github.com/zen-browser/desktop/issues/6565 | 0:01:31 | 0:19:53 |
|
||||
| Grouping tabs bug | https://github.com/zen-browser/desktop/issues/6564 | 1:25:58 | 10 days, 7:29:16 |
|
||||
| [1.10b]Music controls not visible in the sidebar media player - light mode | https://github.com/zen-browser/desktop/issues/6562 | 0:57:05 | 4 days, 5:49:17 |
|
||||
| [1.10b] The default icon for tabs with no favicon is a bit strange, kinda preferred the default globe icon. | https://github.com/zen-browser/desktop/issues/6558 | 9:12:57 | 10 days, 15:57:17 |
|
||||
| extension icons being cut off | https://github.com/zen-browser/desktop/issues/6556 | 5:21:38 | 10 days, 17:11:42 |
|
||||
| Cornerradius on websites | https://github.com/zen-browser/desktop/issues/6554 | 10 days, 17:31:17 | 10 days, 17:31:18 |
|
||||
| Floating tab bar breaks without any shortcuts set | https://github.com/zen-browser/desktop/issues/6552 | 10 days, 23:11:25 | 10 days, 23:11:25 |
|
||||
| Profiles manage page not open | https://github.com/zen-browser/desktop/issues/6549 | 1 day, 3:51:56 | 11 days, 1:55:12 |
|
||||
| SImple tab group is locked loading in a new window | https://github.com/zen-browser/desktop/issues/6547 | 11 days, 2:09:36 | 11 days, 2:09:36 |
|
||||
| Save to Koofr extension not working | https://github.com/zen-browser/desktop/issues/6546 | None | 0:20:09 |
|
||||
| Buttons not loading in ChatGPT | https://github.com/zen-browser/desktop/issues/6545 | 1 day, 1:59:28 | 11 days, 3:04:35 |
|
||||
| Multiple toolbars prevents access to window controls | https://github.com/zen-browser/desktop/issues/6544 | 8 days, 2:31:30 | 11 days, 3:12:41 |
|
||||
| Master Password not recognised | https://github.com/zen-browser/desktop/issues/6543 | None | 0:08:37 |
|
||||
| The 1.9.1B version of the browser is not compatible with Baidu Input Method, which may cause the page to freeze when text is entered into the search bar. | https://github.com/zen-browser/desktop/issues/6542 | 11 days, 3:44:20 | 11 days, 3:44:21 |
|
||||
| [ twilight ] Set alternatives languages issues | https://github.com/zen-browser/desktop/issues/6541 | 14:16:10 | 1 day, 3:56:17 |
|
||||
| Browser takes theme color on websites which don't have any background color #bug | https://github.com/zen-browser/desktop/issues/6539 | 11 days, 7:02:47 | 11 days, 7:02:48 |
|
||||
| Opening Zen via a keyboard shortcut causes a Open in troubleshoot mode. | https://github.com/zen-browser/desktop/issues/6538 | 8:37:13 | 11 days, 9:21:17 |
|
||||
| Microsoft Teams fails to init | https://github.com/zen-browser/desktop/issues/6537 | 11 days, 9:52:46 | 11 days, 9:52:46 |
|
||||
| logs off from every account on restart | https://github.com/zen-browser/desktop/issues/6536 | 13:39:58 | 11 days, 10:19:55 |
|
||||
| Page screenshot buttons, `about:logins` and `Secure Site Not Available` page [seem to] use default accent color | https://github.com/zen-browser/desktop/issues/6534 | 11 days, 16:25:09 | 11 days, 16:25:09 |
|
||||
| Enhanced tracking protection ("shield" icon) is gone | https://github.com/zen-browser/desktop/issues/6533 | 11 days, 6:57:39 | 11 days, 15:54:58 |
|
||||
| Browser does not record history | https://github.com/zen-browser/desktop/issues/6532 | 6:33:00 | 11 days, 18:30:23 |
|
||||
| White bar at the bottom of the window when having windows "Hide Taskbar" on | https://github.com/zen-browser/desktop/issues/6531 | 0:38:42 | 11 days, 20:09:24 |
|
||||
| Closing zen not working | https://github.com/zen-browser/desktop/issues/6529 | None | 9:45:39 |
|
||||
| Closing and reopening essentials results in pinned tab | https://github.com/zen-browser/desktop/issues/6528 | 11 days, 21:21:41 | 11 days, 21:21:42 |
|
||||
| Zen not opening last used tab when opening new window | https://github.com/zen-browser/desktop/issues/6527 | 11 days, 21:28:58 | 11 days, 21:28:58 |
|
||||
| Tab Reordering Issue when in Always Private Browsing Mode | https://github.com/zen-browser/desktop/issues/6526 | 11 days, 21:33:54 | 11 days, 21:33:55 |
|
||||
| Tab close button clickable area smaller than hover-highlighted area | https://github.com/zen-browser/desktop/issues/6525 | 11 days, 22:43:11 | 11 days, 22:43:11 |
|
||||
| On startup browser does not respect spacers in the tolbar customisation | https://github.com/zen-browser/desktop/issues/6524 | 11 days, 23:06:57 | 11 days, 23:06:57 |
|
||||
| Issues with opening link in a new tab from Essential tab from a different workspace/container | https://github.com/zen-browser/desktop/issues/6523 | 21:19:50 | 10 days, 7:52:33 |
|
||||
| pressing any key opens "Find in page..." | https://github.com/zen-browser/desktop/issues/6517 | 2:10:33 | 5:11:26 |
|
||||
| reopen closed window | https://github.com/zen-browser/desktop/issues/6516 | 12 days, 3:30:16 | 12 days, 3:30:16 |
|
||||
| Links should open in the Default Workspace (and assigned container, if set) instead of the last used one | https://github.com/zen-browser/desktop/issues/6515 | 12 days, 3:52:21 | 12 days, 3:52:21 |
|
||||
| Unable to download files from drive.google.com or gmail. | https://github.com/zen-browser/desktop/issues/6514 | 1 day, 10:45:46 | 12 days, 4:36:11 |
|
||||
| Code signature changed? | https://github.com/zen-browser/desktop/issues/6513 | 1 day, 16:33:41 | 3 days, 19:57:51 |
|
||||
| Closing mini window tab opened from pinned essential goes to new tab | https://github.com/zen-browser/desktop/issues/6510 | 12 days, 7:04:31 | 12 days, 7:04:32 |
|
||||
| New Tab -> Back to old tab doesn't work. | https://github.com/zen-browser/desktop/issues/6509 | 12 days, 7:37:46 | 12 days, 7:37:47 |
|
||||
| Multiple windows reopen on launch despite disabling "Open previous windows and tabs" | https://github.com/zen-browser/desktop/issues/6508 | 12 days, 8:13:19 | 12 days, 8:13:20 |
|
||||
| Canva Verify Payment Window Not Loading | https://github.com/zen-browser/desktop/issues/6506 | 12 days, 14:36:55 | 12 days, 14:36:56 |
|
||||
| New zen window / instance is opening by itself | https://github.com/zen-browser/desktop/issues/6504 | 12 days, 18:03:52 | 12 days, 18:03:53 |
|
||||
| External programs can't open links (Log in) using zen browser. | https://github.com/zen-browser/desktop/issues/6503 | None | 0:09:07 |
|
||||
| Opens first tab after update | https://github.com/zen-browser/desktop/issues/6502 | 0:16:15 | 0:16:15 |
|
||||
| Minimize and restore down buttons are not shown in KDE wayland session | https://github.com/zen-browser/desktop/issues/6501 | 12 days, 20:18:10 | 12 days, 20:18:11 |
|
||||
| Cannot bind certain keys for shortcuts | https://github.com/zen-browser/desktop/issues/6498 | 18:29:44 | 13 days, 1:18:14 |
|
||||
| Back and Forward Buttons Switch Workspace Instead of Page | https://github.com/zen-browser/desktop/issues/6497 | 11:07:22 | 11 days, 8:39:41 |
|
||||
| Can't close windows in compact mode (Windows) | https://github.com/zen-browser/desktop/issues/6495 | 13 days, 2:10:59 | 13 days, 2:10:59 |
|
||||
| URL bar narrow after compact mode | https://github.com/zen-browser/desktop/issues/6493 | 1 day, 12:31:52 | 13 days, 2:31:24 |
|
||||
| Cant rearrange tabs and splitview when in incogito | https://github.com/zen-browser/desktop/issues/6492 | 13 days, 3:15:56 | 13 days, 3:15:56 |
|
||||
| Web panels no longer appear when watching a fullscreen video. | https://github.com/zen-browser/desktop/issues/6491 | 13 days, 5:01:16 | 13 days, 5:01:17 |
|
||||
| Problem watching DRM content (specifically www.crunchyroll.com content) | https://github.com/zen-browser/desktop/issues/6490 | 11:50:38 | 13 days, 6:05:20 |
|
||||
| When using Baidu to search, the search bar appears blank and it is impossible to input text. If you force an input by using the space bar, the web page will return to the previous one. | https://github.com/zen-browser/desktop/issues/6489 | None | 2 days, 2:54:25 |
|
||||
| Major contrast/transparency visual background glitch | https://github.com/zen-browser/desktop/issues/6488 | 13 days, 7:25:57 | 13 days, 7:25:58 |
|
||||
| Tab page jitter in Split View mode | https://github.com/zen-browser/desktop/issues/6487 | 1 day, 13:01:10 | 13 days, 8:17:37 |
|
||||
| "command + shift + C" doesn't work for inspect element | https://github.com/zen-browser/desktop/issues/6485 | 1 day, 14:44:49 | 13 days, 14:53:24 |
|
||||
| Top edge of browser scaling on hover | https://github.com/zen-browser/desktop/issues/6484 | 13 days, 15:42:29 | 13 days, 15:42:30 |
|
||||
| Black screen, after reopen on Win10, than most tabs missing | https://github.com/zen-browser/desktop/issues/6483 | 13 days, 16:57:29 | 13 days, 16:57:29 |
|
||||
| Favicons not displayed for some websites | https://github.com/zen-browser/desktop/issues/6482 | 13 days, 17:29:54 | 13 days, 17:29:55 |
|
||||
| Background transparency flickering when OBS is on the background | https://github.com/zen-browser/desktop/issues/6479 | 13 days, 18:50:41 | 13 days, 18:50:42 |
|
||||
| Only five web panel icons show | https://github.com/zen-browser/desktop/issues/6478 | 1:04:04 | 1:05:50 |
|
||||
| Zen using too much system resources | https://github.com/zen-browser/desktop/issues/6477 | 12:40:56 | 12:40:58 |
|
||||
| Caton when playing video full-screen | https://github.com/zen-browser/desktop/issues/6476 | 14 days, 5:46:49 | 14 days, 5:46:49 |
|
||||
| Minor bug perhaps, click the current workspaces shortcut breaks scroll limit on tab list. | https://github.com/zen-browser/desktop/issues/6475 | 14 days, 5:55:03 | 14 days, 5:55:04 |
|
||||
| Missing icons in pdf viewer interface | https://github.com/zen-browser/desktop/issues/6471 | 8 days, 16:45:52 | 14 days, 8:31:01 |
|
||||
| Zen elastic scrolling | https://github.com/zen-browser/desktop/issues/6470 | 8:32:23 | 8:32:30 |
|
||||
| Slide Graphics Blinking (PowerPoint) | https://github.com/zen-browser/desktop/issues/6469 | 14 days, 13:37:01 | 14 days, 13:37:02 |
|
||||
| Zen ignores policies.json and keeps update popup | https://github.com/zen-browser/desktop/issues/6468 | 14 days, 13:56:24 | 14 days, 13:56:24 |
|
||||
| Drag to Split only works for creating new vertical splits | https://github.com/zen-browser/desktop/issues/6463 | 14 days, 21:31:52 | 14 days, 21:31:53 |
|
||||
| Scroll bar can't be scrolled from the right edge of the window (Windows) | https://github.com/zen-browser/desktop/issues/6461 | 7:04:49 | 15 days, 0:54:05 |
|
||||
| Discord does not play video on zen | https://github.com/zen-browser/desktop/issues/6459 | 22:26:18 | 12 days, 1:57:02 |
|
||||
| Close tab buttons slightly cut off when in compact mode (Windows) | https://github.com/zen-browser/desktop/issues/6458 | 6:26:54 | 15 days, 1:11:08 |
|
||||
| Screen sharing is not working for calls on teams and google meet after the update | https://github.com/zen-browser/desktop/issues/6457 | 4 days, 18:07:16 | 15 days, 1:12:33 |
|
||||
| The scroll is not smooth as on other browser | https://github.com/zen-browser/desktop/issues/6454 | 1:43:43 | 1 day, 1:36:57 |
|
||||
| When there are no tabs in the browser, the sidebar gets stuck in the expanded state, blocking the view and not retracting. | https://github.com/zen-browser/desktop/issues/6453 | 1:53:35 | 2:31:06 |
|
||||
| New window created when 3rd tab is split on the right | https://github.com/zen-browser/desktop/issues/6451 | None | 1 day, 11:40:57 |
|
||||
| Opening links in other apps open a new Zen window with just a blank page | https://github.com/zen-browser/desktop/issues/6450 | 2 days, 0:05:56 | 15 days, 3:37:39 |
|
||||
| Bug on pinned tabs | https://github.com/zen-browser/desktop/issues/6447 | 15 days, 5:27:45 | 15 days, 5:27:46 |
|
||||
| Tabs randomly mix all over the place when you split | https://github.com/zen-browser/desktop/issues/6446 | 15 days, 6:21:12 | 15 days, 6:21:13 |
|
||||
| The Extensions popup while adding new extensions is going out of the screen | https://github.com/zen-browser/desktop/issues/6445 | 4 days, 8:05:02 | 15 days, 6:25:14 |
|
||||
| Fullscreen mode shows window border (Linux) | https://github.com/zen-browser/desktop/issues/6443 | 2 days, 4:01:19 | 15 days, 7:41:07 |
|
||||
| Split view bug | https://github.com/zen-browser/desktop/issues/6442 | 15 days, 9:37:40 | 15 days, 9:37:40 |
|
||||
| Maxed out all 16 cores, 64GB of RAM and 16GB of swap | https://github.com/zen-browser/desktop/issues/6441 | 4:14:00 | 15 days, 9:40:52 |
|
||||
| Closing unpinned tabs below an Essential tab leaves the window stuck | https://github.com/zen-browser/desktop/issues/6437 | 7 days, 5:43:28 | 15 days, 12:15:12 |
|
||||
| Unexpected bottom border when fullscreen on Windows | https://github.com/zen-browser/desktop/issues/6435 | 4:16:15 | 15 days, 13:47:02 |
|
||||
| Right clicking for pasting new link on the address bar selects the current tab's link and overrides it when trying to open new tab through Ctrl+t | https://github.com/zen-browser/desktop/issues/6434 | 8 days, 6:34:51 | 15 days, 16:34:09 |
|
||||
| Sidebar UI Problem | https://github.com/zen-browser/desktop/issues/6433 | None | 4 days, 1:48:19 |
|
||||
| Zen forgets all tabs when the main browser is closed while Private Browsing is open | https://github.com/zen-browser/desktop/issues/6432 | 7 days, 0:32:05 | 15 days, 16:47:13 |
|
||||
| Websites refuse to work | https://github.com/zen-browser/desktop/issues/6431 | 11:01:23 | 15 days, 17:06:27 |
|
||||
| Sidebar Dragging Moves Entire Window | https://github.com/zen-browser/desktop/issues/6429 | 1 day, 12:51:50 | 2 days, 4:15:34 |
|
||||
| Chatbot support disabled by default | https://github.com/zen-browser/desktop/issues/6428 | 0:39:39 | 15 days, 20:17:43 |
|
||||
| Twitch: FrankerFaceZ extenstion | https://github.com/zen-browser/desktop/issues/6426 | 2:14:12 | 22:59:33 |
|
||||
| Kagi search page has bad font rendering when using flatpak | https://github.com/zen-browser/desktop/issues/6425 | 8 days, 17:42:46 | 15 days, 22:26:02 |
|
||||
| Failing to drag tab for split window when native sidebar is on the right | https://github.com/zen-browser/desktop/issues/6424 | 15 days, 23:02:32 | 15 days, 23:02:33 |
|
||||
| Open any url/tab = nothing happens | https://github.com/zen-browser/desktop/issues/6423 | 15 days, 23:23:46 | 15 days, 23:23:47 |
|
||||
| I have a problem creating a new tab in the browser. | https://github.com/zen-browser/desktop/issues/6420 | 0:29:25 | 16 days, 0:13:53 |
|
||||
| Dark theme menu bar glitched | https://github.com/zen-browser/desktop/issues/6419 | 16 days, 0:20:20 | 16 days, 0:20:20 |
|
||||
| New tab opens black page with only search option | https://github.com/zen-browser/desktop/issues/6418 | 1:30:09 | 1 day, 20:19:37 |
|
||||
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/6416 | 1 day, 0:41:57 | 16 days, 1:56:48 |
|
||||
| Login pop-ups instant crashed. | https://github.com/zen-browser/desktop/issues/6414 | None | 3 days, 11:52:50 |
|
||||
| Only last workspace tabs are synced via firefox account | https://github.com/zen-browser/desktop/issues/6413 | 3:29:46 | 16 days, 2:45:09 |
|
||||
| Open in split window in split window undefined behaviour | https://github.com/zen-browser/desktop/issues/6412 | 16 days, 2:55:23 | 16 days, 2:55:24 |
|
||||
| Sidebar Stucked | https://github.com/zen-browser/desktop/issues/6411 | 16 days, 3:17:38 | 16 days, 3:17:39 |
|
||||
| Keyboard shortcuts not working with non-English layouts (e.g., Turkish) | https://github.com/zen-browser/desktop/issues/6410 | 16 days, 3:27:56 | 16 days, 3:27:56 |
|
||||
| Chinese input not work in Baidu search engine | https://github.com/zen-browser/desktop/issues/6409 | 4:27:38 | 16 days, 4:36:48 |
|
||||
| sidebar/toolbar overlap | https://github.com/zen-browser/desktop/issues/6408 | 13 days, 4:37:38 | 16 days, 4:54:10 |
|
||||
| Sidebar on the right | https://github.com/zen-browser/desktop/issues/6406 | 16 days, 5:57:44 | 16 days, 5:57:45 |
|
||||
| Floating video player doesn't follow virtual desktops | https://github.com/zen-browser/desktop/issues/6405 | 3 days, 3:21:41 | 16 days, 6:47:00 |
|
||||
| Opening an external link when browser is closed have a different behavior than when the browser is opened | https://github.com/zen-browser/desktop/issues/6404 | 16 days, 7:01:57 | 16 days, 7:01:57 |
|
||||
| Zen Browser opens on the last used virtual desktop instead of the current one | https://github.com/zen-browser/desktop/issues/6403 | 3 days, 11:14:01 | 16 days, 7:21:44 |
|
||||
| Workspace assigned to bookmarks not editable after creation | https://github.com/zen-browser/desktop/issues/6402 | 16 days, 7:27:34 | 16 days, 7:27:34 |
|
||||
| Split Tabs not Restored upon Hard Computer Reset | https://github.com/zen-browser/desktop/issues/6401 | 16 days, 7:41:46 | 16 days, 7:41:46 |
|
||||
| (Critical) refresh button broken! | https://github.com/zen-browser/desktop/issues/6399 | 16 days, 8:13:05 | 16 days, 8:13:06 |
|
||||
| Ai ChatBot unavailable in sidebar | https://github.com/zen-browser/desktop/issues/6398 | 5:17:58 | 1 day, 7:41:37 |
|
||||
| Browser slow to load on launch on notebook | https://github.com/zen-browser/desktop/issues/6397 | 16 days, 9:22:29 | 16 days, 9:22:29 |
|
||||
| Zen 1.9.1b auto-update from 1.9b breaks MacOS code-signature | https://github.com/zen-browser/desktop/issues/6394 | 5 days, 23:17:44 | 8 days, 4:56:29 |
|
||||
| Flexible space bug when placed on either sides of the URL bar in Multiple toolbars in Browser Layout | https://github.com/zen-browser/desktop/issues/6392 | 16 days, 12:08:43 | 16 days, 12:08:43 |
|
||||
| Pinned tabs aren't restored properly when multiple windows are open | https://github.com/zen-browser/desktop/issues/6391 | 16:40:17 | 16 days, 12:11:56 |
|
||||
| Compact Mode Toggle Shortcut Not Working | https://github.com/zen-browser/desktop/issues/6389 | 15:23:17 | 16 days, 14:30:44 |
|
||||
| Split View beyond two tabs fails | https://github.com/zen-browser/desktop/issues/6388 | 16 days, 14:45:49 | 16 days, 14:45:49 |
|
||||
| Access Violation (0xc0000005) Crash When Running with SentinelOne EDR Active (Windows ARM64) | https://github.com/zen-browser/desktop/issues/6386 | 16 days, 15:59:44 | 16 days, 15:59:44 |
|
||||
| book.ark toolbar and window controls persists when opening folder | https://github.com/zen-browser/desktop/issues/6385 | 16 days, 16:01:37 | 16 days, 16:01:38 |
|
||||
| Right click menu to Move tab to other Workspace does not show | https://github.com/zen-browser/desktop/issues/6384 | 0:20:11 | 1 day, 23:55:41 |
|
||||
| Windows Window Handling Is Problematic | https://github.com/zen-browser/desktop/issues/6382 | 16 days, 18:50:00 | 16 days, 18:50:01 |
|
||||
| Glance opens on magnet links | https://github.com/zen-browser/desktop/issues/6381 | 0:03:28 | 16 days, 19:56:51 |
|
||||
| Confirm Closing Feature for Glance does not Work | https://github.com/zen-browser/desktop/issues/6380 | 2:04:46 | 16 days, 19:57:26 |
|
||||
| Cant open extensions when no tab open. | https://github.com/zen-browser/desktop/issues/6378 | 12 days, 15:43:18 | 16 days, 20:11:00 |
|
||||
| Weird zooming and window placement issues on Windows | https://github.com/zen-browser/desktop/issues/6374 | 16 days, 22:37:04 | 16 days, 22:37:04 |
|
||||
| Search Engine Shortcuts Dont work after 1.9b, no mods on | https://github.com/zen-browser/desktop/issues/6373 | 2 days, 16:37:00 | 16 days, 22:41:27 |
|
||||
| Dragging Tabs to open Split view only works on the left, when the tabs are on the right | https://github.com/zen-browser/desktop/issues/6372 | None | 9 days, 2:10:52 |
|
||||
| misclick caused by tab context menu | https://github.com/zen-browser/desktop/issues/6371 | 16 days, 23:25:28 | 16 days, 23:25:29 |
|
||||
| URL Bar only showing up when typing. | https://github.com/zen-browser/desktop/issues/6369 | 1 day, 20:40:08 | 1 day, 23:49:44 |
|
||||
| why is it grayed out ? | https://github.com/zen-browser/desktop/issues/6368 | 22:27:41 | 22:28:35 |
|
||||
| SuperPins (v1.4.4) not wrapping to new row | https://github.com/zen-browser/desktop/issues/6365 | 0:36:25 | 17 days, 2:47:47 |
|
||||
| icons missaligned adress bar | https://github.com/zen-browser/desktop/issues/6364 | None | 1:46:18 |
|
||||
| Move selected tab(s) to new window opens a new window while CLOSING the (first) selected tab | https://github.com/zen-browser/desktop/issues/6363 | 1:36:57 | 1 day, 2:54:10 |
|
||||
| Japanese font doesn't work | https://github.com/zen-browser/desktop/issues/6362 | 17 days, 5:34:27 | 17 days, 5:34:27 |
|
||||
| --zen-sidebar-width not set correctly when opening Zen with compact mode enabled | https://github.com/zen-browser/desktop/issues/6361 | 17 days, 6:23:51 | 17 days, 6:23:52 |
|
||||
| Change tab from workspace (with default container) to other workspace loses tab | https://github.com/zen-browser/desktop/issues/6360 | 1 day, 7:46:11 | 15 days, 15:16:51 |
|
||||
| Browser gives no visual indication that a browser window is private | https://github.com/zen-browser/desktop/issues/6358 | 14:08:22 | 17 days, 7:14:46 |
|
||||
| Windows version eating up too much RAM | https://github.com/zen-browser/desktop/issues/6357 | 1:49:59 | 1 day, 5:24:46 |
|
||||
| Zen is being updated by another instance | https://github.com/zen-browser/desktop/issues/6355 | 14 days, 21:48:28 | 17 days, 12:00:20 |
|
||||
| Collapsed and Multiple toolbar does not hide completely (1.9b -> 1.10b still) | https://github.com/zen-browser/desktop/issues/6354 | 0:02:49 | 17 days, 12:07:24 |
|
||||
| Browser unresponsive after closing large amount of tabs | https://github.com/zen-browser/desktop/issues/6353 | 3 days, 17:13:21 | 17 days, 13:01:01 |
|
||||
| url bar icon not aligned center | https://github.com/zen-browser/desktop/issues/6352 | 17:24:58 | 17 days, 13:31:25 |
|
||||
| Incorrect user interface in side panel | https://github.com/zen-browser/desktop/issues/6351 | 5 days, 16:07:57 | 17 days, 14:06:04 |
|
||||
| Every time opening tabs in Essentials | https://github.com/zen-browser/desktop/issues/6350 | 17 days, 14:18:21 | 17 days, 14:18:21 |
|
||||
| Link is ignored if there's no active windows AND if Zen remembers history | https://github.com/zen-browser/desktop/issues/6349 | 0:06:18 | 3 days, 9:53:01 |
|
||||
| Dragging window into a new desktop results in blank zen window | https://github.com/zen-browser/desktop/issues/6348 | 0:26:07 | 1 day, 23:33:25 |
|
||||
| restoring pinned tabs converts it to blank | https://github.com/zen-browser/desktop/issues/6347 | None | 11 days, 13:47:41 |
|
||||
| mica broke again | https://github.com/zen-browser/desktop/issues/6346 | 17 days, 16:46:21 | 17 days, 16:46:21 |
|
||||
| Search engine selector gone | https://github.com/zen-browser/desktop/issues/6345 | 4 days, 20:07:21 | 17 days, 17:17:10 |
|
||||
| PDF files open to a blank page when Zen is closed | https://github.com/zen-browser/desktop/issues/6343 | 12:43:24 | 17 days, 18:13:02 |
|
||||
| Tab peek controls overlap firefox ai chat sidebar | https://github.com/zen-browser/desktop/issues/6342 | 17 days, 18:38:25 | 17 days, 18:38:26 |
|
||||
| Cant open a link with left click. | https://github.com/zen-browser/desktop/issues/6341 | 17 days, 18:56:56 | 17 days, 18:56:57 |
|
||||
| Distorted UI during first use - fresh install | https://github.com/zen-browser/desktop/issues/6340 | 17 days, 19:04:58 | 17 days, 19:04:59 |
|
||||
| Ctrl+Tab fails to switch tabs when dragging a file | https://github.com/zen-browser/desktop/issues/6339 | 17 days, 20:59:02 | 17 days, 20:59:03 |
|
||||
| freeze content when scrolling | https://github.com/zen-browser/desktop/issues/6338 | 1 day, 13:52:29 | 17 days, 20:59:52 |
|
||||
| Web Panel resets to initial state on tab change | https://github.com/zen-browser/desktop/issues/6336 | 17 days, 23:33:45 | 17 days, 23:33:45 |
|
||||
| New tab search bar doesn’t open when address bar suggestions are disabled | https://github.com/zen-browser/desktop/issues/6335 | 18 days, 2:21:42 | 18 days, 2:21:42 |
|
||||
| Sidebar gadient breaks | https://github.com/zen-browser/desktop/issues/6333 | 18 days, 3:30:31 | 18 days, 3:30:31 |
|
||||
| Show Sidebar is greyed out | https://github.com/zen-browser/desktop/issues/6332 | 7 days, 23:54:34 | 18 days, 3:42:42 |
|
||||
| Sidebar overlaps with page content in 'multiple toolbar' mode | https://github.com/zen-browser/desktop/issues/6330 | 18 days, 3:57:58 | 18 days, 3:57:58 |
|
||||
| Search shortcuts are missing in URL and Quick search bar | https://github.com/zen-browser/desktop/issues/6329 | 11 days, 11:42:02 | 18 days, 4:42:24 |
|
||||
| Tab order disrupted [Bug] | https://github.com/zen-browser/desktop/issues/6328 | None | 7 days, 22:29:09 |
|
||||
| Extension data being corrupted? (Bitwarden losing accounts) | https://github.com/zen-browser/desktop/issues/6327 | 18 days, 6:51:22 | 18 days, 6:51:22 |
|
||||
| Hovering over tabs now displays an x to close them | https://github.com/zen-browser/desktop/issues/6325 | 0:46:18 | 18 days, 8:15:53 |
|
||||
| Cannot split private tabs | https://github.com/zen-browser/desktop/issues/6323 | 0:15:38 | 8 days, 8:41:36 |
|
||||
| URL Bar is blocked when typing in it | https://github.com/zen-browser/desktop/issues/6322 | None | 6:17:45 |
|
||||
| Bookmark Bar not Minimizing | https://github.com/zen-browser/desktop/issues/6320 | None | 5:08:00 |
|
||||
| Buggy behaviour when dragging tab from the bar | https://github.com/zen-browser/desktop/issues/6319 | 0:49:26 | 18 days, 15:48:26 |
|
||||
| Bookmarks in Toolbar disappearing when entering fullscreen | https://github.com/zen-browser/desktop/issues/6318 | 1 day, 14:07:49 | 18 days, 16:41:09 |
|
||||
| Alt + Clicking a link to open it in glance mode does not work in http pages | https://github.com/zen-browser/desktop/issues/6317 | 18 days, 17:40:56 | 18 days, 17:40:56 |
|
||||
| iCloud Passwords extension broken | https://github.com/zen-browser/desktop/issues/6315 | 0:05:10 | 18 days, 19:11:03 |
|
||||
| High CPU Usage | https://github.com/zen-browser/desktop/issues/6311 | 2:11:38 | 2:11:38 |
|
||||
| Bookmark bad placement | https://github.com/zen-browser/desktop/issues/6310 | 11:00:26 | 1 day, 4:55:26 |
|
||||
| Missing top and bottom margins for the URL bar. | https://github.com/zen-browser/desktop/issues/6308 | 1 day, 5:38:11 | 1 day, 5:38:11 |
|
||||
| The knob for setting grains in theme setter is not circular | https://github.com/zen-browser/desktop/issues/6307 | 0:02:54 | 18 days, 23:12:49 |
|
||||
| zen.workspaces.natural-scroll. workspace gestures animation are the wrong direction | https://github.com/zen-browser/desktop/issues/6305 | 18 days, 23:51:15 | 18 days, 23:51:15 |
|
||||
| split screen moves pdfs | https://github.com/zen-browser/desktop/issues/6304 | 0:34:48 | 19 days, 0:38:55 |
|
||||
| Why are search box icons positioned differently? | https://github.com/zen-browser/desktop/issues/6303 | 0:34:03 | 1 day, 7:25:16 |
|
||||
| Zen does not get scrolling optimizations | https://github.com/zen-browser/desktop/issues/6302 | 4:31:26 | None |
|
||||
| Save files do not correctly remember last saving location | https://github.com/zen-browser/desktop/issues/6301 | 19 days, 1:03:38 | 19 days, 1:03:38 |
|
||||
| Close tab button tiny and at wrong position since update 1.9b | https://github.com/zen-browser/desktop/issues/6300 | 0:00:43 | 0:00:42 |
|
||||
| New tab (ctrl-t) often replaces current tab as if i pressed (ctrl-l) | https://github.com/zen-browser/desktop/issues/6299 | 2:40:29 | 19 days, 3:40:52 |
|
||||
| Gradient disappears if the window is unfocused | https://github.com/zen-browser/desktop/issues/6298 | 3:33:50 | 19 days, 3:46:23 |
|
||||
| New tab in container | https://github.com/zen-browser/desktop/issues/6296 | 4:14:30 | 4:17:52 |
|
||||
| Toolbar Doesn't Collapse When Hovering Over Tab Preview in Compact Mode | https://github.com/zen-browser/desktop/issues/6295 | 19 days, 4:41:23 | 19 days, 4:41:24 |
|
||||
| Some website have overlay graphics at the wrong location | https://github.com/zen-browser/desktop/issues/6294 | 4:49:46 | 19 days, 4:48:39 |
|
||||
| No way to open the sidebar while in compact mode on touchscreen | https://github.com/zen-browser/desktop/issues/6293 | 19 days, 5:01:49 | 19 days, 5:01:50 |
|
||||
| Copying Problem While Watching Something on YouTube | https://github.com/zen-browser/desktop/issues/6291 | 19 days, 5:25:06 | 19 days, 5:25:07 |
|
||||
| Zen Browser - Audio Icon Not Visible in "Audio TabIcon Plus" Mode | https://github.com/zen-browser/desktop/issues/6290 | 5:48:29 | 19 days, 5:44:15 |
|
||||
| when i start zen after 1.9b update it doesn't show anything except the top bar | https://github.com/zen-browser/desktop/issues/6288 | 7:21:54 | 4 days, 14:26:52 |
|
||||
| Expand sidebar button has no priority when shrunk | https://github.com/zen-browser/desktop/issues/6287 | 19 days, 6:36:54 | 19 days, 6:36:55 |
|
||||
| Zen stuck on Syncing... on MacOS | https://github.com/zen-browser/desktop/issues/6286 | 19 days, 6:50:36 | 19 days, 6:50:37 |
|
||||
| I can’t delete the profile. | https://github.com/zen-browser/desktop/issues/6285 | 2 days, 20:28:06 | 19 days, 7:25:46 |
|
||||
| Split tab shortcut not working in split view and other weird behavior | https://github.com/zen-browser/desktop/issues/6284 | 19 days, 7:35:52 | 19 days, 7:35:53 |
|
||||
| Split view blocks Zen now | https://github.com/zen-browser/desktop/issues/6280 | 19 days, 10:26:31 | 19 days, 10:26:32 |
|
||||
| Video Playback Issues | https://github.com/zen-browser/desktop/issues/6279 | 23:01:38 | 19 days, 10:46:34 |
|
||||
| Tab Sidebar opens due to irrelivent command | https://github.com/zen-browser/desktop/issues/6278 | None | 15 days, 6:43:34 |
|
||||
| Workspace Selector not working on bookmarks create/edit modal | https://github.com/zen-browser/desktop/issues/6277 | 1 day, 17:07:14 | 7 days, 3:18:48 |
|
||||
| Home showing blank page | https://github.com/zen-browser/desktop/issues/6275 | 0:09:49 | 4 days, 20:03:39 |
|
||||
| You can no longer split essentials | https://github.com/zen-browser/desktop/issues/6273 | 11:22:32 | 19 days, 16:19:50 |
|
||||
| Extensions no longer stay pinned to the toolbar | https://github.com/zen-browser/desktop/issues/6272 | 0:09:02 | 19 days, 17:20:49 |
|
||||
| Firefox tracker protection, PiP, and bookmark icons bugged | https://github.com/zen-browser/desktop/issues/6271 | 5:23:54 | 2 days, 0:09:16 |
|
||||
| 2FAS Extension problem - abnormal CPU usage in 1.9b - no problems on Firefox | https://github.com/zen-browser/desktop/issues/6270 | 10:04:32 | 19 days, 17:44:32 |
|
||||
| Be nice if I didn't have to install it every time I wanted to run it due to some bull sh t 0000000132 error. Pay nothing get nothing I suppose. Nothing ZEN about that. | https://github.com/zen-browser/desktop/issues/6269 | 1:44:24 | 19 days, 17:56:03 |
|
||||
| New Window action always creates to default newtab page | https://github.com/zen-browser/desktop/issues/6268 | 3:23:22 | 19 days, 18:32:03 |
|
||||
| Can't open new tab by dragging selected text to sidebar | https://github.com/zen-browser/desktop/issues/6267 | None | 23:14:40 |
|
||||
| Shortcuts don't work when they conflict with standard character key binds | https://github.com/zen-browser/desktop/issues/6266 | 19 days, 21:18:44 | 19 days, 21:18:44 |
|
||||
| All profiles Deleted automatically when using zen , can't restore them with about:profiles also | https://github.com/zen-browser/desktop/issues/6265 | 2:59:57 | 19 days, 21:40:08 |
|
||||
| Windows processes / the entire windows unresponsive when using any kind of AI chats on Zen | https://github.com/zen-browser/desktop/issues/6264 | 19 days, 22:04:11 | 19 days, 22:04:11 |
|
||||
| New window and tab doesnt work | https://github.com/zen-browser/desktop/issues/6263 | None | 0:12:28 |
|
||||
| New window and tab doesnt work | https://github.com/zen-browser/desktop/issues/6262 | None | 0:00:07 |
|
||||
| Spotify jumps through music by itself | https://github.com/zen-browser/desktop/issues/6261 | 10 days, 1:21:21 | 20 days, 0:00:17 |
|
||||
| refocusing new tab will change to current url instead | https://github.com/zen-browser/desktop/issues/6260 | 12:27:25 | 20 days, 0:08:48 |
|
||||
| Split view issue | https://github.com/zen-browser/desktop/issues/6255 | 0:50:33 | 20 days, 2:40:30 |
|
||||
| bookmark toolbar not animating out | https://github.com/zen-browser/desktop/issues/6253 | 8:32:28 | 1 day, 12:54:00 |
|
||||
| If I pick 3 colors in color picker, I can't set one color on sidebar like before | https://github.com/zen-browser/desktop/issues/6252 | 3:19:01 | 20 days, 3:41:14 |
|
||||
| Sub-tabs in Account tab have no text | https://github.com/zen-browser/desktop/issues/6250 | 20 days, 4:11:08 | 20 days, 4:11:09 |
|
||||
| Shield and Bookmark icon in searchbar is not aligned properly after new update 1.9b | https://github.com/zen-browser/desktop/issues/6248 | 4:10:26 | 16:34:35 |
|
||||
| Bookmarks on the bookmark toolbar duplicates when opening a new window while in fullscreen mode | https://github.com/zen-browser/desktop/issues/6246 | 20 days, 7:00:27 | 20 days, 7:00:27 |
|
||||
| Pin Tab Unpins When Using New Splitscreen Feature | https://github.com/zen-browser/desktop/issues/6245 | 9:32:04 | 20 days, 8:07:03 |
|
||||
| AppImage (64 bit) on Nobara Linux 41 fails to launch. | https://github.com/zen-browser/desktop/issues/6241 | 3:04:51 | 14:51:45 |
|
||||
| Alt+C not working as keybind | https://github.com/zen-browser/desktop/issues/6239 | 13:50:06 | 20 days, 13:12:19 |
|
||||
| Empty Split View is shown when dragging a tab out into a new window | https://github.com/zen-browser/desktop/issues/6238 | 1 day, 7:08:21 | 5 days, 9:50:49 |
|
||||
| Sidebar stays open when dragging/moving a tab out when using Compact mode | https://github.com/zen-browser/desktop/issues/6237 | 2:05:00 | 20 days, 13:17:36 |
|
||||
| Profile switcher button is gone/changed | https://github.com/zen-browser/desktop/issues/6235 | 3:32:55 | 9:09:52 |
|
||||
| blank tab (that shows when no tabs are open) is a dark grey instead of the theme colour | https://github.com/zen-browser/desktop/issues/6232 | 1:50:18 | 16:17:08 |
|
||||
| Zen ignores system trusted certs when run in flatpak | https://github.com/zen-browser/desktop/issues/6231 | 11 days, 15:50:17 | 20 days, 15:59:42 |
|
||||
| Taking a tab out of the window | https://github.com/zen-browser/desktop/issues/6230 | 12:03:30 | 12:03:30 |
|
||||
| Tabs not displaying correctly when opening second window | https://github.com/zen-browser/desktop/issues/6229 | 12:28:08 | 12:28:08 |
|
||||
| Tab list still scrolls to top sometimes | https://github.com/zen-browser/desktop/issues/6228 | 15 days, 16:02:36 | 20 days, 17:17:25 |
|
||||
| New tab opens alongside essentials! [kinda critical] | https://github.com/zen-browser/desktop/issues/6226 | 1 day, 17:57:06 | 20 days, 17:50:03 |
|
||||
| Cmd + K behaves strangely | https://github.com/zen-browser/desktop/issues/6225 | None | 12:31:04 |
|
||||
| Zen doesnt load default homepage, nor custom one | https://github.com/zen-browser/desktop/issues/6223 | 13 days, 13:41:38 | 20 days, 18:25:02 |
|
||||
| url is not centered on linux | https://github.com/zen-browser/desktop/issues/6222 | 8:05:01 | 13:46:11 |
|
||||
| Clicking on Links in non-zen applications opens Blank Page | https://github.com/zen-browser/desktop/issues/6221 | 15:46:23 | 17:06:20 |
|
||||
| Zen not working properly with PowerToys Run module | https://github.com/zen-browser/desktop/issues/6220 | 9:21:55 | 14:04:26 |
|
||||
| Three bugs UI and Functionality Issues in Browser Behavior | https://github.com/zen-browser/desktop/issues/6218 | 20 days, 19:06:04 | 20 days, 19:06:05 |
|
||||
| Essentials no longer have a highlight around them | https://github.com/zen-browser/desktop/issues/6217 | 20 days, 19:31:42 | 20 days, 19:31:43 |
|
||||
| right sidebar animation | https://github.com/zen-browser/desktop/issues/6216 | None | 14 days, 16:42:31 |
|
||||
| Picture in picture icon (URL Bar) | https://github.com/zen-browser/desktop/issues/6214 | 10:04:23 | 15:30:11 |
|
||||
| Sidebar glitching out and not showing items / having incorrect offset when switching workspaces in collapsed mode | https://github.com/zen-browser/desktop/issues/6213 | 8 days, 11:36:11 | 8 days, 23:24:08 |
|
||||
| Empty browser window from dragged out tab | https://github.com/zen-browser/desktop/issues/6210 | 4:54:45 | 16:18:40 |
|
||||
| Zen browser not displaying anything besides the UI | https://github.com/zen-browser/desktop/issues/6209 | 5 days, 13:43:00 | 20 days, 21:04:51 |
|
||||
| Home page shortcuts became smaller | https://github.com/zen-browser/desktop/issues/6208 | 6:20:48 | 20 days, 21:12:56 |
|
||||
| Icons at the end of the URL bar are misaligned | https://github.com/zen-browser/desktop/issues/6207 | 5:08:25 | 3 days, 4:04:54 |
|
||||
| 1.9b: Zen opens as a Blank page | https://github.com/zen-browser/desktop/issues/6205 | 3:41:04 | 20 days, 22:09:55 |
|
||||
| "change theme colors" cannot be undone and breaks other theming features | https://github.com/zen-browser/desktop/issues/6202 | 18 days, 0:58:38 | 20 days, 22:13:51 |
|
||||
| ISSUE WITH THE FLOATING URL BAR AND THE SIDEBAR | https://github.com/zen-browser/desktop/issues/6201 | 0:43:32 | 20 days, 23:03:13 |
|
||||
| "restore previous session" does not work, it opens blank windows without ever restoring the tabs | https://github.com/zen-browser/desktop/issues/6200 | 21:37:27 | 21:37:27 |
|
||||
| The appimage install command for Linux stops working in 1.9b version | https://github.com/zen-browser/desktop/issues/6199 | 18:11:44 | 5 days, 4:19:07 |
|
||||
| Homepage looks like this in the new version, could you improve it or return it to how it was before? | https://github.com/zen-browser/desktop/issues/6195 | 21 days, 1:14:05 | 21 days, 1:14:06 |
|
||||
| Profile switcher not showing in sidebar | https://github.com/zen-browser/desktop/issues/6194 | 0:14:44 | 1:42:41 |
|
||||
| position browser notifications are broken | https://github.com/zen-browser/desktop/issues/6192 | 19:51:41 | 20:57:09 |
|
||||
| Can't drag scrollbar because it's too small | https://github.com/zen-browser/desktop/issues/6191 | 13:33:59 | 21 days, 1:54:05 |
|
||||
| Searcbar not autofocused when zen.urlbar.replace-newtab is set to false | https://github.com/zen-browser/desktop/issues/6189 | 21 days, 2:14:02 | 21 days, 2:14:03 |
|
||||
| Need to drag a tab to the left half of the screen in tabs on the right mode | https://github.com/zen-browser/desktop/issues/6183 | 1 day, 18:38:34 | 2 days, 10:35:50 |
|
||||
| Closing private tab re-open non-private tab | https://github.com/zen-browser/desktop/issues/6182 | 4:18:20 | 4:51:14 |
|
||||
| New Tab Bug After the Update 1.8.1b | https://github.com/zen-browser/desktop/issues/6181 | None | 0:23:37 |
|
||||
| Previous profiles not showing in updated profiles tab (1.9b) | https://github.com/zen-browser/desktop/issues/6180 | 20:27:53 | 21 days, 4:01:07 |
|
||||
| Left Corners of Viewport not rounded | https://github.com/zen-browser/desktop/issues/6179 | 13:37:46 | 21 days, 4:06:34 |
|
||||
| The slider in the homepage settings looks broken | https://github.com/zen-browser/desktop/issues/6178 | 21 days, 4:19:49 | 21 days, 4:19:50 |
|
||||
| Dragging tab out to new window broken. | https://github.com/zen-browser/desktop/issues/6177 | 0:03:05 | 23:47:11 |
|
||||
| Opening existing tab in the new window kills it | https://github.com/zen-browser/desktop/issues/6176 | 0:03:18 | 23:48:12 |
|
||||
| Window Restoring Does not work | https://github.com/zen-browser/desktop/issues/6175 | 1 day, 21:28:01 | 21 days, 4:40:42 |
|
||||
| Splitscreen by dragging tabs is flickering when changing the size. | https://github.com/zen-browser/desktop/issues/6173 | 21 days, 5:10:19 | 21 days, 5:10:20 |
|
||||
| Top search input | https://github.com/zen-browser/desktop/issues/6172 | 21 days, 5:18:21 | 21 days, 5:18:21 |
|
||||
| In a new tab, the search bar appears on the left side of the screen and across the screen. | https://github.com/zen-browser/desktop/issues/6171 | 1:34:32 | 1:34:32 |
|
||||
| Tabs sometimes change places suddenly | https://github.com/zen-browser/desktop/issues/6170 | 21 days, 6:20:00 | 21 days, 6:20:00 |
|
||||
| In a new tab, the search bar appears on the left side of the screen and across the screen. | https://github.com/zen-browser/desktop/issues/6168 | 1:55:46 | 1:55:46 |
|
||||
| Zen browser remains at version 1.8.2b | https://github.com/zen-browser/desktop/issues/6167 | 0:05:28 | 1:57:40 |
|
||||
| Opening new tabs with CTRL-Enter to quickfill .com domains opens wrong URL | https://github.com/zen-browser/desktop/issues/6166 | 9 days, 8:44:39 | 21 days, 7:57:03 |
|
||||
| Extension→ Cant import Yomitan dictionaries when using Containers | https://github.com/zen-browser/desktop/issues/6164 | 21 days, 11:45:50 | 21 days, 11:45:50 |
|
||||
| Compact right tabs has gap | https://github.com/zen-browser/desktop/issues/6163 | 5:20:43 | 21 days, 15:35:02 |
|
||||
| Tab bar resizing area is tiny | https://github.com/zen-browser/desktop/issues/6162 | None | 5:44:57 |
|
||||
| Pinned Tabs are invisible | https://github.com/zen-browser/desktop/issues/6161 | 0:11:58 | 1:02:43 |
|
||||
| Videos wont go fullscreen in split view | https://github.com/zen-browser/desktop/issues/6159 | 21 days, 20:44:47 | 21 days, 20:44:47 |
|
||||
| YouTube is slow | https://github.com/zen-browser/desktop/issues/6157 | 1 day, 16:27:54 | 21 days, 21:07:26 |
|
||||
| Remapped picture-in-picture shortcut does not work for closing PIP | https://github.com/zen-browser/desktop/issues/6155 | 21 days, 21:18:40 | 21 days, 21:18:41 |
|
||||
| Zen mod Cleaned URL bar blur not working outside settings | https://github.com/zen-browser/desktop/issues/6154 | 21 days, 21:23:41 | 21 days, 21:23:42 |
|
||||
| Animated Dialog Element Does not Appear In Zen | https://github.com/zen-browser/desktop/issues/6153 | 21 days, 21:40:57 | 21 days, 21:40:57 |
|
||||
| When resizing the window, the buttons on the right don't disappear and stay in front of the URL bar. | https://github.com/zen-browser/desktop/issues/6152 | 21 days, 22:50:00 | 21 days, 22:50:01 |
|
||||
| Links opened by Thunderbird not recognised | https://github.com/zen-browser/desktop/issues/6150 | 21 days, 23:43:25 | 21 days, 23:43:26 |
|
||||
| Low contrast text if lighter background colors are chosen | https://github.com/zen-browser/desktop/issues/6149 | None | 5 days, 0:37:32 |
|
||||
| Color picker is not able to pick light colors, there's effectively no "light mode" | https://github.com/zen-browser/desktop/issues/6148 | 1 day, 7:05:26 | 5 days, 0:46:22 |
|
||||
| Some essentials missing after moving to a new tab | https://github.com/zen-browser/desktop/issues/6147 | 22 days, 1:10:02 | 22 days, 1:10:03 |
|
||||
| UI Config Saving issue with Toolbar | https://github.com/zen-browser/desktop/issues/6146 | 22 days, 1:20:51 | 22 days, 1:20:52 |
|
||||
| Unable to login into youtube with google account | https://github.com/zen-browser/desktop/issues/6144 | 1:24:03 | 22 days, 1:55:36 |
|
||||
| Close buttons on Mac positioned wrong when sidebar is collapsed | https://github.com/zen-browser/desktop/issues/6143 | 22 days, 1:58:07 | 22 days, 1:58:08 |
|
||||
| Video bug when entering a Google meeting | https://github.com/zen-browser/desktop/issues/6142 | 22 days, 2:21:19 | 22 days, 2:21:19 |
|
||||
| Theme colors leak into websites | https://github.com/zen-browser/desktop/issues/6141 | 2:13:26 | 22 days, 2:48:29 |
|
||||
| Imaginary tab when `zen.urlbar.replace-newtab` set to `false` | https://github.com/zen-browser/desktop/issues/6138 | 4 days, 14:49:34 | 22 days, 3:54:57 |
|
||||
| [1.9t] Icon sizing and positioning issues across UI | https://github.com/zen-browser/desktop/issues/6137 | 1 day, 1:23:48 | 11 days, 21:11:06 |
|
||||
| Extension icons hang off the side of the sidebar, and extension addition confirmation window hangs off the screen | https://github.com/zen-browser/desktop/issues/6135 | 18 days, 8:19:50 | 22 days, 6:38:20 |
|
||||
| Settings show zen-split-view-modifier which is unclear, I think it should be with spaces? | https://github.com/zen-browser/desktop/issues/6134 | 22 days, 7:27:49 | 22 days, 7:27:50 |
|
||||
| Grayish White Rounded Corners Visible when fullscreen in a video on youtube | https://github.com/zen-browser/desktop/issues/6132 | 8:50:42 | 22 days, 9:35:57 |
|
||||
| Zen Browser local building and running shows firefox only not zen type visual | https://github.com/zen-browser/desktop/issues/6128 | None | 3 days, 10:31:16 |
|
||||
| Cannot download files with the flatpak version of Zen | https://github.com/zen-browser/desktop/issues/6127 | 10:53:18 | 22 days, 18:27:20 |
|
||||
| File Browser doesnt list user home directory files | https://github.com/zen-browser/desktop/issues/6126 | 22 days, 18:35:54 | 22 days, 18:35:55 |
|
||||
| Dragging sidebar moves the window | https://github.com/zen-browser/desktop/issues/6125 | 19:01:23 | 22 days, 19:16:45 |
|
||||
| Option to add new tab to the sidebar dissappeared. | https://github.com/zen-browser/desktop/issues/6123 | 22 days, 21:12:43 | 22 days, 21:12:44 |
|
||||
| The sidebar shrinks too much when switching to compact mode while floating is enabled | https://github.com/zen-browser/desktop/issues/6122 | 22 days, 21:15:20 | 22 days, 21:15:20 |
|
||||
| Unable to define a Ctrl+Alt+Tab keyboard shortcut | https://github.com/zen-browser/desktop/issues/6121 | 22 days, 22:08:26 | 22 days, 22:08:26 |
|
||||
| Broken keyboard shortcuts for compact mode | https://github.com/zen-browser/desktop/issues/6120 | 22 days, 22:11:00 | 22 days, 22:11:01 |
|
||||
| Confusing case-insensitivity in the keyboard shortcuts configuration page | https://github.com/zen-browser/desktop/issues/6119 | 22 days, 22:20:02 | 22 days, 22:20:03 |
|
||||
| Keyboard shortcuts stop working in the keyboard shortcuts configuration page | https://github.com/zen-browser/desktop/issues/6118 | 22 days, 22:28:25 | 22 days, 22:28:26 |
|
||||
| "Bookmark this page" and "Show your bookmarks" show the same icon in the tool bar | https://github.com/zen-browser/desktop/issues/6117 | 22 days, 23:37:40 | 22 days, 23:37:41 |
|
||||
| cmd+t toolbar partly hidden form the viewport | https://github.com/zen-browser/desktop/issues/6115 | 21:52:58 | 23 days, 4:34:42 |
|
||||
| [1.8.2b] Print dialog invisible/does not appear. | https://github.com/zen-browser/desktop/issues/6113 | 6:55:27 | 9:17:48 |
|
||||
| Blinking issue when activating window | https://github.com/zen-browser/desktop/issues/6112 | 23 days, 6:09:34 | 23 days, 6:09:35 |
|
||||
| Workspace bottom indicator is not updated when scrolling the sidebar while another Zen window is focused | https://github.com/zen-browser/desktop/issues/6111 | 23 days, 6:38:54 | 23 days, 6:38:55 |
|
||||
| 'Restore Window' feature not restoring tabs | https://github.com/zen-browser/desktop/issues/6109 | 5 days, 9:13:22 | 23 days, 9:27:14 |
|
||||
| Can't open item in history | https://github.com/zen-browser/desktop/issues/6107 | 0:30:19 | 0:30:20 |
|
||||
| Opening browser changes tab order | https://github.com/zen-browser/desktop/issues/6106 | 12:05:44 | 23 days, 12:02:25 |
|
||||
| Sidebery box position incorrect for autohide | https://github.com/zen-browser/desktop/issues/6105 | 23 days, 14:15:07 | 23 days, 14:15:08 |
|
||||
| Tabs on right has an empty margin | https://github.com/zen-browser/desktop/issues/6103 | 23 days, 14:47:19 | 23 days, 14:47:20 |
|
||||
| Sidebery Mod page incorrect author | https://github.com/zen-browser/desktop/issues/6102 | 4:41:28 | 4:41:51 |
|
||||
| Top toolbar is shown when hovering the top side of the screen in "single toolbar" layout with "compact mode" | https://github.com/zen-browser/desktop/issues/6101 | 21 days, 17:27:45 | 23 days, 16:12:17 |
|
||||
| Blank Display when closing all non-pinned and non-essentials tabs | https://github.com/zen-browser/desktop/issues/6100 | 0:32:08 | 0:32:08 |
|
||||
| Unable to Move Last Tab to Second Last Position | https://github.com/zen-browser/desktop/issues/6099 | 1 day, 14:33:30 | 5 days, 14:21:59 |
|
||||
| New tab bar popup doesn't open when in full screen mode | https://github.com/zen-browser/desktop/issues/6098 | 23 days, 18:38:04 | 23 days, 18:38:05 |
|
||||
| research bar not showing text | https://github.com/zen-browser/desktop/issues/6097 | 8:21:53 | 23 days, 18:52:30 |
|
||||
| Research obscuring the bar | https://github.com/zen-browser/desktop/issues/6096 | 8:22:31 | 23 days, 18:53:34 |
|
||||
| Browser does not render pages even after minutes of being open | https://github.com/zen-browser/desktop/issues/6095 | 23 days, 19:59:56 | 23 days, 19:59:56 |
|
||||
| Status bar graphical issue | https://github.com/zen-browser/desktop/issues/6094 | 23 days, 20:00:58 | 23 days, 20:00:59 |
|
||||
| Can't scroll when cursor is all the way to the right | https://github.com/zen-browser/desktop/issues/6093 | 0:48:37 | 23 days, 20:47:17 |
|
||||
| Browser Freezes and Fails to Open | https://github.com/zen-browser/desktop/issues/6092 | None | 4 days, 16:43:45 |
|
||||
| Essential Tabs Are Forgetting the URL | https://github.com/zen-browser/desktop/issues/6090 | 16:29:57 | 17:55:06 |
|
||||
| Google Flights date picker slowing the browser | https://github.com/zen-browser/desktop/issues/6089 | 23 days, 22:28:19 | 23 days, 22:28:19 |
|
||||
| URL suggestions cover the URL bar while typing in "multiple toolbars" and "collapsed toolbar" modes | https://github.com/zen-browser/desktop/issues/6088 | 23 days, 22:50:14 | 23 days, 22:50:15 |
|
||||
| Cross-site cookies being blocked when they are allowed, only appearing with Salesforce | https://github.com/zen-browser/desktop/issues/6087 | 23 days, 22:50:41 | 23 days, 22:50:41 |
|
||||
| High Memory usage on windows | https://github.com/zen-browser/desktop/issues/6085 | 4:09:52 | 24 days, 0:01:10 |
|
||||
| Browser not properly filling up entire screen | https://github.com/zen-browser/desktop/issues/6084 | 24 days, 0:17:39 | 24 days, 0:17:40 |
|
||||
| Cannot Bind Specific Keyboard Shortcuts | https://github.com/zen-browser/desktop/issues/6083 | 24 days, 0:51:36 | 24 days, 0:51:37 |
|
||||
| Opening previous windows and tabs on start up | https://github.com/zen-browser/desktop/issues/6080 | 20:13:06 | 24 days, 1:31:18 |
|
||||
| YouTube not opening in theater mode | https://github.com/zen-browser/desktop/issues/6078 | 24 days, 1:55:03 | 24 days, 1:55:03 |
|
||||
| Cannot Finish Initial Config due to missing Next Button on Color / Accent Chooser | https://github.com/zen-browser/desktop/issues/6076 | 24 days, 2:23:02 | 24 days, 2:23:02 |
|
||||
| Unable to fully integrate GTK and QT themes | https://github.com/zen-browser/desktop/issues/6074 | 1 day, 4:58:09 | 24 days, 4:44:34 |
|
||||
| can not install any firefox themes | https://github.com/zen-browser/desktop/issues/6073 | 18:28:31 | 18:28:31 |
|
||||
| No icon on windows | https://github.com/zen-browser/desktop/issues/6071 | 0:12:31 | 0:23:42 |
|
||||
| Twilight Browser: Unexpected Blur Transparency After Update | https://github.com/zen-browser/desktop/issues/6069 | 7:36:42 | 24 days, 11:03:57 |
|
||||
| New tabs open as essentials; essentials do not retain order | https://github.com/zen-browser/desktop/issues/6068 | None | 1 day, 15:21:33 |
|
||||
| [macOS] Close, minimize, and maximize buttons remain grayed out in active window | https://github.com/zen-browser/desktop/issues/6067 | 2:27:22 | 19:10:27 |
|
||||
| [Regression 1.8b+] Tab session extensions cannot record across workspaces anymore | https://github.com/zen-browser/desktop/issues/6066 | 24 days, 15:28:29 | 24 days, 15:28:29 |
|
||||
| Address Bar Shifts Slightly When Clicking to Edit | https://github.com/zen-browser/desktop/issues/6065 | 24 days, 16:38:42 | 24 days, 16:38:43 |
|
||||
| Drag and Dropping files causes Zen to hang the system literally | https://github.com/zen-browser/desktop/issues/6062 | 24 days, 19:32:45 | 24 days, 19:32:46 |
|
||||
| Interfering tabs | https://github.com/zen-browser/desktop/issues/6061 | 16:53:50 | 24 days, 21:13:04 |
|
||||
| crashes on startup | https://github.com/zen-browser/desktop/issues/6060 | None | 5:35:50 |
|
||||
| Extension icons and buttons are behaving strangely | https://github.com/zen-browser/desktop/issues/6058 | None | 5 days, 2:56:33 |
|
||||
| Pink Youtube Filter | https://github.com/zen-browser/desktop/issues/6057 | 0:17:06 | 4 days, 17:58:17 |
|
||||
| Essentials & Pinned tabs icons disappear when browser history is cleared | https://github.com/zen-browser/desktop/issues/6056 | 24 days, 23:31:36 | 24 days, 23:31:37 |
|
||||
| word processor lag | https://github.com/zen-browser/desktop/issues/6055 | 10:55:49 | 24 days, 23:41:56 |
|
||||
| Renamed Tabs Not Detected | https://github.com/zen-browser/desktop/issues/6054 | 2:36:44 | 24 days, 23:42:42 |
|
||||
| Browser Freezes When Expanding Toolbar Options Menu in Shrinked Window State | https://github.com/zen-browser/desktop/issues/6052 | 25 days, 1:06:47 | 25 days, 1:06:47 |
|
||||
| [Nobara GNOME44] Modal dialog appears almost out of screen | https://github.com/zen-browser/desktop/issues/6051 | 6:11:27 | 8 days, 4:40:40 |
|
||||
| Zen doesn't follow KDE Plasma accent colors | https://github.com/zen-browser/desktop/issues/6050 | 25 days, 4:07:30 | 25 days, 4:07:30 |
|
||||
| [Twilight] Cannot get Drag and Drop split view to work. | https://github.com/zen-browser/desktop/issues/6049 | None | 8 days, 8:33:12 |
|
||||
| Browser lockup when closing tabs on prolonged browser usage | https://github.com/zen-browser/desktop/issues/6048 | 25 days, 4:22:26 | 25 days, 4:22:26 |
|
||||
| Sidebar icons off-center | https://github.com/zen-browser/desktop/issues/6047 | 25 days, 4:34:30 | 25 days, 4:34:31 |
|
||||
| Muffled headset after using Google Meet never worked again | https://github.com/zen-browser/desktop/issues/6045 | 8:04:31 | 25 days, 4:58:54 |
|
||||
| Zen only allows me to save file not open it with anything | https://github.com/zen-browser/desktop/issues/6044 | 25 days, 4:59:47 | 25 days, 4:59:47 |
|
||||
| Troubleshoot Mode dialog permanently opening | https://github.com/zen-browser/desktop/issues/6043 | 9 days, 0:26:55 | 25 days, 5:09:25 |
|
||||
| Sidebar greyed out + Error with split view | https://github.com/zen-browser/desktop/issues/6041 | 0:46:52 | 25 days, 6:00:03 |
|
||||
| Sidebar and toolbar permanently greyed out | https://github.com/zen-browser/desktop/issues/6039 | 8:32:06 | 25 days, 15:50:20 |
|
||||
| Audio glitches when playback in resource intensive situations | https://github.com/zen-browser/desktop/issues/6038 | 25 days, 16:36:18 | 25 days, 16:36:19 |
|
||||
| Appears unfocused when focused | https://github.com/zen-browser/desktop/issues/6036 | 25 days, 16:50:21 | 25 days, 16:50:22 |
|
||||
| Zen browser having blank window before starting ( Have to launch zen two times ) | https://github.com/zen-browser/desktop/issues/6033 | 25 days, 19:11:18 | 25 days, 19:11:19 |
|
||||
| 'Ask before closing multiple tabs' feature does not work as intended. | https://github.com/zen-browser/desktop/issues/6032 | 2 days, 9:20:00 | 25 days, 21:20:12 |
|
||||
| Can't focus on Tiktok live comments | https://github.com/zen-browser/desktop/issues/6029 | 25 days, 22:11:33 | 25 days, 22:11:34 |
|
||||
| can´t see downloads in toolbar | https://github.com/zen-browser/desktop/issues/6028 | 2:33:42 | 25 days, 22:22:07 |
|
||||
| New Tab popup does not allow right click context menu (for pasting etc) | https://github.com/zen-browser/desktop/issues/6027 | 25 days, 23:06:49 | 25 days, 23:06:50 |
|
||||
| Tab Resizing Bug on macOS on tab split (16" Integrated Display) | https://github.com/zen-browser/desktop/issues/6025 | 26 days, 1:01:54 | 26 days, 1:01:54 |
|
||||
| Floating url goes outside of the window | https://github.com/zen-browser/desktop/issues/6024 | 1:04:46 | 5 days, 20:24:46 |
|
||||
| Private Window - Focus URL bar when the window is opened | https://github.com/zen-browser/desktop/issues/6023 | 26 days, 2:29:05 | 26 days, 2:29:05 |
|
||||
| "grain" UI effect cause scroll lag | https://github.com/zen-browser/desktop/issues/6022 | 26 days, 2:58:31 | 26 days, 2:58:32 |
|
||||
| Sidebar buttons are visible on the devtools notification | https://github.com/zen-browser/desktop/issues/6020 | 6 days, 0:38:52 | 26 days, 3:20:13 |
|
||||
| Tabs from closed workspace appears in other workspace after reopening Zen | https://github.com/zen-browser/desktop/issues/6019 | 4 days, 4:06:04 | 26 days, 3:24:29 |
|
||||
| Bounce not working properly | https://github.com/zen-browser/desktop/issues/6018 | 4 days, 15:57:50 | 6 days, 18:00:59 |
|
||||
| [Twilight] Glance not auto opening in external links anymore | https://github.com/zen-browser/desktop/issues/6017 | None | 9 days, 8:55:46 |
|
||||
| Toolbar customisation doesn't update until window is moved | https://github.com/zen-browser/desktop/issues/6015 | 9 days, 3:38:13 | 26 days, 5:53:48 |
|
||||
| Websocket application not working. | https://github.com/zen-browser/desktop/issues/6014 | None | 1 day, 1:51:42 |
|
||||
| Bug when Title bar is turned off | https://github.com/zen-browser/desktop/issues/6013 | 26 days, 6:21:07 | 26 days, 6:21:07 |
|
||||
| Zen won't follow my system theme | https://github.com/zen-browser/desktop/issues/6011 | 26 days, 9:23:29 | 26 days, 9:23:30 |
|
||||
| Why WidevineCDM is not present if there is posible to include it for free | https://github.com/zen-browser/desktop/issues/6009 | None | 1 day, 3:10:51 |
|
||||
| Weird animation with lag in single toolbar | https://github.com/zen-browser/desktop/issues/6007 | 26 days, 11:57:52 | 26 days, 11:57:53 |
|
||||
| Zen-specific HotKey to forward workspace (Option + Cmd + E) does not work on MacOS | https://github.com/zen-browser/desktop/issues/6006 | 26 days, 12:26:40 | 26 days, 12:26:41 |
|
||||
| minor DRM popup compact mode bug | https://github.com/zen-browser/desktop/issues/6005 | 26 days, 12:55:13 | 26 days, 12:55:13 |
|
||||
| Can't skip revamped welcome page | https://github.com/zen-browser/desktop/issues/6004 | 26 days, 13:00:01 | 26 days, 13:00:01 |
|
||||
| Improve Chiniese translation | https://github.com/zen-browser/desktop/issues/6003 | 26 days, 13:28:27 | 26 days, 13:28:27 |
|
||||
| Restoring Windows and Tab orders. | https://github.com/zen-browser/desktop/issues/6002 | 26 days, 14:11:17 | 26 days, 14:11:17 |
|
||||
| Drag & drop images not working in compact mode | https://github.com/zen-browser/desktop/issues/6001 | 26 days, 14:11:20 | 26 days, 14:11:21 |
|
||||
| New tab is not a new tab, space bar is weird | https://github.com/zen-browser/desktop/issues/5997 | 12:24:08 | 26 days, 16:41:26 |
|
||||
| Bookmarks Menu Toolbar Keyboard Shortcut Opens Library, not List | https://github.com/zen-browser/desktop/issues/5996 | 26 days, 19:20:52 | 26 days, 19:20:53 |
|
||||
| Cannot open links in History menu | https://github.com/zen-browser/desktop/issues/5995 | 1:46:38 | 13:52:31 |
|
||||
| Gnome keeps asking to make it default browser | https://github.com/zen-browser/desktop/issues/5994 | 1:19:34 | 26 days, 20:28:53 |
|
||||
| Toggle floating sidebar shortcut doesn´t work | https://github.com/zen-browser/desktop/issues/5993 | 26 days, 20:30:19 | 26 days, 20:30:20 |
|
||||
| Unable to render PDF on Overleaf | https://github.com/zen-browser/desktop/issues/5992 | 26 days, 21:03:38 | 26 days, 21:03:39 |
|
||||
| half shown url bar when using compact mode | https://github.com/zen-browser/desktop/issues/5991 | 26 days, 21:20:04 | 26 days, 21:20:04 |
|
||||
| new tab floating bar in wrong location on 16:9 ultrawide display | https://github.com/zen-browser/desktop/issues/5990 | 0:20:32 | 26 days, 22:57:02 |
|
||||
| Electron has a weird thin white line at the top | https://github.com/zen-browser/desktop/issues/5989 | 26 days, 23:50:00 | 26 days, 23:50:01 |
|
||||
| Opens a weird tab after closing all tabs | https://github.com/zen-browser/desktop/issues/5985 | 20:00:45 | 27 days, 1:37:50 |
|
||||
| No option to close active "Essential" tabs | https://github.com/zen-browser/desktop/issues/5984 | None | 7:19:02 |
|
||||
| Not possible to open links from Bookmark Library Window | https://github.com/zen-browser/desktop/issues/5983 | 1 day, 1:26:26 | 4 days, 21:49:49 |
|
||||
| Location icon way too small visually | https://github.com/zen-browser/desktop/issues/5982 | 27 days, 2:18:13 | 27 days, 2:18:14 |
|
||||
| History links cannot be clicked/opened | https://github.com/zen-browser/desktop/issues/5975 | 1:28:47 | 1:33:11 |
|
||||
| Shows unnecessary scroll bar when maximized | https://github.com/zen-browser/desktop/issues/5974 | 27 days, 5:25:43 | 27 days, 5:25:44 |
|
||||
| Missing pinned tabs and big empty space in tab bar | https://github.com/zen-browser/desktop/issues/5973 | 3:37:37 | 27 days, 6:18:53 |
|
||||
| Browser switches to blank page instead of wrapping to the first/last tab when tabs switching is done by an add-on | https://github.com/zen-browser/desktop/issues/5970 | 4:23:43 | 13:37:22 |
|
||||
| Floating URL bar breaks after clearing browsing history | https://github.com/zen-browser/desktop/issues/5967 | 7:33:33 | 27 days, 15:10:30 |
|
||||
| taking its sweet time | https://github.com/zen-browser/desktop/issues/5966 | None | 6 days, 1:48:55 |
|
||||
| keyboard shortcut priority | https://github.com/zen-browser/desktop/issues/5963 | 7 days, 20:54:12 | 27 days, 15:42:11 |
|
||||
| M365 COPILOT OFFICE | https://github.com/zen-browser/desktop/issues/5962 | 2 days, 15:34:29 | 27 days, 15:43:50 |
|
||||
| Tab selection panel is visible as transparent after exiting full-screen while watching media on YouTube, Netflix and more.. | https://github.com/zen-browser/desktop/issues/5959 | 20:40:11 | 22:08:11 |
|
||||
| Moving a tab moves it one tab lower than it's supposed to | https://github.com/zen-browser/desktop/issues/5958 | 2 days, 18:28:41 | 27 days, 19:19:20 |
|
||||
| Profiles switcher gone | https://github.com/zen-browser/desktop/issues/5957 | 0:03:37 | 0:18:58 |
|
||||
| [Twilight] More split group issues | https://github.com/zen-browser/desktop/issues/5955 | 5:30:25 | 5:30:25 |
|
||||
| [Twilight] Split View Tabs Can be Removed From Group | https://github.com/zen-browser/desktop/issues/5954 | None | 6:17:14 |
|
||||
| ublock functionality is inconsistent in side panel | https://github.com/zen-browser/desktop/issues/5953 | 27 days, 23:14:03 | 27 days, 23:14:04 |
|
||||
| Unable to install CA certificate | https://github.com/zen-browser/desktop/issues/5951 | 3:31:20 | 28 days, 1:29:01 |
|
||||
| Glance (alt+click) in split tabs | https://github.com/zen-browser/desktop/issues/5950 | 8 days, 10:42:00 | 28 days, 1:32:54 |
|
||||
| No such native application org.gnome.chrome_gnome_shell | https://github.com/zen-browser/desktop/issues/5949 | 28 days, 1:33:24 | 28 days, 1:33:24 |
|
||||
| Solved / iCloud bookmarks extension won't work | https://github.com/zen-browser/desktop/issues/5948 | None | 0:06:26 |
|
||||
| Telemtry and privacy issues with the browser | https://github.com/zen-browser/desktop/issues/5947 | 10:18:42 | 10:27:06 |
|
||||
| Scrolling with Pen Tablet Only Works in Pinned Tabs | https://github.com/zen-browser/desktop/issues/5946 | 28 days, 3:05:38 | 28 days, 3:05:38 |
|
||||
| Scrolling with Pen Tablet Only Works in Pinned Tabs | https://github.com/zen-browser/desktop/issues/5945 | None | 0:00:59 |
|
||||
| Inconsistent Window Dragging | https://github.com/zen-browser/desktop/issues/5944 | 1 day, 10:40:42 | 28 days, 3:10:15 |
|
||||
| Inconsistent Window Dragging | https://github.com/zen-browser/desktop/issues/5943 | None | 0:01:24 |
|
||||
| Unload Tabs not working for pinned and essentials tabs | https://github.com/zen-browser/desktop/issues/5942 | 28 days, 3:40:31 | 28 days, 3:40:31 |
|
||||
| Randomized tabs | https://github.com/zen-browser/desktop/issues/5940 | 0:39:53 | 28 days, 5:15:03 |
|
||||
| Certificate Manager | https://github.com/zen-browser/desktop/issues/5936 | None | 2:37:58 |
|
||||
| Essential tabs keep getting re-arranged after closing zen | https://github.com/zen-browser/desktop/issues/5935 | None | 0:05:14 |
|
||||
| zen.urlbar.replace-newtab & zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed - Not working as intended in combination | https://github.com/zen-browser/desktop/issues/5933 | 22:25:28 | 28 days, 8:04:42 |
|
||||
| Do the new privacy changes to Firefox apply to zen? | https://github.com/zen-browser/desktop/issues/5932 | 2:05:45 | 2:35:47 |
|
||||
| security key is not being recognized | https://github.com/zen-browser/desktop/issues/5931 | 0:16:40 | 4:43:16 |
|
||||
| I can't watch anything on netflix | https://github.com/zen-browser/desktop/issues/5930 | 0:05:38 | 4:45:35 |
|
||||
| External links open in no container | https://github.com/zen-browser/desktop/issues/5929 | 2 days, 2:53:20 | 9 days, 6:53:45 |
|
||||
| CTRL + Shift + H (History) Is not working | https://github.com/zen-browser/desktop/issues/5928 | 22:03:13 | 2 days, 3:44:26 |
|
||||
| Automatically opens pinned tabs in the background without user action | https://github.com/zen-browser/desktop/issues/5927 | 2 days, 21:08:37 | 28 days, 10:24:22 |
|
||||
| Drag and Drop File Causes Browser to Close | https://github.com/zen-browser/desktop/issues/5926 | 25 days, 22:32:51 | 28 days, 10:31:17 |
|
||||
| App Takes Longer to Open After Update | https://github.com/zen-browser/desktop/issues/5925 | 28 days, 10:35:41 | 28 days, 10:35:42 |
|
||||
| system extensions don't work | https://github.com/zen-browser/desktop/issues/5923 | 28 days, 11:29:06 | 28 days, 11:29:06 |
|
||||
| If you pin a tab then try to switch to any other tab, the browser hangs trying to switch tabs. | https://github.com/zen-browser/desktop/issues/5922 | 28 days, 13:43:19 | 28 days, 13:43:19 |
|
||||
| DuckDuckGo Fills Suggestions & History | https://github.com/zen-browser/desktop/issues/5921 | 28 days, 13:44:28 | 28 days, 13:44:28 |
|
||||
| Restoring window from "Recently Closed Windows" does not work | https://github.com/zen-browser/desktop/issues/5920 | 2 days, 18:33:35 | 28 days, 14:10:13 |
|
||||
| [Twilight] Tab groups not persistent through session restart | https://github.com/zen-browser/desktop/issues/5919 | 21:48:30 | 21:48:30 |
|
||||
|
||||
_This report was generated with the [Issue Metrics Action](https://github.com/github/issue-metrics)_
|
||||
Search query used to find these items: `repo:zen-browser/desktop is:issue created:2025-03-01..2025-03-31`
|
@@ -1,15 +0,0 @@
|
||||
# Zen Side Panels
|
||||
|
||||
The `zen.sidepanels.data` configuration will be a JSON string that follows the following data:
|
||||
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"p1": {
|
||||
"url": "https://google.com",
|
||||
"ua": false // "ua" may not be declared! (default: false)
|
||||
}
|
||||
},
|
||||
"index": ["p1"]
|
||||
}
|
||||
```
|
@@ -1 +0,0 @@
|
||||
6013afe489c3d5e19c5f0d0f6c3f94b91f5bd7d1
|
2
l10n
2
l10n
Submodule l10n updated: 7c14b58a28...950562cd71
27
package-lock.json
generated
27
package-lock.json
generated
@@ -1,17 +1,18 @@
|
||||
{
|
||||
"name": "zen-core",
|
||||
"name": "zen-desktop",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "zen-core",
|
||||
"name": "zen-desktop",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@zen-browser/surfer": "^1.10.5"
|
||||
"@zen-browser/surfer": "^1.11.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"formal-git": "^1.1.5",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^15.3.0",
|
||||
"prettier": "^3.4.2",
|
||||
@@ -288,9 +289,10 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@zen-browser/surfer": {
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.10.5.tgz",
|
||||
"integrity": "sha512-jpGArye02C6M65qy0b5kZWzDBO5sh/BY6k2otC1keAjICm9lxELsh5ELRz0tVQ6kwrBUC3yE4uP8jzUgQdCuCg==",
|
||||
"version": "1.11.7",
|
||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.7.tgz",
|
||||
"integrity": "sha512-ltIjDwPiSKmnKYjlTtD307t5h9+igi7YZu3pNlFl0SgvmTGRv9Ayit6CPllN5HGaMoI9jftOSeAaeFX2uRG4Yg==",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@resvg/resvg-js": "^1.4.0",
|
||||
"async-icns": "^1.0.2",
|
||||
@@ -1027,6 +1029,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/formal-git": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/formal-git/-/formal-git-1.1.5.tgz",
|
||||
"integrity": "sha512-cSPoV0+/LFdUsE+fCGxCOK/eJNZeWj5c+6IxB3PP3QkeWIgdQFgw+RObnnpG/0KOsXy8mFrsD6tkEHbGjNGMpQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"fo": "lib/main.js",
|
||||
"formal-git": "lib/main.js"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
|
14
package.json
14
package.json
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "zen-core",
|
||||
"name": "zen-desktop",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"lint-staged": {
|
||||
@@ -17,7 +17,6 @@
|
||||
"package": "surfer package",
|
||||
"update-ff": "python3 scripts/update_ff.py",
|
||||
"update-ff:raw": "surfer update",
|
||||
"update-newtab": "python3 scripts/update_newtab.py",
|
||||
"update-ff:rc": "python3 scripts/update_ff.py --rc",
|
||||
"update-ff:l10n": "python3 scripts/update_ff.py --just-l10n",
|
||||
"pretty": "prettier . --write && autopep8 -r --in-place scripts/ src/",
|
||||
@@ -28,22 +27,23 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/zen-browser/core.git"
|
||||
"url": "git+https://github.com/zen-browser/desktop.git"
|
||||
},
|
||||
"hooks": {
|
||||
"pre-commit": "npm run prepare"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"license": "MPL-2.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/zen-browser/core/issues"
|
||||
"url": "https://github.com/zen-browser/desktop/issues"
|
||||
},
|
||||
"homepage": "https://github.com/zen-browser/core#readme",
|
||||
"homepage": "https://github.com/zen-browser/desktop#readme",
|
||||
"dependencies": {
|
||||
"@zen-browser/surfer": "^1.10.5"
|
||||
"@zen-browser/surfer": "^1.11.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"formal-git": "^1.1.5",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^15.3.0",
|
||||
"prettier": "^3.4.2",
|
||||
|
@@ -1,4 +1,12 @@
|
||||
set -ex
|
||||
set -x
|
||||
|
||||
if ! [ -z "$ZEN_L10N_CURR_DIR" ]; then
|
||||
cd $ZEN_L10N_CURR_DIR
|
||||
fi
|
||||
|
||||
# remove "\r" from ./l10n/supported-languages
|
||||
# note: it's fine if it fails
|
||||
sed -i 's/\r$//' ./l10n/supported-languages
|
||||
|
||||
CURRENT_DIR=$(pwd)
|
||||
|
||||
@@ -7,7 +15,7 @@ git config --global fetch.prune true
|
||||
|
||||
cd $CURRENT_DIR
|
||||
|
||||
LAST_FIREFOX_L10N_COMMIT=$(cat ./firefox-cache/l10n-last-commit-hash)
|
||||
LAST_FIREFOX_L10N_COMMIT=$(cat ./build/firefox-cache/l10n-last-commit-hash)
|
||||
|
||||
cd ./l10n
|
||||
rm -rf firefox-l10n
|
||||
@@ -17,6 +25,16 @@ cd firefox-l10n
|
||||
git checkout $LAST_FIREFOX_L10N_COMMIT
|
||||
cd $CURRENT_DIR
|
||||
|
||||
rsyncExists=$(command -v rsync)
|
||||
|
||||
if [ -z "$rsyncExists" ]; then
|
||||
echo "rsync not found, using cp instead"
|
||||
else
|
||||
echo "rsync found!"
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
update_language() {
|
||||
langId=$1
|
||||
cd ./l10n
|
||||
@@ -24,7 +42,13 @@ update_language() {
|
||||
|
||||
echo "Updating $langId"
|
||||
# move the contents from ../firefox-l10n/$langId to ./l10n/$langId
|
||||
rsync -av --progress ../firefox-l10n/$langId/ . --exclude .git
|
||||
# if rsync exists, use it
|
||||
# if not, use cp
|
||||
if [ -z "$rsyncExists" ]; then
|
||||
cp -r $CURRENT_DIR/l10n/firefox-l10n/$langId/* .
|
||||
else
|
||||
rsync -av --progress ../firefox-l10n/$langId/ . --exclude .git
|
||||
fi
|
||||
|
||||
cd $CURRENT_DIR
|
||||
}
|
||||
|
30
scripts/fetch-formal-git-components.sh
Normal file
30
scripts/fetch-formal-git-components.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
COMPONENT_ROOT=$(pwd)/src/zen
|
||||
|
||||
EXTRA_COMPONENTS=(
|
||||
"scripts"
|
||||
"workflows"
|
||||
"winsign"
|
||||
"flatpak"
|
||||
"configs"
|
||||
)
|
||||
|
||||
echo "" > .formal-git/components
|
||||
|
||||
# iterate top directories and adding the base name to .formal-git/components
|
||||
for dir in $(find $COMPONENT_ROOT -maxdepth 1 -type d | grep -v '\.git' | grep -v 'node_modules' | grep -v 'engine'); do
|
||||
if [ "$dir" != "$COMPONENT_ROOT" ]; then
|
||||
echo "$(basename $dir)" >> .formal-git/components
|
||||
fi
|
||||
done
|
||||
|
||||
# iterate over the extra components and adding them to .formal-git/components
|
||||
for extra in "${EXTRA_COMPONENTS[@]}"; do
|
||||
echo "$extra" >> .formal-git/components
|
||||
done
|
||||
|
||||
# remove all empty lines
|
||||
sed -i '/^$/d' .formal-git/components
|
26
scripts/recalculate-patches.sh
Normal file
26
scripts/recalculate-patches.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Recursively find all .patch files in the current directory and its subdirectories
|
||||
find src -type f -name "*.patch" | while read -r patch_file; do
|
||||
# Replace all - with . and remove the .patch extension
|
||||
new_file="${patch_file%/*}/$(basename "$patch_file" | sed 's/-/./' | sed 's/\.patch$//').patch"
|
||||
new_file="${new_file%.patch}"
|
||||
new_file="${new_file#src/}"
|
||||
|
||||
if [[ $new_file == *-mjs ]]; then
|
||||
new_file="${new_file/-mjs/.mjs}"
|
||||
fi
|
||||
if [[ $new_file == *-ftl ]]; then
|
||||
new_file="${new_file/-ftl/.ftl}"
|
||||
fi
|
||||
|
||||
# Create the new file with the same content as the original
|
||||
npm run export ${new_file} &
|
||||
done
|
||||
|
||||
for job in $(jobs -p); do
|
||||
echo $job
|
||||
wait $job || let "FAIL+=1"
|
||||
done
|
||||
|
||||
echo "All patches have been exported successfully."
|
@@ -1,21 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
gh_bulk_delete_workflow_runs() {
|
||||
local repo=$1
|
||||
local repo=zen-browser/$1
|
||||
|
||||
# Ensure the repo argument is provided
|
||||
if [[ -z "$repo" ]]; then
|
||||
echo "Usage: gh_bulk_delete_workflow_runs <owner/repo>"
|
||||
echo "Usage: gh_bulk_delete_workflow_runs <repo>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Fetch workflow runs that are cancelled, failed, or timed out
|
||||
local runs
|
||||
runs=$(gh api repos/$repo/actions/runs --paginate \
|
||||
| jq -r '.workflow_runs[] |
|
||||
select(.conclusion == "cancelled" or
|
||||
.conclusion == "failure" or
|
||||
.conclusion == "timed_out") |
|
||||
| jq -r '.workflow_runs[] |
|
||||
select(.conclusion == "cancelled" or
|
||||
.conclusion == "failure" or
|
||||
.conclusion == "timed_out") |
|
||||
.id')
|
||||
|
||||
if [[ -z "$runs" ]]; then
|
||||
|
@@ -61,14 +61,14 @@ def update_l10n_last_commit_hash():
|
||||
L10N_REPO = "https://github.com/mozilla-l10n/firefox-l10n"
|
||||
try:
|
||||
os.system(f"git clone {L10N_REPO} l10n-temp --depth 1")
|
||||
if not os.path.exists("firefox-cache"):
|
||||
os.mkdir("firefox-cache")
|
||||
os.system("cat l10n-temp/.git/refs/heads/main > firefox-cache/l10n-last-commit-hash")
|
||||
if not os.path.exists("build/firefox-cache"):
|
||||
os.mkdir("build/firefox-cache")
|
||||
os.system("cat l10n-temp/.git/refs/heads/main > build/firefox-cache/l10n-last-commit-hash")
|
||||
# Remove new line character
|
||||
data = ""
|
||||
with open("firefox-cache/l10n-last-commit-hash", "r") as f:
|
||||
with open("build/firefox-cache/l10n-last-commit-hash", "r") as f:
|
||||
data = f.read()
|
||||
with open("firefox-cache/l10n-last-commit-hash", "w") as f:
|
||||
with open("build/firefox-cache/l10n-last-commit-hash", "w") as f:
|
||||
f.write(data.strip())
|
||||
except KeyboardInterrupt:
|
||||
print("Exiting...")
|
||||
|
@@ -1,41 +0,0 @@
|
||||
import os
|
||||
import subprocess
|
||||
import logging
|
||||
|
||||
# Set up logging
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
# Constants for paths
|
||||
NEW_TAB_DIR = "./engine/browser/components/newtab"
|
||||
ENGINE_DIR = "./engine"
|
||||
NPM_INSTALL_COMMANDS = ["npm install", "npm install meow@9.0.0"]
|
||||
BUNDLE_COMMAND = "npm run bundle --prefix=browser/components/newtab"
|
||||
|
||||
|
||||
def install_dependencies():
|
||||
"""Install necessary npm packages for the newtab component."""
|
||||
for command in NPM_INSTALL_COMMANDS:
|
||||
logging.info(f"Running command: {command} in {NEW_TAB_DIR}")
|
||||
subprocess.run(command.split(), cwd=NEW_TAB_DIR, check=True)
|
||||
|
||||
|
||||
def bundle_newtab_components():
|
||||
"""Bundle the newtab components."""
|
||||
logging.info(f"Bundling newtab components in {ENGINE_DIR}")
|
||||
subprocess.run(BUNDLE_COMMAND.split(), cwd=ENGINE_DIR, check=True)
|
||||
|
||||
|
||||
def update_newtab(init: bool = True):
|
||||
"""Update the newtab components, optionally initializing dependencies."""
|
||||
try:
|
||||
if init:
|
||||
install_dependencies()
|
||||
|
||||
bundle_newtab_components()
|
||||
except subprocess.CalledProcessError as e:
|
||||
logging.error(f"An error occurred: {e}")
|
||||
raise
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
update_newtab(init=False)
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index da2fbe8c40fa40a86c350f8adb33e26915fecc7b..e5a571fc41cd4fa8d2cdffdc15f9ad083e6d36fb 100644
|
||||
index c91f39b3afbe712355194593ae39514a83de6605..e6c2b77a69d9274ff1c7578ab4df4f07533f7441 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -3912,8 +3912,6 @@ dependencies = [
|
||||
@@ -3850,8 +3850,6 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mime_guess"
|
||||
version = "2.0.4"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 19a470608b7de28a946353d4c09a56b4dd3fd69a..37e9687c86b5725ee5d5071b632b5927ffb6bd27 100644
|
||||
index a99b447250d36dd0146e031fa22503bc88eeae39..86829fc7075054f832a04825c98325a925cf5b0f 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -201,6 +201,9 @@ rure = { path = "third_party/rust/rure" }
|
||||
@@ -205,6 +205,9 @@ rure = { path = "third_party/rust/rure" }
|
||||
# Patch `plist` to work with `indexmap` 2.*
|
||||
plist = { path = "third_party/rust/plist" }
|
||||
|
||||
|
12
src/browser/actors/WebRTCParent-sys-mjs.patch
Normal file
12
src/browser/actors/WebRTCParent-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||
index be66de4a1ef044341c2e1d6953806550897df45a..ff6ef3511076b25e00ca4d0189f666ec7aa94fe8 100644
|
||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||
|
||||
let tabbrowser = browser.ownerGlobal.gBrowser;
|
||||
if (tabbrowser) {
|
||||
+ browser.ownerGlobal.gZenMediaController.updateMediaSharing(state);
|
||||
tabbrowser.updateBrowserSharing(browser, {
|
||||
webRTC: state,
|
||||
});
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||
index a39a4f287ef843f7e0cdeac8320eeff81318116f..f84cdb85c249221522089667010d547cfab67819 100644
|
||||
index 78572e5480a6137c5b7de89c489956f5d68ef698..1c72fe9a5419e211dea25271113981aeda46ec66 100644
|
||||
--- a/browser/app/profile/firefox.js
|
||||
+++ b/browser/app/profile/firefox.js
|
||||
@@ -3190,3 +3190,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||
@@ -3363,3 +3363,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
||||
// Pref to enable extra logging for the content relevancy feature
|
||||
pref("toolkit.contentRelevancy.log", false);
|
||||
|
@@ -19,6 +19,7 @@ pref("intl.multilingual.downloadEnabled", false);
|
||||
|
||||
// Restore session on startup
|
||||
pref("browser.startup.page", 3);
|
||||
pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||
|
||||
// Theme
|
||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
@@ -26,6 +27,10 @@ pref('browser.compactmode.show', true);
|
||||
|
||||
#ifdef XP_WIN
|
||||
pref("browser.privateWindowSeparation.enabled", false);
|
||||
|
||||
// Mica
|
||||
pref("widget.windows.mica", true);
|
||||
pref("widget.windows.mica.popups", true);
|
||||
#endif
|
||||
|
||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||
@@ -61,12 +66,16 @@ pref("alerts.showFavicons", true);
|
||||
// Toolbars
|
||||
pref("browser.tabs.closeWindowWithLastTab", false);
|
||||
pref("browser.tabs.loadBookmarksInTabs", false);
|
||||
pref("browser.tabs.dragdrop.moveOverThresholdPercent", 50);
|
||||
pref('browser.toolbars.bookmarks.visibility', 'never');
|
||||
pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||
pref("browser.menu.showViewImageInfo", true);
|
||||
pref("findbar.highlightAll", true);
|
||||
pref("layout.word_select.eat_space_to_next_word", false);
|
||||
|
||||
// TODO:
|
||||
pref("browser.tabs.groups.enabled", false);
|
||||
|
||||
// Enable Do Not Track and GPC by default.
|
||||
pref("privacy.donottrackheader.enabled", false);
|
||||
pref("privacy.globalprivacycontrol.enabled", true);
|
||||
@@ -90,6 +99,8 @@ pref('zen.tabs.show-newtab-vertical', true);
|
||||
pref('zen.view.show-newtab-button-border-top', false);
|
||||
pref('zen.view.show-newtab-button-top', true);
|
||||
|
||||
pref('zen.mediacontrols.enabled', true);
|
||||
|
||||
#ifdef MOZILLA_OFFICIAL
|
||||
pref('zen.rice.api.url', 'https://share.zen-browser.app', locked);
|
||||
pref('zen.injections.match-urls', 'https://zen-browser.app/*,https://share.zen-browser.app/*', locked);
|
||||
@@ -181,17 +192,9 @@ pref('zen.pinned-tab-manager.close-shortcut-behavior', 'reset-unload-switch');
|
||||
// TODO: Check this out!
|
||||
pref("browser.profiles.enabled", false);
|
||||
|
||||
// Zen webpanels (calling it sidebar due to legacy reasons)
|
||||
pref('zen.sidebar.data', "{\"data\":\n {\"p1\":{\n \"url\":\"https://www.wikipedia.org/\"\n },\n\"p2\":{\n \"url\":\"https://m.twitter.com/\",\n\"ua\": true\n },\n\"p3\": {\n \"url\": \"https://www.youtube.com/\",\n\"ua\": true\n},\n\"p4\": {\n \"url\": \"https://translate.google.com/\",\n\"ua\": true\n},\n\"p5\": {\n \"url\": \"https://todoist.com/\",\n\"ua\": true\n}},\n\"index\":[\"p1\",\"p2\",\"p3\",\"p4\",\"p5\"]}");
|
||||
pref('zen.sidebar.enabled', true);
|
||||
pref('zen.sidebar.close-on-blur', true);
|
||||
pref('zen.sidebar.max-webpanels', 8);
|
||||
pref('zen.sidebar.use-google-favicons', true);
|
||||
|
||||
// Zen Split View
|
||||
pref('zen.splitView.enable-tab-drop', true);
|
||||
pref('zen.splitView.min-resize-width', 7);
|
||||
pref('zen.splitView.change-on-hover', false);
|
||||
pref('zen.splitView.rearrange-hover-size', 24);
|
||||
|
||||
// Startup flags
|
||||
@@ -199,7 +202,6 @@ pref('zen.startup.smooth-scroll-in-tabs', true);
|
||||
|
||||
// Zen Workspaces
|
||||
pref('zen.workspaces.disabled_for_testing', false);
|
||||
pref('zen.workspaces.hide-deactivated-workspaces', false);
|
||||
pref('zen.workspaces.hide-default-container-indicator', true);
|
||||
pref('zen.workspaces.force-container-workspace', false);
|
||||
pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false);
|
||||
@@ -255,7 +257,7 @@ pref('browser.migrate.opera.enabled', true);
|
||||
// pref('network.trr.mode', 5);
|
||||
|
||||
// security: They must enable this themselves, to avoid people downloading malware
|
||||
pref('xpinstall.signatures.required', false);
|
||||
pref('xpinstall.signatures.required', true);
|
||||
|
||||
// Experimental Zen Features
|
||||
// Strategy to use for bytecode cache (Thanks https://github.com/gunir)
|
||||
@@ -315,10 +317,13 @@ pref("mousewheel.default.delta_multiplier_y", 200);
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN)
|
||||
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
||||
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
||||
#endif
|
||||
|
||||
#ifdef UNIX_BUT_NOT_MAC
|
||||
pref("widget.gtk.rounded-bottom-corners.enabled", true);
|
||||
#endif
|
||||
|
||||
pref('browser.sessionstore.restore_pinned_tabs_on_demand', true);
|
||||
pref('browser.newtabpage.activity-stream.system.showWeather', true);
|
||||
|
||||
// Enable experimental settings page (Used for Zen Labs)
|
||||
@@ -383,6 +388,11 @@ pref('widget.macos.titlebar-blend-mode.behind-window', true);
|
||||
pref('zen.widget.macos.window-material', 3);
|
||||
#endif
|
||||
|
||||
// Enable transparent background for linux
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
pref('zen.widget.linux.transparency', false);
|
||||
#endif
|
||||
|
||||
// Urlbar and autocomplete
|
||||
pref("browser.urlbar.maxRichResults", 6);
|
||||
pref("browser.urlbar.trimHttps", true);
|
||||
@@ -462,3 +472,8 @@ pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||
pref("gfx.canvas.accelerated", true);
|
||||
pref("media.hardware-video-decoding.enabled", true);
|
||||
pref("layers.gpu-process.enabled", true);
|
||||
|
||||
// Picture-in-picture
|
||||
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
||||
// TODO: Enable once we have a proper settings page
|
||||
pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", false);
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/aboutDialog.js b/browser/base/content/aboutDialog.js
|
||||
index 8c5c7768e0e716c196063b4c986dea2631185972..d31f57a176fffc9725b1c31b165fb5cdc55e186e 100644
|
||||
index f6e1391baf12abb91c85a95107bb3923118746c0..76c7b75a4e29056110f1631a50047c4ddd8b1f4a 100644
|
||||
--- a/browser/base/content/aboutDialog.js
|
||||
+++ b/browser/base/content/aboutDialog.js
|
||||
@@ -51,7 +51,7 @@ function init() {
|
||||
@@ -52,7 +52,7 @@ function init() {
|
||||
]);
|
||||
let versionIdKey = "base";
|
||||
let versionAttributes = {
|
||||
@@ -11,7 +11,7 @@ index 8c5c7768e0e716c196063b4c986dea2631185972..d31f57a176fffc9725b1c31b165fb5cd
|
||||
};
|
||||
|
||||
let arch = Services.sysinfo.get("arch");
|
||||
@@ -63,7 +63,7 @@ function init() {
|
||||
@@ -64,7 +64,7 @@ function init() {
|
||||
}
|
||||
|
||||
let version = Services.appinfo.version;
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
||||
index 53e4616a99b7826453d5b6dea027184d90bc73f7..90c9fe5683411cf3087bebd3d0941decf6d23e89 100644
|
||||
index c64980810570fcea84e33fdc2d66ac42a79f4e46..b7198e810a7510fa82cc6801cfd01c88a08d42c1 100644
|
||||
--- a/browser/base/content/aboutDialog.xhtml
|
||||
+++ b/browser/base/content/aboutDialog.xhtml
|
||||
@@ -34,6 +34,7 @@
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
<html:link rel="localization" href="branding/brand.ftl"/>
|
||||
<html:link rel="localization" href="browser/aboutDialog.ftl"/>
|
||||
@@ -10,7 +10,7 @@ index 53e4616a99b7826453d5b6dea027184d90bc73f7..90c9fe5683411cf3087bebd3d0941dec
|
||||
</linkset>
|
||||
|
||||
<html:div id="aboutDialogContainer">
|
||||
@@ -124,21 +125,23 @@
|
||||
@@ -125,21 +126,23 @@
|
||||
</description>
|
||||
</vbox>
|
||||
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
||||
@@ -30,8 +30,8 @@ index 53e4616a99b7826453d5b6dea027184d90bc73f7..90c9fe5683411cf3087bebd3d0941dec
|
||||
<vbox id="bottomBox">
|
||||
<hbox pack="center">
|
||||
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
|
||||
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/about/legal/terms/firefox/" data-l10n-id="bottomLinks-rights"/>
|
||||
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
|
||||
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/about/legal/terms/firefox/" data-l10n-id="bottom-links-terms"/>
|
||||
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-id="bottom-links-privacy"/>
|
||||
+ <label is="text-link" class="bottom-link" href="about:rights" data-l10n-id="bottomLinks-rights"/>
|
||||
+ <label is="text-link" class="bottom-link" href="https://www.zen-browser.app/privacy-policy/" data-l10n-id="bottomLinks-privacy"/>
|
||||
</hbox>
|
||||
|
@@ -1,17 +1,16 @@
|
||||
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
||||
index 7d7e8697f02f90d4f336c9ab0a73a89848e0c21c..2fd19f3b43db4bdd99e65fecd1481f80d4541a7a 100644
|
||||
index 2ca8bdd2674fb4addf3bbf94ff17abc5c93c6293..dd965d8d190e8cdacbeb3d80995ad1a906e64079 100644
|
||||
--- a/browser/base/content/browser-box.inc.xhtml
|
||||
+++ b/browser/base/content/browser-box.inc.xhtml
|
||||
@@ -23,7 +23,14 @@
|
||||
<browser id="sidebar" autoscroll="false" disablehistory="true" disablefullscreen="true" tooltip="aHTMLTooltip"/>
|
||||
</vbox>
|
||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||
+#include zen-sidebar-panel.inc.xhtml
|
||||
@@ -26,7 +26,13 @@
|
||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||
<box id="after-splitter"></box>
|
||||
</div>
|
||||
+<vbox flex="1" id="zen-appcontent-wrapper">
|
||||
+<html:div id="zen-appcontent-navbar-container"></html:div>
|
||||
+<hbox id="zen-tabbox-wrapper" flex="1">
|
||||
<tabbox id="tabbrowser-tabbox" flex="1" tabcontainer="tabbrowser-tabs">
|
||||
+ #include zen-tabbrowser-elements.inc.xhtml
|
||||
+#include zen-tabbrowser-elements.inc.xhtml
|
||||
<tabpanels id="tabbrowser-tabpanels" flex="1" selectedIndex="0"/>
|
||||
</tabbox>
|
||||
</hbox>
|
||||
|
@@ -1,36 +1,17 @@
|
||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||
index 63100defacf66c6b3232b9e0a783a5fd14e3a46a..398d685b142a47a85619dfc55772ea98ccfad445 100644
|
||||
index 3d5173315812589c0b79beec5f0419fc37cb8868..c4216db9e414fbbaead6ecd89b40366b0d8a50c1 100644
|
||||
--- a/browser/base/content/browser-init.js
|
||||
+++ b/browser/base/content/browser-init.js
|
||||
@@ -162,13 +162,15 @@ var gBrowserInit = {
|
||||
elem.setAttribute("skipintoolbarset", "true");
|
||||
}
|
||||
}
|
||||
+ ZenCustomizableUI.init(window);
|
||||
for (let area of CustomizableUI.areas) {
|
||||
let type = CustomizableUI.getAreaType(area);
|
||||
- if (type == CustomizableUI.TYPE_TOOLBAR) {
|
||||
+ if (type == CustomizableUI.TYPE_TOOLBAR && !area.startsWith("zen-")) {
|
||||
let node = document.getElementById(area);
|
||||
CustomizableUI.registerToolbarNode(node);
|
||||
}
|
||||
}
|
||||
+ ZenCustomizableUI.registerToolbarNodes(window);
|
||||
if (isVerticalTabs) {
|
||||
// Show the vertical tabs toolbar
|
||||
setToolbarVisibility(
|
||||
@@ -287,6 +289,10 @@ var gBrowserInit = {
|
||||
gPrivateBrowsingUI.init();
|
||||
BrowserSearch.init();
|
||||
BrowserPageActions.init();
|
||||
+
|
||||
+Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", window);
|
||||
+Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||
+
|
||||
if (gToolbarKeyNavEnabled) {
|
||||
ToolbarKeyboardNavigator.init();
|
||||
}
|
||||
@@ -365,6 +371,7 @@ var gBrowserInit = {
|
||||
@@ -175,6 +175,8 @@ var gBrowserInit = {
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", window);
|
||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||
gBrowser.addEventListener("DOMUpdateBlockedPopups", e =>
|
||||
PopupBlockerObserver.handleEvent(e)
|
||||
);
|
||||
@@ -310,6 +312,7 @@ var gBrowserInit = {
|
||||
TelemetryTimestamps.add("delayedStartupStarted");
|
||||
|
||||
this._cancelDelayedStartup();
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||
index 019b168c1aeae7e1c97a3ae58c99a48a27f54134..22dcf304591290d7a1b60f01998b6cf4782c0cdc 100644
|
||||
index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f288919ae0d 100644
|
||||
--- a/browser/base/content/browser.js
|
||||
+++ b/browser/base/content/browser.js
|
||||
@@ -32,6 +32,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||
ContextualIdentityService:
|
||||
"resource://gre/modules/ContextualIdentityService.sys.mjs",
|
||||
CustomizableUI: "resource:///modules/CustomizableUI.sys.mjs",
|
||||
@@ -10,7 +10,7 @@ index 019b168c1aeae7e1c97a3ae58c99a48a27f54134..22dcf304591290d7a1b60f01998b6cf4
|
||||
DevToolsSocketStatus:
|
||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||
@@ -3440,6 +3441,11 @@ var XULBrowserWindow = {
|
||||
@@ -2698,6 +2699,11 @@ var XULBrowserWindow = {
|
||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||
|
||||
@@ -22,27 +22,7 @@ index 019b168c1aeae7e1c97a3ae58c99a48a27f54134..22dcf304591290d7a1b60f01998b6cf4
|
||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||
|
||||
if (!gMultiProcessBrowser) {
|
||||
@@ -4435,7 +4441,7 @@ nsBrowserAccess.prototype = {
|
||||
// Passing a null-URI to only create the content window,
|
||||
// and pass true for aSkipLoad to prevent loading of
|
||||
// about:blank
|
||||
- return this.getContentWindowOrOpenURIInFrame(
|
||||
+ let res = this.getContentWindowOrOpenURIInFrame(
|
||||
null,
|
||||
aParams,
|
||||
aWhere,
|
||||
@@ -4443,6 +4449,10 @@ nsBrowserAccess.prototype = {
|
||||
aName,
|
||||
true
|
||||
);
|
||||
+ if (typeof window.gZenGlanceManager !== "undefined" && window.toolbar.visible) {
|
||||
+ window.gZenGlanceManager.onTabOpen(res, aURI);
|
||||
+ }
|
||||
+ return res;
|
||||
},
|
||||
|
||||
openURIInFrame: function browser_openURIInFrame(
|
||||
@@ -6351,7 +6361,7 @@ function switchToTabHavingURI(
|
||||
@@ -5194,7 +5200,7 @@ function switchToTabHavingURI(
|
||||
ignoreQueryString || replaceQueryString,
|
||||
ignoreFragmentWhenComparing
|
||||
);
|
||||
@@ -51,7 +31,7 @@ index 019b168c1aeae7e1c97a3ae58c99a48a27f54134..22dcf304591290d7a1b60f01998b6cf4
|
||||
for (let i = 0; i < browsers.length; i++) {
|
||||
let browser = browsers[i];
|
||||
let browserCompare = cleanURL(
|
||||
@@ -6392,7 +6402,7 @@ function switchToTabHavingURI(
|
||||
@@ -5235,7 +5241,7 @@ function switchToTabHavingURI(
|
||||
}
|
||||
|
||||
if (!doAdopt) {
|
||||
|
@@ -1,9 +1,9 @@
|
||||
diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc
|
||||
index 493c593d66883082c2a4df87c4706f919ea675f8..aaaa833b64b0fd890aa2a0794eaeb7e41f002f06 100644
|
||||
index 269b025d7fb942602c1b1b6c9747540bcde11375..9dcecfe205cadacace5195ec84d8b2ee292a0632 100644
|
||||
--- a/browser/base/content/browser-sets.inc
|
||||
+++ b/browser/base/content/browser-sets.inc
|
||||
@@ -393,3 +393,4 @@
|
||||
@@ -405,3 +405,4 @@
|
||||
internal="true"/>
|
||||
#endif
|
||||
</keyset>
|
||||
+ <keyset id="zenKeyset"></keyset>
|
||||
+#include zen-keysets.inc.xhtml
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||
index 68849f5093cd8ab99ab0747d972799eaf3ad7e22..3b4e6a179ab7b71859f832709778c326a39cffda 100644
|
||||
index 0d0a559a6473149b50f4bf18d059e86907c4acd3..25ad798eb26f04262d069fdaf1f3fb00adec9807 100644
|
||||
--- a/browser/base/content/browser.xhtml
|
||||
+++ b/browser/base/content/browser.xhtml
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -10,7 +10,7 @@ index 68849f5093cd8ab99ab0747d972799eaf3ad7e22..3b4e6a179ab7b71859f832709778c326
|
||||
persist="screenX screenY width height sizemode"
|
||||
data-l10n-sync="true">
|
||||
<head>
|
||||
@@ -100,6 +101,8 @@
|
||||
@@ -104,6 +105,8 @@
|
||||
|
||||
<title data-l10n-id="browser-main-window-default-title"></title>
|
||||
|
||||
@@ -19,15 +19,15 @@ index 68849f5093cd8ab99ab0747d972799eaf3ad7e22..3b4e6a179ab7b71859f832709778c326
|
||||
# All JS files which are needed by browser.xhtml and other top level windows to
|
||||
# support MacOS specific features *must* go into the global-scripts.inc file so
|
||||
# that they can be shared with macWindow.inc.xhtml.
|
||||
@@ -169,6 +172,7 @@
|
||||
});
|
||||
});
|
||||
@@ -148,6 +151,7 @@
|
||||
window.addEventListener("DOMContentLoaded",
|
||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
||||
</script>
|
||||
+#include zen-assets.inc.xhtml
|
||||
</head>
|
||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||
@@ -190,9 +194,13 @@
|
||||
@@ -169,9 +173,11 @@
|
||||
</vbox>
|
||||
</html:template>
|
||||
|
||||
@@ -37,8 +37,6 @@ index 68849f5093cd8ab99ab0747d972799eaf3ad7e22..3b4e6a179ab7b71859f832709778c326
|
||||
+ <hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
||||
+ <vbox id="zen-toast-container"></vbox>
|
||||
+ #include navigator-toolbox.inc.xhtml
|
||||
+ <html:span id="zen-sidebar-box-container">
|
||||
+ </html:span>
|
||||
+ #include browser-box.inc.xhtml
|
||||
+ </hbox>
|
||||
|
||||
|
@@ -1,19 +1,19 @@
|
||||
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
||||
index 959c523b21c642f29353b9de37b3ce6b5505b01b..4cd26ea85ad4905bade71dcd470b8678079787bd 100644
|
||||
index 198c188e074b7062169764fb7d81c692d3a2bdae..b412a3c1fabdc6470b4ea9e7be34c426cc76aafd 100644
|
||||
--- a/browser/base/content/main-popupset.inc.xhtml
|
||||
+++ b/browser/base/content/main-popupset.inc.xhtml
|
||||
@@ -206,6 +206,10 @@
|
||||
@@ -201,6 +201,10 @@
|
||||
hidden="true"
|
||||
tabspecific="true"
|
||||
aria-labelledby="editBookmarkPanelTitle">
|
||||
+ <html:div id="zenEditBookmarkPanelFaviconContainer">
|
||||
+ <html:img id="zenEditBookmarkPanelFavicon"/>
|
||||
+ </html:div>
|
||||
+ <vbox>
|
||||
+ <html:div id="zenEditBookmarkPanelFaviconContainer">
|
||||
+ <html:img id="zenEditBookmarkPanelFavicon"/>
|
||||
+ </html:div>
|
||||
+ <vbox>
|
||||
<box class="panel-header">
|
||||
<html:h1>
|
||||
<html:span id="editBookmarkPanelTitle"/>
|
||||
@@ -231,6 +235,7 @@
|
||||
@@ -226,6 +230,7 @@
|
||||
class="footer-button"/>
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
@@ -21,21 +21,7 @@ index 959c523b21c642f29353b9de37b3ce6b5505b01b..4cd26ea85ad4905bade71dcd470b8678
|
||||
</panel>
|
||||
</html:template>
|
||||
|
||||
@@ -426,11 +431,13 @@
|
||||
observes="cmd_CustomizeToolbars"
|
||||
class="viewCustomizeToolbar"
|
||||
data-lazy-l10n-id="toolbar-context-menu-view-customize-toolbar-2"/>
|
||||
+#if 0
|
||||
<menuseparator id="sidebarRevampSeparator"/>
|
||||
<menuitem id="toolbar-context-toggle-vertical-tabs"
|
||||
data-lazy-l10n-id="toolbar-context-turn-on-vertical-tabs"/>
|
||||
<menuitem id="toolbar-context-customize-sidebar"
|
||||
data-lazy-l10n-id="toolbar-context-customize-sidebar"/>
|
||||
+#endif
|
||||
<menuseparator contexttype="fullscreen"/>
|
||||
<menuitem id="toolbar-context-full-screen-autohide"
|
||||
class="fullscreen-context-autohide"
|
||||
@@ -565,6 +572,8 @@
|
||||
@@ -567,6 +572,8 @@
|
||||
|
||||
#include popup-notifications.inc.xhtml
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
index a0a382643a2f74b6d789f3641ef300eed202d5e9..a962e155f1452362a2a35df89c8f56e1c0d9968c 100644
|
||||
index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c5d0f33a6 100644
|
||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
@@ -2,7 +2,7 @@
|
||||
@@ -11,20 +11,18 @@ index a0a382643a2f74b6d789f3641ef300eed202d5e9..a962e155f1452362a2a35df89c8f56e1
|
||||
<script src="chrome://browser/content/navigator-toolbox.js" />
|
||||
|
||||
<!-- Menu -->
|
||||
@@ -17,9 +17,11 @@
|
||||
@@ -17,9 +17,8 @@
|
||||
#include browser-menubar.inc
|
||||
</toolbaritem>
|
||||
<spacer flex="1" skipintoolbarset="true" style="order: 1000;"/>
|
||||
+#if 0
|
||||
#include titlebar-items.inc.xhtml
|
||||
+#endif
|
||||
-#include titlebar-items.inc.xhtml
|
||||
</toolbar>
|
||||
-
|
||||
+<hbox id="titlebar">
|
||||
<toolbar id="TabsToolbar"
|
||||
class="browser-toolbar browser-titlebar"
|
||||
fullscreentoolbar="true"
|
||||
@@ -32,7 +34,7 @@
|
||||
@@ -32,7 +31,7 @@
|
||||
|
||||
<hbox class="titlebar-spacer" type="pre-tabs"/>
|
||||
|
||||
@@ -33,18 +31,15 @@ index a0a382643a2f74b6d789f3641ef300eed202d5e9..a962e155f1452362a2a35df89c8f56e1
|
||||
<toolbartabstop/>
|
||||
<hbox id="TabsToolbar-customization-target" flex="1">
|
||||
<toolbarbutton id="firefox-view-button"
|
||||
@@ -40,9 +42,9 @@
|
||||
@@ -40,6 +39,7 @@
|
||||
data-l10n-id="toolbar-button-firefox-view-2"
|
||||
role="button"
|
||||
aria-pressed="false"
|
||||
+ hidden="true"
|
||||
cui-areatype="toolbar"
|
||||
removable="true"/>
|
||||
-
|
||||
<tabs id="tabbrowser-tabs"
|
||||
is="tabbrowser-tabs"
|
||||
aria-multiselectable="true"
|
||||
@@ -50,6 +52,10 @@
|
||||
|
||||
@@ -50,6 +50,10 @@
|
||||
tooltip="tabbrowser-tab-tooltip"
|
||||
orient="horizontal"
|
||||
stopwatchid="FX_TAB_CLICK_MS">
|
||||
@@ -55,16 +50,7 @@ index a0a382643a2f74b6d789f3641ef300eed202d5e9..a962e155f1452362a2a35df89c8f56e1
|
||||
<hbox class="tab-drop-indicator" hidden="true"/>
|
||||
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
||||
# significantly, there is an optimization in
|
||||
@@ -57,7 +63,7 @@
|
||||
# the current structure that we may want to revisit.
|
||||
<html:div id="vertical-pinned-tabs-container" tabindex="-1"></html:div>
|
||||
<html:div id="vertical-pinned-tabs-container-separator"></html:div>
|
||||
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" clicktoscroll="" scrolledtostart="" scrolledtoend="">
|
||||
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" flex="1" clicktoscroll="" scrolledtostart="" scrolledtoend="">
|
||||
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
|
||||
<hbox id="tabbrowser-arrowscrollbox-periphery">
|
||||
<toolbartabstop/>
|
||||
@@ -75,6 +81,8 @@
|
||||
@@ -75,6 +79,8 @@
|
||||
tooltip="dynamic-shortcut-tooltip"
|
||||
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
|
||||
@@ -73,33 +59,28 @@ index a0a382643a2f74b6d789f3641ef300eed202d5e9..a962e155f1452362a2a35df89c8f56e1
|
||||
</tabs>
|
||||
|
||||
<toolbarbutton id="new-tab-button"
|
||||
@@ -100,11 +108,12 @@
|
||||
@@ -100,10 +106,10 @@
|
||||
#include private-browsing-indicator.inc.xhtml
|
||||
<toolbarbutton id="content-analysis-indicator"
|
||||
class="toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
-
|
||||
+#if 0
|
||||
#include titlebar-items.inc.xhtml
|
||||
-
|
||||
+#endif
|
||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
|
||||
-#include titlebar-items.inc.xhtml
|
||||
+#include zen-sidebar-icons.inc.xhtml
|
||||
|
||||
</toolbar>
|
||||
-
|
||||
+</hbox>
|
||||
<toolbar id="nav-bar"
|
||||
class="browser-toolbar chromeclass-location"
|
||||
data-l10n-id="navbar-accessible"
|
||||
@@ -490,10 +499,12 @@
|
||||
@@ -489,10 +495,10 @@
|
||||
consumeanchor="PanelUI-button"
|
||||
data-l10n-id="appmenu-menu-button-closed2"/>
|
||||
</toolbaritem>
|
||||
+#include titlebar-items.inc.xhtml
|
||||
<hbox class="titlebar-spacer" type="post-tabs"/>
|
||||
#include private-browsing-indicator.inc.xhtml
|
||||
-
|
||||
+#if 0
|
||||
#include titlebar-items.inc.xhtml
|
||||
+#endif
|
||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
-#include titlebar-items.inc.xhtml
|
||||
</toolbar>
|
||||
|
||||
<toolbar id="PersonalToolbar"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||
index 7f3dc585937c5ac96c0d09a786515305afb4fe1a..9216931e7d805743f0b00e74039be042456e63f3 100644
|
||||
index 94d3c2bb401c2e4246340a6c2d63c9d3561ff5e1..62c599f78748e708c8f36c05935822e8808996b5 100644
|
||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||
@@ -1047,6 +1047,13 @@ export class nsContextMenu {
|
||||
@@ -1109,6 +1109,13 @@ export class nsContextMenu {
|
||||
!this.isSecureAboutPage()
|
||||
);
|
||||
|
||||
|
@@ -10,7 +10,6 @@
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-tabs.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-ui.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-gradient-generator.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-rices.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-panel-ui.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-single-components.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-container.css" />
|
||||
@@ -19,7 +18,6 @@
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-decks.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-folders.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-glance.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-sidebar-panels.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-popup.css" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-compact-mode.css" />
|
||||
@@ -30,20 +28,18 @@
|
||||
</linkset>
|
||||
|
||||
# Scripts used all over the browser
|
||||
<script src="chrome://browser/content/zen-components/ZenFolders.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenThemesCommon.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenThemesImporter.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenCompactMode.mjs" />
|
||||
<script src="chrome://browser/content/ZenUIManager.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenSidebarManager.mjs"/>
|
||||
<script src="chrome://browser/content/zen-components/ZenTabUnloader.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenGradientGenerator.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"/>
|
||||
<script src="chrome://browser/content/zen-components/ZenGlanceManager.mjs" />
|
||||
<script src="chrome://browser/content/zen-components/ZenMediaController.mjs" />
|
||||
|
||||
# Unimportant scripts
|
||||
<script src="chrome://browser/content/zen-components/ZenRices.mjs" />
|
||||
<script>
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenFolders.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabManager.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenGradientGenerator.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenViewSplitter.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenGlanceManager.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenMediaController.mjs", this);
|
||||
</script>
|
||||
|
@@ -1,83 +1,87 @@
|
||||
|
||||
|
||||
content/browser/zenThemeModifier.js (content/zenThemeModifier.js)
|
||||
content/browser/ZenStartup.mjs (content/ZenStartup.mjs)
|
||||
content/browser/ZenUIManager.mjs (content/ZenUIManager.mjs)
|
||||
content/browser/ZenCustomizableUI.sys.mjs (content/ZenCustomizableUI.sys.mjs)
|
||||
content/browser/zen-components/ZenUIMigration.mjs (zen-components/ZenUIMigration.mjs)
|
||||
content/browser/zen-components/ZenCompactMode.mjs (zen-components/ZenCompactMode.mjs)
|
||||
content/browser/zen-components/ZenViewSplitter.mjs (zen-components/ZenViewSplitter.mjs)
|
||||
content/browser/zen-components/ZenThemesCommon.mjs (zen-components/ZenThemesCommon.mjs)
|
||||
content/browser/zen-components/ZenWorkspaces.mjs (zen-components/ZenWorkspaces.mjs)
|
||||
content/browser/zen-components/ZenWorkspacesStorage.mjs (zen-components/ZenWorkspacesStorage.mjs)
|
||||
content/browser/zen-components/ZenWorkspacesSync.mjs (zen-components/ZenWorkspacesSync.mjs)
|
||||
content/browser/zen-components/ZenSidebarManager.mjs (zen-components/ZenSidebarManager.mjs)
|
||||
content/browser/zen-components/ZenKeyboardShortcuts.mjs (zen-components/ZenKeyboardShortcuts.mjs)
|
||||
content/browser/zen-components/ZenThemesImporter.mjs (zen-components/ZenThemesImporter.mjs)
|
||||
content/browser/zen-components/ZenTabUnloader.mjs (zen-components/ZenTabUnloader.mjs)
|
||||
content/browser/zen-components/ZenPinnedTabsStorage.mjs (zen-components/ZenPinnedTabsStorage.mjs)
|
||||
content/browser/zen-components/ZenPinnedTabManager.mjs (zen-components/ZenPinnedTabManager.mjs)
|
||||
content/browser/zen-components/ZenCommonUtils.mjs (zen-components/ZenCommonUtils.mjs)
|
||||
content/browser/zen-components/ZenGradientGenerator.mjs (zen-components/ZenGradientGenerator.mjs)
|
||||
content/browser/zen-components/ZenGlanceManager.mjs (zen-components/ZenGlanceManager.mjs)
|
||||
content/browser/zen-components/ZenFolders.mjs (zen-components/ZenFolders.mjs)
|
||||
content/browser/zen-components/ZenActorsManager.mjs (zen-components/ZenActorsManager.mjs)
|
||||
content/browser/zen-components/ZenRices.mjs (zen-components/ZenRices.mjs)
|
||||
content/browser/zen-components/ZenEmojies.mjs (zen-components/ZenEmojies.mjs)
|
||||
content/browser/zen-components/ZenWelcome.mjs (zen-components/ZenWelcome.mjs)
|
||||
content/browser/zen-components/ZenMediaController.mjs (zen-components/ZenMediaController.mjs)
|
||||
content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js)
|
||||
content/browser/ZenStartup.mjs (../../zen/common/ZenStartup.mjs)
|
||||
content/browser/zen-sets.js (../../zen/common/zen-sets.js)
|
||||
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs)
|
||||
content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.mjs)
|
||||
content/browser/zen-components/ZenEmojies.mjs (../../zen/common/ZenEmojies.mjs)
|
||||
content/browser/ZenCustomizableUI.sys.mjs (../../zen/common/ZenCustomizableUI.sys.mjs)
|
||||
content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs)
|
||||
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs)
|
||||
|
||||
content/browser/zen-styles/zen-theme.css (content/zen-styles/zen-theme.css)
|
||||
content/browser/zen-styles/zen-buttons.css (content/zen-styles/zen-buttons.css)
|
||||
content/browser/zen-styles/zen-tabs.css (content/zen-styles/zen-tabs.css)
|
||||
* content/browser/zen-styles/zen-tabs/vertical-tabs.css (content/zen-styles/zen-tabs/vertical-tabs.css)
|
||||
content/browser/zen-styles/zen-tabs/horizontal-tabs.css (content/zen-styles/zen-tabs/horizontal-tabs.css)
|
||||
content/browser/zen-styles/zen-browser-ui.css (content/zen-styles/zen-browser-ui.css)
|
||||
content/browser/zen-styles/zen-animations.css (content/zen-styles/zen-animations.css)
|
||||
content/browser/zen-styles/zen-panel-ui.css (content/zen-styles/zen-panel-ui.css)
|
||||
content/browser/zen-styles/zen-single-components.css (content/zen-styles/zen-single-components.css)
|
||||
content/browser/zen-styles/zen-sidebar.css (content/zen-styles/zen-sidebar.css)
|
||||
content/browser/zen-styles/zen-toolbar.css (content/zen-styles/zen-toolbar.css)
|
||||
content/browser/zen-styles/zen-decks.css (content/zen-styles/zen-decks.css)
|
||||
content/browser/zen-styles/zen-folders.css (content/zen-styles/zen-folders.css)
|
||||
content/browser/zen-styles/zen-glance.css (content/zen-styles/zen-glance.css)
|
||||
content/browser/zen-styles/zen-browser-container.css (content/zen-styles/zen-browser-container.css)
|
||||
content/browser/zen-styles/zen-workspaces.css (content/zen-styles/zen-workspaces.css)
|
||||
content/browser/zen-styles/zen-urlbar.css (content/zen-styles/zen-urlbar.css)
|
||||
content/browser/zen-styles/zen-popup.css (content/zen-styles/zen-popup.css)
|
||||
content/browser/zen-styles/zen-sidebar-panels.css (content/zen-styles/zen-sidebar-panels.css)
|
||||
content/browser/zen-styles/zen-gradient-generator.css (content/zen-styles/zen-gradient-generator.css)
|
||||
content/browser/zen-styles/zen-rices.css (content/zen-styles/zen-rices.css)
|
||||
content/browser/zen-styles/zen-branding.css (content/zen-styles/zen-branding.css)
|
||||
content/browser/zen-styles/zen-welcome.css (content/zen-styles/zen-welcome.css)
|
||||
content/browser/zen-styles/zen-media-controls.css (content/zen-styles/zen-media-controls.css)
|
||||
content/browser/zen-styles/zen-theme.css (../../zen/common/styles/zen-theme.css)
|
||||
content/browser/zen-styles/zen-buttons.css (../../zen/common/styles/zen-buttons.css)
|
||||
content/browser/zen-styles/zen-browser-ui.css (../../zen/common/styles/zen-browser-ui.css)
|
||||
content/browser/zen-styles/zen-animations.css (../../zen/common/styles/zen-animations.css)
|
||||
content/browser/zen-styles/zen-panel-ui.css (../../zen/common/styles/zen-panel-ui.css)
|
||||
content/browser/zen-styles/zen-single-components.css (../../zen/common/styles/zen-single-components.css)
|
||||
content/browser/zen-styles/zen-sidebar.css (../../zen/common/styles/zen-sidebar.css)
|
||||
content/browser/zen-styles/zen-toolbar.css (../../zen/common/styles/zen-toolbar.css)
|
||||
content/browser/zen-styles/zen-browser-container.css (../../zen/common/styles/zen-browser-container.css)
|
||||
content/browser/zen-styles/zen-urlbar.css (../../zen/common/styles/zen-urlbar.css)
|
||||
content/browser/zen-styles/zen-popup.css (../../zen/common/styles/zen-popup.css)
|
||||
content/browser/zen-styles/zen-branding.css (../../zen/common/styles/zen-branding.css)
|
||||
|
||||
content/browser/zen-styles/zen-panels/bookmarks.css (content/zen-styles/zen-panels/bookmarks.css)
|
||||
content/browser/zen-styles/zen-panels/extensions.css (content/zen-styles/zen-panels/extensions.css)
|
||||
content/browser/zen-styles/zen-panels/print.css (content/zen-styles/zen-panels/print.css)
|
||||
content/browser/zen-styles/zen-panels/dialog.css (content/zen-styles/zen-panels/dialog.css)
|
||||
content/browser/zen-styles/zen-panels/bookmarks.css (../../zen/common/styles/zen-panels/bookmarks.css)
|
||||
content/browser/zen-styles/zen-panels/extensions.css (../../zen/common/styles/zen-panels/extensions.css)
|
||||
content/browser/zen-styles/zen-panels/print.css (../../zen/common/styles/zen-panels/print.css)
|
||||
content/browser/zen-styles/zen-panels/dialog.css (../../zen/common/styles/zen-panels/dialog.css)
|
||||
|
||||
* content/browser/zen-styles/zen-compact-mode.css (content/zen-styles/zen-compact-mode.css)
|
||||
content/browser/zen-components/ZenCompactMode.mjs (../../zen/compact-mode/ZenCompactMode.mjs)
|
||||
* content/browser/zen-styles/zen-compact-mode.css (../../zen/compact-mode/zen-compact-mode.css)
|
||||
|
||||
# Images
|
||||
content/browser/zen-images/gradient.png (content/zen-images/gradient.png)
|
||||
content/browser/zen-images/brand-header.svg (content/zen-images/brand-header.svg)
|
||||
content/browser/zen-images/layouts/collapsed.png (content/zen-images/layouts/collapsed.png)
|
||||
content/browser/zen-images/layouts/multiple-toolbar.png (content/zen-images/layouts/multiple-toolbar.png)
|
||||
content/browser/zen-images/layouts/single-toolbar.png (content/zen-images/layouts/single-toolbar.png)
|
||||
content/browser/zen-images/grain-bg.png (content/zen-images/grain-bg.png)
|
||||
content/browser/zen-images/note-indicator.svg (content/zen-images/note-indicator.svg)
|
||||
content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs)
|
||||
content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css)
|
||||
|
||||
# Actors
|
||||
content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (zen-components/actors/ZenThemeMarketplaceParent.sys.mjs)
|
||||
content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (zen-components/actors/ZenThemeMarketplaceChild.sys.mjs)
|
||||
content/browser/zen-components/actors/ZenGlanceChild.sys.mjs (zen-components/actors/ZenGlanceChild.sys.mjs)
|
||||
content/browser/zen-components/actors/ZenGlanceParent.sys.mjs (zen-components/actors/ZenGlanceParent.sys.mjs)
|
||||
content/browser/zen-components/ZenThemesCommon.mjs (../../zen/mods/ZenThemesCommon.mjs)
|
||||
content/browser/zen-components/ZenThemesImporter.mjs (../../zen/mods/ZenThemesImporter.mjs)
|
||||
content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (../../zen/mods/actors/ZenThemeMarketplaceParent.sys.mjs)
|
||||
content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (../../zen/mods/actors/ZenThemeMarketplaceChild.sys.mjs)
|
||||
|
||||
# Fonts
|
||||
content/browser/zen-fonts/JunicodeVF-Italic.woff2 (content/zen-fonts/JunicodeVF-Italic.woff2)
|
||||
content/browser/zen-fonts/JunicodeVF-Roman.woff2 (content/zen-fonts/JunicodeVF-Roman.woff2)
|
||||
content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs)
|
||||
content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.mjs)
|
||||
content/browser/zen-components/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs)
|
||||
content/browser/zen-components/ZenGradientGenerator.mjs (../../zen/workspaces/ZenGradientGenerator.mjs)
|
||||
content/browser/zen-styles/zen-workspaces.css (../../zen/workspaces/zen-workspaces.css)
|
||||
content/browser/zen-styles/zen-gradient-generator.css (../../zen/workspaces/zen-gradient-generator.css)
|
||||
|
||||
content/browser/zen-components/ZenKeyboardShortcuts.mjs (../../zen/kbs/ZenKeyboardShortcuts.mjs)
|
||||
|
||||
content/browser/zen-components/ZenTabUnloader.mjs (../../zen/tabs/ZenTabUnloader.mjs)
|
||||
content/browser/zen-components/ZenPinnedTabsStorage.mjs (../../zen/tabs/ZenPinnedTabsStorage.mjs)
|
||||
content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs)
|
||||
content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css)
|
||||
* content/browser/zen-styles/zen-tabs/vertical-tabs.css (../../zen/tabs/zen-tabs/vertical-tabs.css)
|
||||
content/browser/zen-styles/zen-tabs/horizontal-tabs.css (../../zen/tabs/zen-tabs/horizontal-tabs.css)
|
||||
|
||||
content/browser/zen-components/ZenGlanceManager.mjs (../../zen/glance/ZenGlanceManager.mjs)
|
||||
content/browser/zen-styles/zen-glance.css (../../zen/glance/zen-glance.css)
|
||||
content/browser/zen-components/actors/ZenGlanceChild.sys.mjs (../../zen/glance/actors/ZenGlanceChild.sys.mjs)
|
||||
content/browser/zen-components/actors/ZenGlanceParent.sys.mjs (../../zen/glance/actors/ZenGlanceParent.sys.mjs)
|
||||
|
||||
content/browser/zen-components/ZenFolders.mjs (../../zen/folders/ZenFolders.mjs)
|
||||
content/browser/zen-styles/zen-folders.css (../../zen/folders/zen-folders.css)
|
||||
|
||||
content/browser/zen-components/ZenWelcome.mjs (../../zen/welcome/ZenWelcome.mjs)
|
||||
content/browser/zen-styles/zen-welcome.css (../../zen/welcome/zen-welcome.css)
|
||||
|
||||
content/browser/zen-components/ZenMediaController.mjs (../../zen/media/ZenMediaController.mjs)
|
||||
content/browser/zen-styles/zen-media-controls.css (../../zen/media/zen-media-controls.css)
|
||||
|
||||
# Images
|
||||
content/browser/zen-images/gradient.png (../../zen/images/gradient.png)
|
||||
content/browser/zen-images/brand-header.svg (../../zen/images/brand-header.svg)
|
||||
content/browser/zen-images/layouts/collapsed.png (../../zen/images/layouts/collapsed.png)
|
||||
content/browser/zen-images/layouts/multiple-toolbar.png (../../zen/images/layouts/multiple-toolbar.png)
|
||||
content/browser/zen-images/layouts/single-toolbar.png (../../zen/images/layouts/single-toolbar.png)
|
||||
content/browser/zen-images/grain-bg.png (../../zen/images/grain-bg.png)
|
||||
content/browser/zen-images/note-indicator.svg (../../zen/images/note-indicator.svg)
|
||||
|
||||
# Fonts
|
||||
content/browser/zen-fonts/JunicodeVF-Italic.woff2 (../../zen/fonts/JunicodeVF-Italic.woff2)
|
||||
content/browser/zen-fonts/JunicodeVF-Roman.woff2 (../../zen/fonts/JunicodeVF-Roman.woff2)
|
||||
|
||||
# JS Vendor
|
||||
content/browser/zen-vendor/tsparticles.confetti.bundle.min.js (content/zen-vendor/tsparticles.confetti.bundle.min.js)
|
||||
content/browser/zen-vendor/motion.min.mjs (content/zen-vendor/motion.min.mjs)
|
||||
content/browser/zen-vendor/tsparticles.confetti.bundle.min.js (../../zen/vendor/tsparticles.confetti.bundle.min.js)
|
||||
content/browser/zen-vendor/motion.min.mjs (../../zen/vendor/motion.min.mjs)
|
||||
|
48
src/browser/base/content/zen-keysets.inc.xhtml
Normal file
48
src/browser/base/content/zen-keysets.inc.xhtml
Normal file
@@ -0,0 +1,48 @@
|
||||
<commandset id="zenCommandSet">
|
||||
<command id="cmd_zenCompactModeToggle" />
|
||||
<command id="cmd_zenCompactModeShowSidebar" />
|
||||
<command id="cmd_zenCompactModeShowToolbar" />
|
||||
|
||||
<command id="cmd_zenWorkspaceForward" />
|
||||
<command id="cmd_zenWorkspaceBackward" />
|
||||
|
||||
<command id="cmd_zenSplitViewGrid" />
|
||||
<command id="cmd_zenSplitViewVertical" />
|
||||
<command id="cmd_zenSplitViewHorizontal" />
|
||||
<command id="cmd_zenSplitViewUnsplit" />
|
||||
<command id="cmd_zenSplitViewLinkInNewTab" />
|
||||
|
||||
<!-- Workspace commands -->
|
||||
<command id="cmd_zenWorkspaceSwitch1" />
|
||||
<command id="cmd_zenWorkspaceSwitch2" />
|
||||
<command id="cmd_zenWorkspaceSwitch3" />
|
||||
<command id="cmd_zenWorkspaceSwitch4" />
|
||||
<command id="cmd_zenWorkspaceSwitch5" />
|
||||
<command id="cmd_zenWorkspaceSwitch6" />
|
||||
<command id="cmd_zenWorkspaceSwitch7" />
|
||||
<command id="cmd_zenWorkspaceSwitch8" />
|
||||
<command id="cmd_zenWorkspaceSwitch9" />
|
||||
<command id="cmd_zenWorkspaceSwitch10" />
|
||||
|
||||
<command id="cmd_zenOpenZenThemePicker" />
|
||||
<command id="cmd_zenChangeWorkspaceTab" />
|
||||
<command id="cmd_zenToggleTabsOnRight" />
|
||||
|
||||
<command id="cmd_zenReplacePinnedUrlWithCurrent" />
|
||||
<command id="cmd_zenAddToEssentials" />
|
||||
<command id="cmd_zenRemoveFromEssentials" />
|
||||
|
||||
<command id="cmd_zenPinnedTabReset" />
|
||||
<command id="cmd_zenPinnedTabResetNoTab" />
|
||||
|
||||
<command id="cmd_zenToggleSidebar" />
|
||||
|
||||
<command id="cmd_zenCopyCurrentURL" />
|
||||
<command id="cmd_zenCopyCurrentURLMarkdown" />
|
||||
|
||||
<command id="cmd_zenUnloadTab" />
|
||||
<command id="cmd_zenPreventUnloadTab" />
|
||||
<command id="cmd_zenIgnoreUnloadTab" />
|
||||
</commandset>
|
||||
|
||||
<keyset id="zenKeyset"></keyset>
|
@@ -1,4 +1,4 @@
|
||||
<link rel="localization" href="browser/zen-web-side-panels.ftl"/>
|
||||
|
||||
<link rel="localization" href="browser/zen-workspaces.ftl"/>
|
||||
<link rel="localization" href="browser/zen-split-view.ftl"/>
|
||||
<link rel="localization" href="browser/zen-general.ftl"/>
|
||||
|
@@ -1,86 +1,3 @@
|
||||
<menupopup id="zenWebPanelContextMenu"
|
||||
onpopupshowing="if (event.target == this) gZenBrowserManagerSidebar.updateContextMenu(this);"
|
||||
onpopuphidden="if (event.target == this) gZenBrowserManagerSidebar.contextTab = null;">
|
||||
<menuitem id="context_zenUnloadWebPanel" oncommand="gZenBrowserManagerSidebar.contextUnload();" data-l10n-id="zen-web-side-panel-context-unload"/>
|
||||
<menuitem id="context_zenToggleMuteWebPanel" oncommand="gZenBrowserManagerSidebar.contextToggleMuteAudio();"/>
|
||||
<menuitem id="context_zenOpenNewTabWebPanel" oncommand="gZenBrowserManagerSidebar.contextOpenNewTab();" data-l10n-id="zen-web-side-panel-open-in-new-tab"/>
|
||||
<menuseparator/>
|
||||
<menu id="context_zenWebPanelContextInContainer"
|
||||
data-l10n-id="zen-web-side-panel-context-open-in-container-tab"
|
||||
selection-type="single"
|
||||
node-type="link"
|
||||
hide-if-private-browsing="true"
|
||||
hide-if-usercontext-disabled="true">
|
||||
<menupopup oncommand="gZenBrowserManagerSidebar.contextChangeContainerTab(event);"
|
||||
onpopupshowing="return gZenBrowserManagerSidebar.createContainerTabMenu(event);" />
|
||||
</menu>
|
||||
<menuitem id="context_zenToogleUAWebPanel" oncommand="gZenBrowserManagerSidebar.contextToggleUserAgent();"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="context_zenDeleteWebPanel" oncommand="gZenBrowserManagerSidebar.contextDelete();" data-l10n-id="zen-web-side-panel-context-delete"/>
|
||||
</menupopup>
|
||||
|
||||
<html:template id="template-zen-split-view-modifier">
|
||||
<panel id="zenSplitViewModifier"
|
||||
class="panel-no-padding"
|
||||
orient="vertical"
|
||||
role="alertdialog"
|
||||
type="arrow"
|
||||
onpopupshowing="gZenViewSplitter.disableTabRearrangeView();"
|
||||
aria-labelledby="zen-split-view-modifier-header"
|
||||
tabspecific="true">
|
||||
<panelmultiview id="zenSplitViewModifierMultiview"
|
||||
mainViewId="zenSplitViewModifierViewDefault">
|
||||
<panelview id="zenSplitViewModifierViewDefault"
|
||||
class="PanelUI-subView"
|
||||
role="document"
|
||||
mainview-with-header="true"
|
||||
has-custom-header="true">
|
||||
<box id="zenSplitViewModifierHeader"
|
||||
class="panel-header panel-header-with-additional-element panel-header-with-info-button">
|
||||
<html:h1>
|
||||
<html:span data-l10n-id="zen-split-view-modifier-header"></html:span>
|
||||
</html:h1>
|
||||
<toolbarbutton id="zenSplitViewModifierActivateReallocation"
|
||||
class="panel-info-button"
|
||||
oncommand="gZenViewSplitter.enableTabRearrangeView();"
|
||||
data-l10n-id="zen-split-view-modifier-activate-reallocation">
|
||||
<image/>
|
||||
</toolbarbutton>
|
||||
</box>
|
||||
<hbox id="zenSplitViewModifierContent">
|
||||
<vbox>
|
||||
<box class="zen-split-view-modifier-preview grid">
|
||||
<box></box>
|
||||
<box></box>
|
||||
<box></box>
|
||||
</box>
|
||||
<p>Grid Layout</p>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<box class="zen-split-view-modifier-preview vsep">
|
||||
<box></box>
|
||||
<box></box>
|
||||
</box>
|
||||
<p>Vertical</p>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<box class="zen-split-view-modifier-preview hsep">
|
||||
<box></box>
|
||||
<box></box>
|
||||
</box>
|
||||
<p>Horizontal</p>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<box class="zen-split-view-modifier-preview unsplit">
|
||||
<box></box>
|
||||
</box>
|
||||
<p>Unsplit</p>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</panelview>
|
||||
</panelmultiview>
|
||||
</panel>
|
||||
</html:template>
|
||||
|
||||
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left" onpopuphidden="gZenThemePicker.handlePanelClose();" onpopupshowing="gZenThemePicker.handlePanelOpen();">
|
||||
<panelmultiview id="PanelUI-zen-gradient-generator-multiview" mainViewId="PanelUI-zen-gradient-generator-view">
|
||||
|
@@ -2,6 +2,7 @@
|
||||
# the window is fully loaded.
|
||||
# Make sure they are loaded before the global-scripts.inc file.
|
||||
<script type="text/javascript">
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-sets.js", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCommonUtils.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspaces.mjs", this);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#include zen-media-player.inc.xhtml
|
||||
#include ../../../zen/media/zen-media-controls.inc.xhtml
|
||||
<toolbar brighttext="true"
|
||||
id="zen-sidebar-bottom-buttons"
|
||||
fullscreentoolbar="true"
|
||||
@@ -9,6 +9,5 @@
|
||||
context="toolbar-context-menu"
|
||||
mode="icons">
|
||||
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-expand-sidebar-button" data-l10n-id="sidebar-zen-expand" cui-areatype="toolbar" oncommand="gZenVerticalTabsManager.toggleExpand();"></toolbarbutton>
|
||||
<toolbarbutton removable="true" class="toolbarbutton-1 zen-sidebar-action-button zen-compact-mode-ignore" id="zen-sidepanel-button" data-l10n-id="sidebar-zen-sidepanel" onclick="gZenBrowserManagerSidebar.toggle();"></toolbarbutton>
|
||||
<toolbarbutton id="zen-workspaces-button" class="chromeclass-toolbar-additional" overflows="false" removable="false"></toolbarbutton>
|
||||
</toolbar>
|
||||
|
@@ -1,34 +0,0 @@
|
||||
<hbox id="zen-sidebar-web-panel-wrapper">
|
||||
<box id="zen-sidebar-web-panel" class="chromeclass-extrachrome" hidden="true" persist="pinned style hidden" pinned="true">
|
||||
<toolbar mode="icons" flex="1" id="zen-sidebar-web-header" fullscreentoolbar="true">
|
||||
<hbox>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-back" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.back();"/>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-forward" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.forward();"/>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-reload" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.reload();"/>
|
||||
</hbox>
|
||||
<hbox id="zen-sidebar-web-panel-title" flex="1">
|
||||
</hbox>
|
||||
<hbox>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-home" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.home();"/>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-pinned" class="toolbarbutton-1 chromeclass-toolbar-additional" pinned="true" oncommand="gZenBrowserManagerSidebar.togglePinned(this);"/>
|
||||
<toolbarbutton id="zen-sidebar-web-panel-close" class="toolbarbutton-1 chromeclass-toolbar-additional" oncommand="gZenBrowserManagerSidebar.close();"/>
|
||||
</hbox>
|
||||
</toolbar>
|
||||
<vbox id="zen-sidebar-web-panel-browser-containers">
|
||||
<vbox id="zen-sidebar-introduction-panel" hidden="true">
|
||||
<html:h1 data-l10n-id="zen-webpanel-introduction-title"/>
|
||||
<html:p data-l10n-id="zen-webpanel-introduction-description"/>
|
||||
</vbox>
|
||||
</vbox>
|
||||
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-wrapper" fullscreentoolbar="true">
|
||||
<toolbar mode="icons" flex="1" id="zen-sidebar-panels-sites" fullscreentoolbar="true">
|
||||
|
||||
</toolbar>
|
||||
<toolbarbutton id="zen-sidebar-add-panel-button" class="zen-sidebar-panel-button toolbarbutton-1 chromeclass-toolbar-additional" onclick="gZenBrowserManagerSidebar._openAddPanelDialog();"/>
|
||||
</toolbar>
|
||||
<html:span class="zen-sidebar-web-panel-splitter" side="left"></html:span>
|
||||
<html:span class="zen-sidebar-web-panel-splitter" side="right"></html:span>
|
||||
<html:span class="zen-sidebar-web-panel-splitter" orient="horizontal" side="top"></html:span>
|
||||
<html:span class="zen-sidebar-web-panel-splitter" orient="horizontal" side="bottom"></html:span>
|
||||
</box>
|
||||
</hbox>
|
@@ -1,385 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
/* All overrides for compact mode go here */
|
||||
|
||||
:root[zen-compact-mode='true']:not([customizing]):not([inDOMFullscreen='true']) {
|
||||
%include zen-tabs/vertical-tabs-topbuttons-fix.css
|
||||
|
||||
@media (-moz-bool-pref: 'zen.view.compact.hide-tabbar') or (-moz-bool-pref: 'zen.view.use-single-toolbar') {
|
||||
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
|
||||
margin-left: var(--zen-sidebar-web-panel-spacing) !important;
|
||||
}
|
||||
|
||||
#zen-tabbox-wrapper {
|
||||
/* Remove extra 1px of margine we have to add to the tabbox */
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
|
||||
#zen-appcontent-wrapper {
|
||||
margin-left: var(--zen-element-separation) !important;
|
||||
margin-right: var(--zen-element-separation) !important;
|
||||
|
||||
& #tabbrowser-tabbox {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#zen-sidebar-top-buttons-customization-target {
|
||||
padding-inline-start: calc(var(--zen-toolbox-padding) - var(--toolbarbutton-outer-padding)) !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-splitter {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#navigator-toolbox {
|
||||
--zen-toolbox-max-width: 64px !important;
|
||||
--zen-compact-float: var(--zen-element-separation);
|
||||
|
||||
/* Initial padding for when we are animating */
|
||||
padding: 0 0 0 var(--zen-toolbox-padding) !important;
|
||||
|
||||
&:not([animate='true']) {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
transition:
|
||||
left 0.15s ease,
|
||||
right 0.15s ease,
|
||||
opacity 1.5s ease;
|
||||
top: 0;
|
||||
bottom: var(--zen-element-separation);
|
||||
padding: 0 var(--zen-compact-float) !important;
|
||||
opacity: 0;
|
||||
|
||||
:root[zen-single-toolbar='true'] & {
|
||||
top: calc(var(--zen-element-separation) / 2);
|
||||
height: calc(100% - var(--zen-element-separation));
|
||||
}
|
||||
|
||||
& #zen-sidebar-top-buttons {
|
||||
margin: 0 0 calc(var(--zen-toolbox-padding) / 2) 0;
|
||||
}
|
||||
}
|
||||
|
||||
&:not([zen-right-side='true']) #nav-bar {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&:not([zen-right-side='true']) #navigator-toolbox {
|
||||
left: calc(-1 * var(--actual-zen-sidebar-width) + 1px);
|
||||
}
|
||||
|
||||
/* When we have multiple toolbars and the top-toolbar is NOT being hidden,
|
||||
* we need to adjust the top-padding of the toolbox to account for the
|
||||
* extra toolbar height. */
|
||||
@media not (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
|
||||
&:not([zen-single-toolbar='true']) #navigator-toolbox:not([animate='true']) {
|
||||
margin-top: var(--zen-toolbar-height) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&[zen-right-side='true'] {
|
||||
& #navigator-toolbox {
|
||||
--zen-compact-float: calc(var(--zen-element-separation) + 1px);
|
||||
|
||||
&:not([animate='true']) {
|
||||
right: calc(-1 * var(--actual-zen-sidebar-width) + 1px);
|
||||
}
|
||||
}
|
||||
|
||||
& .browserSidebarContainer {
|
||||
margin-left: 0 !important;
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
#navigator-toolbox:not([animate='true']) #titlebar {
|
||||
box-shadow: var(--zen-big-shadow);
|
||||
border-radius: calc(var(--zen-native-inner-radius) + var(--zen-element-separation) / 4);
|
||||
padding: var(--zen-toolbox-padding) !important;
|
||||
position: relative;
|
||||
background: var(--zen-dialog-background);
|
||||
border: 1px solid var(--zen-colors-border-contrast);
|
||||
/* times 4 because we have the inner padding and the outter padding to consider */
|
||||
:root[zen-sidebar-expanded='true'] & {
|
||||
&[has-animated-padding='true'] {
|
||||
width: calc(var(--zen-sidebar-width) + var(--zen-toolbox-padding));
|
||||
}
|
||||
|
||||
&:not([has-animated-padding='true']) {
|
||||
width: calc(var(--zen-sidebar-width) - var(--zen-toolbox-padding));
|
||||
}
|
||||
}
|
||||
|
||||
:root[zen-single-toolbar='true'] {
|
||||
padding-top: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
@media (-moz-bool-pref: 'zen.view.compact.color-sidebar') {
|
||||
background: var(--zen-main-browser-background-toolbar) !important;
|
||||
background-attachment: fixed !important;
|
||||
background-size: 2000px !important; /* Dont ask me why */
|
||||
/* NOTE: We MUST not add a backdrop-filter if we want the URL
|
||||
* bar to be floating correctly:
|
||||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_display/Containing_block#identifying_the_containing_block */
|
||||
}
|
||||
|
||||
& #urlbar[open][zen-floating-urlbar='true'] {
|
||||
transition: left 0.05s ease;
|
||||
visibility: visible;
|
||||
|
||||
#navigator-toolbox:has(&) {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-image: url(chrome://browser/content/zen-images/grain-bg.png);
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
opacity: var(--zen-grainy-background-opacity, 0);
|
||||
mix-blend-mode: overlay;
|
||||
}
|
||||
}
|
||||
|
||||
#navigator-toolbox[zen-has-hover]:not(:has(#urlbar[zen-floating-urlbar='true']:hover)),
|
||||
#navigator-toolbox[zen-user-show],
|
||||
#navigator-toolbox[zen-has-empty-tab],
|
||||
#navigator-toolbox[flash-popup],
|
||||
#navigator-toolbox[has-popup-menu],
|
||||
#navigator-toolbox[movingtab],
|
||||
#navigator-toolbox:has(.tabbrowser-tab:active),
|
||||
&[zen-renaming-tab='true'] #navigator-toolbox,
|
||||
#navigator-toolbox:has(
|
||||
*:is([panelopen='true'], [open='true'], #urlbar:focus-within):not(#urlbar[zen-floating-urlbar='true']):not(tab):not(.zen-compact-mode-ignore)
|
||||
) {
|
||||
&:not([animate='true']) {
|
||||
--zen-compact-mode-func: linear(
|
||||
0 0%,
|
||||
0.002748 1%,
|
||||
0.010544 2%,
|
||||
0.022757 3%,
|
||||
0.038804 4%,
|
||||
0.058151 5%,
|
||||
0.080308 6%,
|
||||
0.104828 7.000000000000001%,
|
||||
0.131301 8%,
|
||||
0.159358 9%,
|
||||
0.188662 10%,
|
||||
0.21891 11%,
|
||||
0.249828 12%,
|
||||
0.281172 13%,
|
||||
0.312724 14.000000000000002%,
|
||||
0.344288 15%,
|
||||
0.375693 16%,
|
||||
0.40679 17%,
|
||||
0.437447 18%,
|
||||
0.467549 19%,
|
||||
0.497 20%,
|
||||
0.525718 21%,
|
||||
0.553633 22%,
|
||||
0.580688 23%,
|
||||
0.60684 24%,
|
||||
0.632052 25%,
|
||||
0.656298 26%,
|
||||
0.679562 27%,
|
||||
0.701831 28.000000000000004%,
|
||||
0.723104 28.999999999999996%,
|
||||
0.743381 30%,
|
||||
0.76267 31%,
|
||||
0.780983 32%,
|
||||
0.798335 33%,
|
||||
0.814744 34%,
|
||||
0.830233 35%,
|
||||
0.844826 36%,
|
||||
0.858549 37%,
|
||||
0.87143 38%,
|
||||
0.883498 39%,
|
||||
0.894782 40%,
|
||||
0.905314 41%,
|
||||
0.915125 42%,
|
||||
0.924247 43%,
|
||||
0.93271 44%,
|
||||
0.940547 45%,
|
||||
0.947787 46%,
|
||||
0.954463 47%,
|
||||
0.960603 48%,
|
||||
0.966239 49%,
|
||||
0.971397 50%,
|
||||
0.976106 51%,
|
||||
0.980394 52%,
|
||||
0.984286 53%,
|
||||
0.987808 54%,
|
||||
0.990984 55.00000000000001%,
|
||||
0.993837 56.00000000000001%,
|
||||
0.99639 56.99999999999999%,
|
||||
0.998664 57.99999999999999%,
|
||||
1.000679 59%,
|
||||
1.002456 60%,
|
||||
1.004011 61%,
|
||||
1.005363 62%,
|
||||
1.006528 63%,
|
||||
1.007522 64%,
|
||||
1.008359 65%,
|
||||
1.009054 66%,
|
||||
1.009618 67%,
|
||||
1.010065 68%,
|
||||
1.010405 69%,
|
||||
1.010649 70%,
|
||||
1.010808 71%,
|
||||
1.01089 72%,
|
||||
1.010904 73%,
|
||||
1.010857 74%,
|
||||
1.010757 75%,
|
||||
1.010611 76%,
|
||||
1.010425 77%,
|
||||
1.010205 78%,
|
||||
1.009955 79%,
|
||||
1.009681 80%,
|
||||
1.009387 81%,
|
||||
1.009077 82%,
|
||||
1.008754 83%,
|
||||
1.008422 84%,
|
||||
1.008083 85%,
|
||||
1.00774 86%,
|
||||
1.007396 87%,
|
||||
1.007052 88%,
|
||||
1.00671 89%,
|
||||
1.006372 90%,
|
||||
1.00604 91%,
|
||||
1.005713 92%,
|
||||
1.005394 93%,
|
||||
1.005083 94%,
|
||||
1.004782 95%,
|
||||
1.004489 96%,
|
||||
1.004207 97%,
|
||||
1.003935 98%,
|
||||
1.003674 99%,
|
||||
1.003423 100%
|
||||
);
|
||||
transition:
|
||||
left 0.25s var(--zen-compact-mode-func),
|
||||
right 0.25s var(--zen-compact-mode-func);
|
||||
opacity: 1;
|
||||
|
||||
&:not([supress-primary-adjustment='true']) {
|
||||
left: calc(var(--zen-element-separation) / -2);
|
||||
:root[zen-right-side='true'] & {
|
||||
right: calc(var(--zen-element-separation) / -2);
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
|
||||
&:not([zen-single-toolbar='true']) {
|
||||
& #navigator-toolbox {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
& #navigator-toolbox {
|
||||
--zen-toolbox-top-align: var(--zen-element-separation);
|
||||
}
|
||||
|
||||
& #sidebar-box,
|
||||
& #titlebar,
|
||||
& #zen-appcontent-wrapper,
|
||||
& #zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel:not([pinned='true'])) {
|
||||
margin-top: var(--zen-element-separation) !important;
|
||||
}
|
||||
|
||||
& #zen-appcontent-wrapper {
|
||||
z-index: 3 !important;
|
||||
}
|
||||
|
||||
& #zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
|
||||
margin-top: calc(var(--zen-element-separation) * 2) !important;
|
||||
}
|
||||
|
||||
& #zen-appcontent-navbar-container {
|
||||
--zen-compact-toolbar-offset: 5px;
|
||||
position: absolute;
|
||||
top: calc((-1 * var(--zen-toolbar-height)) + var(--zen-element-separation) + 1px);
|
||||
left: 0;
|
||||
z-index: 20;
|
||||
box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.3) !important;
|
||||
border-bottom-left-radius: var(--zen-border-radius);
|
||||
border-bottom-right-radius: var(--zen-border-radius);
|
||||
border-top-left-radius: env(-moz-gtk-csd-titlebar-radius);
|
||||
border-top-right-radius: env(-moz-gtk-csd-titlebar-radius);
|
||||
transition: all 0.15s ease;
|
||||
width: 100%;
|
||||
opacity: 0;
|
||||
background: var(--zen-dialog-background);
|
||||
|
||||
max-height: var(--zen-toolbar-height);
|
||||
overflow: hidden;
|
||||
|
||||
& > * {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
& #urlbar {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
@media (-moz-bool-pref: 'zen.view.compact.color-toolbar') {
|
||||
background-attachment: fixed;
|
||||
background: var(--zen-main-browser-background-toolbar);
|
||||
background-size: 100% 2000px;
|
||||
border-bottom: 1px solid var(--zen-colors-border);
|
||||
}
|
||||
}
|
||||
|
||||
& #zen-appcontent-navbar-container[zen-has-hover],
|
||||
& #zen-appcontent-navbar-container:focus-within,
|
||||
& #zen-appcontent-navbar-container[zen-user-show],
|
||||
& #zen-appcontent-navbar-container[has-popup-menu],
|
||||
& #zen-appcontent-navbar-container:has(*:is([panelopen='true'], [open='true']):not(.zen-compact-mode-ignore)) {
|
||||
opacity: 1;
|
||||
border-top-width: 1px;
|
||||
|
||||
top: -1px;
|
||||
overflow: initial;
|
||||
max-height: unset;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-image: url(chrome://browser/content/zen-images/grain-bg.png);
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
opacity: var(--zen-grainy-background-opacity, 0);
|
||||
mix-blend-mode: overlay;
|
||||
}
|
||||
|
||||
& #urlbar {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
& #urlbar[breakout-extend='true']:not([zen-floating-urlbar='true']) {
|
||||
top: 2px !important;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
panel[type='arrow'][animate][animate='open']::part(content) {
|
||||
animation: zen-jello-animation 0.35s ease;
|
||||
|
||||
@media (-moz-platform: macos) {
|
||||
animation: zen-jello-animation-alt 0.2s ease-out;
|
||||
}
|
||||
}
|
||||
|
||||
panel[type='arrow'][animate]:not([animate='open'])::part(content) {
|
||||
animation: zen-jello-out-animation 0.3s ease-in-out;
|
||||
}
|
@@ -1,226 +0,0 @@
|
||||
#zen-rice-share-dialog-overlay:not([hidden]) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 3;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#zen-rice-share-dialog,
|
||||
#zen-rice-share-dialog-notice {
|
||||
color: var(--panel-color);
|
||||
background: var(--arrowpanel-background);
|
||||
border-radius: var(--zen-native-inner-radius);
|
||||
box-shadow: 0 0 1px 1px hsla(0, 0%, 0%, 0.2);
|
||||
border: var(--zen-appcontent-border);
|
||||
overflow: hidden;
|
||||
|
||||
animation: zen-jello-animation-large 0.4s ease;
|
||||
max-width: 400px;
|
||||
|
||||
&[animate='true'] {
|
||||
animation: zen-rice-submit-animation 1s cubic-bezier(0.77, 0, 0.18, 1);
|
||||
}
|
||||
|
||||
& .zen-rice-share-content {
|
||||
padding: 10px 0;
|
||||
border-top: var(--zen-appcontent-border);
|
||||
background: var(--arrowpanel-background);
|
||||
position: relative;
|
||||
align-items: center;
|
||||
|
||||
min-height: 50px;
|
||||
|
||||
&:has(#zen-rice-share-first-form:not([fade-out])),
|
||||
&:has(#zen-rice-share-success) {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
& > vbox {
|
||||
width: 100%;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
& #zen-rice-share-first-form input[type='text'] {
|
||||
width: 100%;
|
||||
padding: 1px 2px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid var(--zen-appcontent-border);
|
||||
background: transparent;
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
& #zen-rice-share-name {
|
||||
font-style: normal !important;
|
||||
font-size: 24px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
|
||||
& .indent {
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
& .zen-rice-share-header {
|
||||
height: 200px;
|
||||
margin-bottom: -20px;
|
||||
}
|
||||
|
||||
& #zen-rice-share-options {
|
||||
padding: 10px 0;
|
||||
|
||||
max-height: 30px;
|
||||
overflow: hidden;
|
||||
transition:
|
||||
max-height 0.3s ease,
|
||||
height 0.3s ease;
|
||||
&[zen-collapsed='false'] {
|
||||
max-height: 350px;
|
||||
}
|
||||
|
||||
& > .options-header {
|
||||
font-weight: 600;
|
||||
margin-bottom: 5px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
|
||||
color: inherit;
|
||||
-moz-context-properties: fill, fill-opacity;
|
||||
fill: var(--toolbarbutton-icon-fill);
|
||||
|
||||
& label {
|
||||
width: fit-content;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
& > .options-header image {
|
||||
transition: transform 0.3s ease;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
&[zen-collapsed='false'] > .options-header image {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
& > checkbox {
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
& .panel-footer {
|
||||
margin: 0;
|
||||
margin-top: 10px;
|
||||
|
||||
& button {
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
#zen-rice-share-error {
|
||||
border: 1px solid rgba(255, 0, 0, 0.5);
|
||||
background: rgba(255, 0, 0, 0.1);
|
||||
padding: 5px;
|
||||
transition: opacity 0.3s ease;
|
||||
border-radius: var(--zen-native-inner-radius);
|
||||
|
||||
@starting-style {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
& button {
|
||||
margin-left: auto;
|
||||
margin-top: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Animations */
|
||||
#zen-rice-share-first-form[fade-out] {
|
||||
position: absolute;
|
||||
transform: translateX(-100%);
|
||||
pointer-events: none;
|
||||
animation: zen-rice-form-out 0.5s ease;
|
||||
}
|
||||
|
||||
#zen-rice-share-second-form {
|
||||
animation: zen-rice-form-in 0.5s ease forwards;
|
||||
justify-content: center;
|
||||
|
||||
& > hbox {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
border-radius: 100px;
|
||||
border: 1px solid var(--zen-colors-border);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: var(--zen-primary-color);
|
||||
transition: width 4s cubic-bezier(1, 0, 0, 1);
|
||||
|
||||
@starting-style {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&[fade-out] {
|
||||
position: absolute !important;
|
||||
animation: zen-rice-form-out 0.5s ease forwards;
|
||||
}
|
||||
}
|
||||
|
||||
#zen-rice-share-success {
|
||||
overflow-y: hidden;
|
||||
max-height: 0px;
|
||||
animation: zen-rice-form-in-2 0.5s ease forwards;
|
||||
|
||||
& > h1 {
|
||||
margin: 0;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
& > p {
|
||||
color: var(--text-color-deemphasized);
|
||||
}
|
||||
|
||||
& label {
|
||||
margin: 0;
|
||||
margin-top: 15px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#zen-rice-share-dialog-notice {
|
||||
padding: 15px;
|
||||
|
||||
& br {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
& > p {
|
||||
color: var(--text-color-deemphasized);
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.panel-footer {
|
||||
margin-top: 10px;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
@@ -1,306 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#zen-sidebar-panels-wrapper {
|
||||
/*min-height: 500px;*/
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
#zen-sidebar-panels-sites {
|
||||
background: transparent;
|
||||
max-width: 1px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#zen-sidebar-add-panel-button:not(:hover) image,
|
||||
.zen-sidebar-panel-button:not([selected='true'], #zen-sidebar-add-panel-button) image {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.zen-sidebar-panel-button {
|
||||
width: var(--zen-sidebar-action-button-width);
|
||||
height: var(--zen-sidebar-action-button-width);
|
||||
max-height: var(--zen-sidebar-action-button-width);
|
||||
padding: 0 3px !important;
|
||||
margin: 0;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.zen-sidebar-panel-button image {
|
||||
border-radius: 10px !important;
|
||||
border: 2px solid transparent;
|
||||
}
|
||||
|
||||
.zen-sidebar-panel-button:hover image {
|
||||
background: color-mix(in srgb, var(--toolbarbutton-hover-background) 12%, transparent);
|
||||
}
|
||||
|
||||
.zen-sidebar-panel-button[selected='true'] image {
|
||||
border-color: var(--zen-primary-color);
|
||||
}
|
||||
|
||||
/** Sidebar view */
|
||||
|
||||
#zen-sidebar-web-panel-wrapper {
|
||||
--zen-default-sidebar-width: 300px;
|
||||
--zen-sidebar-web-panel-spacing: var(--zen-element-separation);
|
||||
position: relative;
|
||||
margin-right: 0;
|
||||
display: flex;
|
||||
pointer-events: none;
|
||||
transition: width 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[hidden='true']) {
|
||||
max-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: calc(100% - var(--zen-sidebar-web-panel-spacing) * 3);
|
||||
margin: var(--zen-sidebar-web-panel-spacing);
|
||||
/* Why times 3?
|
||||
* + 1 for the top margin, making the element overflow the view.
|
||||
* + 1 for the margin we want to add at the bottom
|
||||
* + 1 so that the panel can be correctly spaced from the border of the webview
|
||||
*/
|
||||
height: calc(100% - var(--zen-sidebar-web-panel-spacing) * 4);
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel {
|
||||
border-radius: var(--zen-native-inner-radius);
|
||||
z-index: 2;
|
||||
box-shadow: var(--zen-big-shadow);
|
||||
background: var(--zen-colors-tertiary);
|
||||
opacity: 0;
|
||||
animation-delay: 0.1s;
|
||||
flex-direction: column;
|
||||
min-width: var(--zen-default-sidebar-width);
|
||||
max-width: 720px;
|
||||
min-height: var(--zen-default-sidebar-width);
|
||||
width: calc(var(--zen-default-sidebar-width) + 200px);
|
||||
pointer-events: all;
|
||||
height: calc(100% - 20px);
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel:not([pinned='true']) {
|
||||
/* We need to always override the height */
|
||||
height: unset !important;
|
||||
}
|
||||
|
||||
.zen-sidebar-web-panel-splitter,
|
||||
.zen-split-view-splitter[orient='vertical'],
|
||||
#zen-sidebar-splitter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: var(--zen-element-separation);
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: ew-resize;
|
||||
z-index: 2;
|
||||
|
||||
&:is(.zen-split-view-splitter[orient='vertical']) {
|
||||
/* Bit of a hacky solution, but it works */
|
||||
width: var(--zen-split-row-gap);
|
||||
margin-left: calc(var(--zen-element-separation) * -1 - 1px);
|
||||
height: unset;
|
||||
cursor: ew-resize;
|
||||
}
|
||||
|
||||
&::before {
|
||||
height: 50px;
|
||||
width: 2px;
|
||||
background: var(--button-primary-bgcolor);
|
||||
border-radius: 2px;
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
opacity: 0;
|
||||
transition: opacity 0.1s ease-in-out;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.zen-sidebar-web-panel-splitter[side='right'] {
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.zen-sidebar-web-panel-splitter[side='left'] {
|
||||
right: 100%;
|
||||
}
|
||||
|
||||
.zen-sidebar-web-panel-splitter[orient='horizontal'] {
|
||||
width: 100%;
|
||||
height: 7px;
|
||||
cursor: ns-resize;
|
||||
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.zen-sidebar-web-panel-splitter[side='bottom'] {
|
||||
top: initial;
|
||||
bottom: -2px;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[hidden='true'] .zen-sidebar-web-panel-splitter,
|
||||
#zen-sidebar-web-panel-wrapper[hidden='true'] + .zen-sidebar-web-panel-splitter,
|
||||
#zen-sidebar-web-panel:not([pinned='true']) .zen-sidebar-web-panel-splitter[orient='horizontal'],
|
||||
#zen-sidebar-web-panel:not([pinned='true']) .zen-sidebar-web-panel-splitter[side='left'] {
|
||||
display: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#main-window[customizing='true'] #zen-sidebar-web-panel-wrapper {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel:not([hidden='true']) {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[pinned='true'] {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[hidden='true'][pinned='true'] {
|
||||
display: flex;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-header,
|
||||
#zen-sidebar-panels-wrapper {
|
||||
width: 100%;
|
||||
min-height: var(--zen-toolbar-height) !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 5px;
|
||||
border: var(--zen-appcontent-border);
|
||||
border-width: 0 !important;
|
||||
border-bottom-width: 1px !important;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
color-scheme: var(--toolbar-color-scheme);
|
||||
-moz-window-dragging: no-drag;
|
||||
|
||||
--toolbarbutton-inner-padding: var(--zen-toolbar-button-inner-padding) !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-header {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-header toolbarbutton {
|
||||
fill: color-mix(in srgb, var(--toolbarbutton-icon-fill) 70%, transparent);
|
||||
}
|
||||
|
||||
#zen-sidebar-panels-wrapper {
|
||||
border-top-width: 1px !important;
|
||||
border-bottom-width: 0px !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel-browser-containers {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#zen-sidebar-introduction-panel {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 0 auto;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
#zen-sidebar-introduction-panel[hidden='true'] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#zen-sidebar-introduction-panel h1 {
|
||||
font-size: 1.5em;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#zen-sidebar-introduction-panel p {
|
||||
opacity: 0.7;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel browser[zen-sidebar-id] {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel-title {
|
||||
font-size: 0.9em;
|
||||
font-weight: 600;
|
||||
margin: 0 10px;
|
||||
padding: 0;
|
||||
color: var(--text-color-deemphasized);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
width: -moz-available;
|
||||
text-align: center;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[pinned] {
|
||||
transform-origin: 50% 20%;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[pinned]:not([hidden]) {
|
||||
animation: better-sidebar-pinned-show 0.15s ease-in-out forwards !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[pinned][hidden] {
|
||||
animation: better-sidebar-pinned-hide 0.15s ease-in-out forwards !important;
|
||||
}
|
||||
|
||||
/** UNPINNED **/
|
||||
#zen-sidebar-web-panel {
|
||||
/* Sets perspective */
|
||||
transform-origin: 50% 20%;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel:not([hidden]) #zen-sidebar-introduction-panel * {
|
||||
opacity: 0;
|
||||
animation: better-sidebar-intro-show 0.5s 0.4s ease-out forwards !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel:not([hidden]) #zen-sidebar-introduction-panel p {
|
||||
animation: better-sidebar-intro-show 0.5s 0.8s ease-out forwards !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel:not([hidden]) {
|
||||
animation: better-sidebar-show 0.15s ease-in-out forwards !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-web-panel[hidden] {
|
||||
animation: better-sidebar-hide 0.15s ease-in-out forwards !important;
|
||||
}
|
@@ -1,2 +1,2 @@
|
||||
#include zen-splitview-overlay.inc.xhtml
|
||||
#include zen-glance.inc.xhtml
|
||||
#include ../../../zen/split-view/zen-splitview-overlay.inc.xhtml
|
||||
#include ../../../zen/glance/zen-glance.inc.xhtml
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/moz.build b/browser/base/moz.build
|
||||
index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..6685d857180944d68bf4f049919f81361084c481 100644
|
||||
index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..62e4531bd19caf098fd76c69b213fa32d62546a6 100644
|
||||
--- a/browser/base/moz.build
|
||||
+++ b/browser/base/moz.build
|
||||
@@ -87,3 +87,5 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk"):
|
||||
@@ -7,4 +7,4 @@ index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..6685d857180944d68bf4f049919f8136
|
||||
|
||||
JAR_MANIFESTS += ["jar.mn"]
|
||||
+
|
||||
+DIRS += ["zen-components"]
|
||||
+DIRS += ["../../zen"]
|
||||
|
@@ -1,483 +0,0 @@
|
||||
class ZenMediaController {
|
||||
_currentMediaController = null;
|
||||
_currentBrowser = null;
|
||||
_mediaUpdateInterval = null;
|
||||
|
||||
mediaTitle = null;
|
||||
mediaArtist = null;
|
||||
mediaControlBar = null;
|
||||
mediaProgressBar = null;
|
||||
mediaCurrentTime = null;
|
||||
mediaDuration = null;
|
||||
mediaFocusButton = null;
|
||||
mediaProgressBarContainer = null;
|
||||
|
||||
supportedKeys = ['playpause', 'previoustrack', 'nexttrack'];
|
||||
|
||||
pipEligibilityMap = new Map();
|
||||
mediaControllersMap = new Map();
|
||||
|
||||
_tabTimeout = null;
|
||||
_controllerSwitchTimeout = null;
|
||||
|
||||
init() {
|
||||
this.mediaTitle = document.querySelector('#zen-media-title');
|
||||
this.mediaArtist = document.querySelector('#zen-media-artist');
|
||||
this.mediaControlBar = document.querySelector('#zen-media-controls-toolbar');
|
||||
this.mediaProgressBar = document.querySelector('#zen-media-progress-bar');
|
||||
this.mediaCurrentTime = document.querySelector('#zen-media-current-time');
|
||||
this.mediaDuration = document.querySelector('#zen-media-duration');
|
||||
this.mediaFocusButton = document.querySelector('#zen-media-focus-button');
|
||||
this.mediaProgressBarContainer = document.querySelector('#zen-media-progress-hbox');
|
||||
|
||||
this.onPositionstateChange = this._onPositionstateChange.bind(this);
|
||||
this.onPlaybackstateChange = this._onPlaybackstateChange.bind(this);
|
||||
this.onSupportedKeysChange = this._onSupportedKeysChange.bind(this);
|
||||
this.onMetadataChange = this._onMetadataChange.bind(this);
|
||||
this.onDeactivated = this._onDeactivated.bind(this);
|
||||
this.onPipModeChange = this._onPictureInPictureModeChange.bind(this);
|
||||
|
||||
window.addEventListener('TabSelect', (event) => {
|
||||
const linkedBrowser = event.target.linkedBrowser;
|
||||
this.switchController();
|
||||
|
||||
if (this._currentBrowser) {
|
||||
if (linkedBrowser.browserId === this._currentBrowser.browserId) {
|
||||
if (this._tabTimeout) {
|
||||
clearTimeout(this._tabTimeout);
|
||||
this._tabTimeout = null;
|
||||
}
|
||||
|
||||
this.hideMediaControls();
|
||||
} else {
|
||||
this._tabTimeout = setTimeout(() => {
|
||||
if (!this.mediaControlBar.hasAttribute('pip')) this.showMediaControls();
|
||||
else this._tabTimeout = null;
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('TabClose', (event) => {
|
||||
const linkedBrowser = event.target.linkedBrowser;
|
||||
if (!linkedBrowser?.browsingContext?.mediaController) return;
|
||||
this.deinitMediaController(
|
||||
linkedBrowser.browsingContext.mediaController,
|
||||
true,
|
||||
linkedBrowser.browserId === this._currentBrowser?.browserId,
|
||||
true
|
||||
);
|
||||
});
|
||||
|
||||
window.addEventListener('DOMAudioPlaybackStarted', (event) => {
|
||||
setTimeout(() => {
|
||||
if (
|
||||
this._currentMediaController?.isPlaying &&
|
||||
this.mediaControlBar.hasAttribute('hidden') &&
|
||||
!this.mediaControlBar.hasAttribute('pip')
|
||||
) {
|
||||
const { selectedBrowser } = gBrowser;
|
||||
if (selectedBrowser.browserId !== this._currentBrowser.browserId) {
|
||||
this.showMediaControls();
|
||||
}
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
this.activateMediaControls(event.target.browsingContext.mediaController, event.target);
|
||||
});
|
||||
|
||||
window.addEventListener('DOMAudioPlaybackStopped', () => this.updateMuteState());
|
||||
}
|
||||
|
||||
async deinitMediaController(mediaController, shouldForget = true, shouldOverride = true, shouldHide = true) {
|
||||
if (!mediaController) return;
|
||||
|
||||
const retrievedMediaController = this.mediaControllersMap.get(mediaController.id);
|
||||
|
||||
if (shouldForget) {
|
||||
mediaController.removeEventListener('pictureinpicturemodechange', this.onPipModeChange);
|
||||
mediaController.removeEventListener('positionstatechange', this.onPositionstateChange);
|
||||
mediaController.removeEventListener('playbackstatechange', this.onPlaybackstateChange);
|
||||
mediaController.removeEventListener('supportedkeyschange', this.onSupportedKeysChange);
|
||||
mediaController.removeEventListener('metadatachange', this.onMetadataChange);
|
||||
mediaController.removeEventListener('deactivated', this.onDeactivated);
|
||||
|
||||
this.mediaControllersMap.delete(mediaController.id);
|
||||
this.pipEligibilityMap.delete(retrievedMediaController?.browser?.browserId);
|
||||
}
|
||||
|
||||
if (shouldOverride) {
|
||||
this._currentMediaController = null;
|
||||
this._currentBrowser = null;
|
||||
|
||||
if (this._mediaUpdateInterval) {
|
||||
clearInterval(this._mediaUpdateInterval);
|
||||
this._mediaUpdateInterval = null;
|
||||
}
|
||||
|
||||
if (shouldHide) await this.hideMediaControls();
|
||||
this.mediaControlBar.removeAttribute('muted');
|
||||
this.mediaControlBar.classList.remove('playing');
|
||||
}
|
||||
}
|
||||
|
||||
hideMediaControls() {
|
||||
if (this.mediaControlBar.hasAttribute('hidden')) return;
|
||||
|
||||
return gZenUIManager.motion
|
||||
.animate(
|
||||
this.mediaControlBar,
|
||||
{
|
||||
opacity: [1, 0],
|
||||
y: [0, 10],
|
||||
},
|
||||
{
|
||||
duration: 0.1,
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
this.mediaControlBar.setAttribute('hidden', 'true');
|
||||
gZenUIManager.updateTabsToolbar();
|
||||
});
|
||||
}
|
||||
|
||||
showMediaControls() {
|
||||
if (this._currentMediaController.isBeingUsedInPIPModeOrFullscreen) return this.hideMediaControls();
|
||||
if (!this.mediaControlBar.hasAttribute('hidden')) return;
|
||||
|
||||
this.updatePipButton();
|
||||
const mediaInfoElements = [this.mediaTitle, this.mediaArtist];
|
||||
for (const element of mediaInfoElements) {
|
||||
element.removeAttribute('overflow'); // So we can properly recalculate the overflow
|
||||
}
|
||||
|
||||
this.mediaControlBar.removeAttribute('hidden');
|
||||
window.requestAnimationFrame(() => {
|
||||
this.mediaControlBar.style.height =
|
||||
this.mediaControlBar.querySelector('toolbaritem').getBoundingClientRect().height + 'px';
|
||||
this.mediaControlBar.style.opacity = 0;
|
||||
gZenUIManager.updateTabsToolbar();
|
||||
gZenUIManager.motion.animate(
|
||||
this.mediaControlBar,
|
||||
{
|
||||
opacity: [0, 1],
|
||||
y: [10, 0],
|
||||
},
|
||||
{}
|
||||
);
|
||||
this.addLabelOverflows(mediaInfoElements);
|
||||
});
|
||||
}
|
||||
|
||||
addLabelOverflows(elements) {
|
||||
for (const element of elements) {
|
||||
const parent = element.parentElement;
|
||||
if (element.scrollWidth > parent.clientWidth) {
|
||||
element.setAttribute('overflow', '');
|
||||
} else {
|
||||
element.removeAttribute('overflow');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setupMediaController(mediaController, browser) {
|
||||
this._currentMediaController = mediaController;
|
||||
this._currentBrowser = browser;
|
||||
|
||||
this.updatePipButton();
|
||||
|
||||
const positionState = mediaController.getPositionState();
|
||||
this.mediaControllersMap.set(mediaController.id, {
|
||||
controller: mediaController,
|
||||
browser,
|
||||
position: positionState.position,
|
||||
duration: positionState.duration,
|
||||
lastUpdated: Date.now(),
|
||||
});
|
||||
}
|
||||
|
||||
setupMediaControlUI(metadata, positionState) {
|
||||
this.updatePipButton();
|
||||
|
||||
if (!this.mediaControlBar.classList.contains('playing') && this._currentMediaController.isPlaying) {
|
||||
this.mediaControlBar.classList.add('playing');
|
||||
}
|
||||
|
||||
const iconURL = this._currentBrowser.mIconURL || `page-icon:${this._currentBrowser.currentURI.spec}`;
|
||||
this.mediaFocusButton.style.listStyleImage = `url(${iconURL})`;
|
||||
|
||||
this.mediaTitle.textContent = metadata.title || '';
|
||||
this.mediaArtist.textContent = metadata.artist || '';
|
||||
|
||||
gZenUIManager.updateTabsToolbar();
|
||||
|
||||
this._currentPosition = positionState.position;
|
||||
this._currentDuration = positionState.duration;
|
||||
this.updateMediaPosition();
|
||||
|
||||
for (const key of this.supportedKeys) {
|
||||
const button = this.mediaControlBar.querySelector(`#zen-media-${key}-button`);
|
||||
button.disabled = !this._currentMediaController.supportedKeys.includes(key);
|
||||
}
|
||||
}
|
||||
|
||||
activateMediaControls(mediaController, browser) {
|
||||
this.updateMuteState();
|
||||
this.switchController();
|
||||
|
||||
if (!mediaController.isActive || this._currentBrowser?.browserId === browser.browserId) return;
|
||||
|
||||
const metadata = mediaController.getMetadata();
|
||||
const positionState = mediaController.getPositionState();
|
||||
this.mediaControllersMap.set(mediaController.id, {
|
||||
controller: mediaController,
|
||||
browser,
|
||||
position: positionState.position,
|
||||
duration: positionState.duration,
|
||||
lastUpdated: Date.now(),
|
||||
});
|
||||
|
||||
if (!this._currentBrowser) {
|
||||
this.setupMediaController(mediaController, browser);
|
||||
this.setupMediaControlUI(metadata, positionState);
|
||||
}
|
||||
|
||||
mediaController.addEventListener('pictureinpicturemodechange', this.onPipModeChange);
|
||||
mediaController.addEventListener('positionstatechange', this.onPositionstateChange);
|
||||
mediaController.addEventListener('playbackstatechange', this.onPlaybackstateChange);
|
||||
mediaController.addEventListener('supportedkeyschange', this.onSupportedKeysChange);
|
||||
mediaController.addEventListener('metadatachange', this.onMetadataChange);
|
||||
mediaController.addEventListener('deactivated', this.onDeactivated);
|
||||
}
|
||||
|
||||
updatePipEligibility(browser, isEligible) {
|
||||
this.pipEligibilityMap.set(browser.browserId, isEligible);
|
||||
}
|
||||
|
||||
_onDeactivated(event) {
|
||||
this.deinitMediaController(event.target, true, event.target.id === this._currentMediaController.id, true);
|
||||
this.switchController();
|
||||
}
|
||||
|
||||
_onPlaybackstateChange() {
|
||||
if (this._currentMediaController?.isPlaying) {
|
||||
this.mediaControlBar.classList.add('playing');
|
||||
} else {
|
||||
this.switchController();
|
||||
this.mediaControlBar.classList.remove('playing');
|
||||
}
|
||||
}
|
||||
|
||||
_onSupportedKeysChange(event) {
|
||||
if (event.target.id !== this._currentMediaController?.id) return;
|
||||
for (const key of this.supportedKeys) {
|
||||
const button = this.mediaControlBar.querySelector(`#zen-media-${key}-button`);
|
||||
button.disabled = !event.target.supportedKeys.includes(key);
|
||||
}
|
||||
}
|
||||
|
||||
_onPositionstateChange(event) {
|
||||
if (event.target.id !== this._currentMediaController?.id) {
|
||||
const mediaController = this.mediaControllersMap.get(event.target.id);
|
||||
this.mediaControllersMap.set(event.target.id, {
|
||||
...mediaController,
|
||||
position: event.position,
|
||||
duration: event.duration,
|
||||
lastUpdated: Date.now(),
|
||||
});
|
||||
}
|
||||
|
||||
this._currentPosition = event.position;
|
||||
this._currentDuration = event.duration;
|
||||
this.updateMediaPosition();
|
||||
}
|
||||
|
||||
switchController(force = false) {
|
||||
let timeout = 3000;
|
||||
|
||||
if (this._controllerSwitchTimeout) {
|
||||
clearTimeout(this._controllerSwitchTimeout);
|
||||
this._controllerSwitchTimeout = null;
|
||||
}
|
||||
|
||||
if (this.mediaControllersMap.size === 1) timeout = 0;
|
||||
this._controllerSwitchTimeout = setTimeout(() => {
|
||||
if (!this._currentMediaController?.isPlaying || force) {
|
||||
const nextController = Array.from(this.mediaControllersMap.values())
|
||||
.filter(
|
||||
(ctrl) =>
|
||||
ctrl.controller.isPlaying &&
|
||||
gBrowser.selectedBrowser.browserId !== ctrl.browser.browserId &&
|
||||
ctrl.controller.id !== this._currentMediaController?.id
|
||||
)
|
||||
.sort((a, b) => b.lastUpdated - a.lastUpdated)
|
||||
.shift();
|
||||
|
||||
if (nextController) {
|
||||
this.deinitMediaController(this._currentMediaController, false, true).then(() => {
|
||||
this.setupMediaController(nextController.controller, nextController.browser);
|
||||
const elapsedTime = Math.floor((Date.now() - nextController.lastUpdated) / 1000);
|
||||
|
||||
this.setupMediaControlUI(nextController.controller.getMetadata(), {
|
||||
position: nextController.position + (nextController.controller.isPlaying ? elapsedTime : 0),
|
||||
duration: nextController.duration,
|
||||
});
|
||||
|
||||
this.showMediaControls();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
this._controllerSwitchTimeout = null;
|
||||
}, timeout);
|
||||
}
|
||||
|
||||
updateMediaPosition() {
|
||||
if (this._mediaUpdateInterval) {
|
||||
clearInterval(this._mediaUpdateInterval);
|
||||
this._mediaUpdateInterval = null;
|
||||
}
|
||||
|
||||
if (this._currentDuration >= 900_000) return this.mediaControlBar.setAttribute('media-position-hidden', 'true');
|
||||
else this.mediaControlBar.removeAttribute('media-position-hidden');
|
||||
|
||||
if (!this._currentDuration) return;
|
||||
|
||||
this.mediaCurrentTime.textContent = this.formatSecondsToTime(this._currentPosition);
|
||||
this.mediaDuration.textContent = this.formatSecondsToTime(this._currentDuration);
|
||||
this.mediaProgressBar.value = (this._currentPosition / this._currentDuration) * 100;
|
||||
|
||||
this._mediaUpdateInterval = setInterval(() => {
|
||||
if (this._currentMediaController?.isPlaying) {
|
||||
this._currentPosition += 1;
|
||||
if (this._currentPosition > this._currentDuration) {
|
||||
this._currentPosition = this._currentDuration;
|
||||
}
|
||||
this.mediaCurrentTime.textContent = this.formatSecondsToTime(this._currentPosition);
|
||||
this.mediaProgressBar.value = (this._currentPosition / this._currentDuration) * 100;
|
||||
} else {
|
||||
clearInterval(this._mediaUpdateInterval);
|
||||
this._mediaUpdateInterval = null;
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
formatSecondsToTime(seconds) {
|
||||
if (!seconds || isNaN(seconds)) return '0:00';
|
||||
|
||||
const totalSeconds = Math.max(0, Math.ceil(seconds));
|
||||
const hours = Math.floor(totalSeconds / 3600);
|
||||
const minutes = Math.floor((totalSeconds % 3600) / 60).toString();
|
||||
const secs = (totalSeconds % 60).toString();
|
||||
|
||||
if (hours > 0) {
|
||||
return `${hours}:${minutes.padStart(2, '0')}:${secs.padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
return `${minutes}:${secs.padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
_onMetadataChange(event) {
|
||||
if (event.target.id !== this._currentMediaController?.id) return;
|
||||
this.updatePipButton();
|
||||
|
||||
const metadata = event.target.getMetadata();
|
||||
this.mediaTitle.textContent = metadata.title || '';
|
||||
this.mediaArtist.textContent = metadata.artist || '';
|
||||
}
|
||||
|
||||
_onPictureInPictureModeChange(event) {
|
||||
if (event.target.id !== this._currentMediaController?.id) return;
|
||||
if (event.target.isBeingUsedInPIPModeOrFullscreen) {
|
||||
this.hideMediaControls();
|
||||
this.mediaControlBar.setAttribute('pip', '');
|
||||
} else {
|
||||
const { selectedBrowser } = gBrowser;
|
||||
if (selectedBrowser.browserId !== this._currentBrowser.browserId) {
|
||||
this.showMediaControls();
|
||||
}
|
||||
|
||||
this.mediaControlBar.removeAttribute('pip');
|
||||
}
|
||||
}
|
||||
|
||||
onMediaPlayPrev() {
|
||||
if (this._currentMediaController?.supportedKeys.includes('previoustrack')) {
|
||||
this._currentMediaController.prevTrack();
|
||||
}
|
||||
}
|
||||
|
||||
onMediaPlayNext() {
|
||||
if (this._currentMediaController?.supportedKeys.includes('nexttrack')) {
|
||||
this._currentMediaController.nextTrack();
|
||||
}
|
||||
}
|
||||
|
||||
onMediaSeekDrag(event) {
|
||||
this._currentMediaController?.pause();
|
||||
const newTime = (event.target.value / 100) * this._currentDuration;
|
||||
this.mediaCurrentTime.textContent = this.formatSecondsToTime(newTime);
|
||||
}
|
||||
|
||||
onMediaSeekComplete(event) {
|
||||
const newPosition = (event.target.value / 100) * this._currentDuration;
|
||||
if (this._currentMediaController?.supportedKeys.includes('seekto')) {
|
||||
this._currentMediaController.seekTo(newPosition);
|
||||
this._currentMediaController.play();
|
||||
}
|
||||
}
|
||||
|
||||
onMediaFocus() {
|
||||
if (!this._currentBrowser) return;
|
||||
const sidebarId = this._currentBrowser.getAttribute('zen-sidebar-id');
|
||||
if (sidebarId) gZenBrowserManagerSidebar.open(sidebarId);
|
||||
else this._currentMediaController?.focus();
|
||||
}
|
||||
|
||||
onMediaMute() {
|
||||
if (!this.mediaControlBar.hasAttribute('muted')) {
|
||||
this._currentBrowser.mute();
|
||||
this.mediaControlBar.setAttribute('muted', '');
|
||||
} else {
|
||||
this._currentBrowser.unmute();
|
||||
this.mediaControlBar.removeAttribute('muted');
|
||||
}
|
||||
}
|
||||
|
||||
onMediaToggle() {
|
||||
if (this.mediaControlBar.classList.contains('playing')) {
|
||||
this._currentMediaController?.pause();
|
||||
} else {
|
||||
this._currentMediaController?.play();
|
||||
}
|
||||
}
|
||||
|
||||
onControllerClose() {
|
||||
this._currentMediaController?.pause();
|
||||
this.switchController(true);
|
||||
this.deinitMediaController(this._currentMediaController);
|
||||
}
|
||||
|
||||
onMediaPip() {
|
||||
this._currentBrowser.browsingContext.currentWindowGlobal
|
||||
.getActor('PictureInPictureLauncher')
|
||||
.sendAsyncMessage('PictureInPicture:KeyToggle');
|
||||
}
|
||||
|
||||
updateMuteState() {
|
||||
if (!this._currentBrowser) return;
|
||||
if (this._currentBrowser._audioMuted) {
|
||||
this.mediaControlBar.setAttribute('muted', '');
|
||||
} else {
|
||||
this.mediaControlBar.removeAttribute('muted');
|
||||
}
|
||||
}
|
||||
|
||||
updatePipButton() {
|
||||
const isPipEligible = this.pipEligibilityMap.get(this._currentBrowser.browserId);
|
||||
if (isPipEligible) this.mediaControlBar.setAttribute('can-pip', '');
|
||||
else this.mediaControlBar.removeAttribute('can-pip');
|
||||
}
|
||||
}
|
||||
|
||||
window.gZenMediaController = new ZenMediaController();
|
@@ -1,428 +0,0 @@
|
||||
{
|
||||
const ZEN_RICE_API = Services.prefs.getStringPref('zen.rice.api.url', '');
|
||||
|
||||
class ZenRiceCollector {
|
||||
constructor() {}
|
||||
|
||||
clear() {
|
||||
this._userChrome = null;
|
||||
this._userContent = null;
|
||||
this._enabledMods = null;
|
||||
this._preferences = null;
|
||||
this._workspaceThemes = null;
|
||||
}
|
||||
|
||||
async gatherAll({
|
||||
userUserChrome = true,
|
||||
userContent = true,
|
||||
enabledMods = true,
|
||||
preferences = true,
|
||||
modPrefs = true,
|
||||
workspaceThemes = true,
|
||||
} = {}) {
|
||||
this.clear();
|
||||
// Get the mods first, as they may be needed for the preferences
|
||||
if (enabledMods) {
|
||||
await this.gatherEnabledMods();
|
||||
}
|
||||
await Promise.all([
|
||||
userUserChrome && this.gatherUserChrome(),
|
||||
userContent && this.gatherUserContent(),
|
||||
preferences && this.gatherPreferences({ modPrefs }),
|
||||
workspaceThemes && this.gatherWorkspaceThemes(),
|
||||
]);
|
||||
}
|
||||
|
||||
get profileDir() {
|
||||
return PathUtils.profileDir;
|
||||
}
|
||||
|
||||
async gatherUserChrome() {
|
||||
try {
|
||||
const path = PathUtils.join(this.profileDir, 'chrome', 'userChrome.css');
|
||||
this._userChrome = await IOUtils.readUTF8(path);
|
||||
} catch (e) {
|
||||
console.warn('[ZenRiceCollector]: Error reading userChrome.css: ', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async gatherUserContent() {
|
||||
try {
|
||||
const path = PathUtils.join(this.profileDir, 'chrome', 'userContent.css');
|
||||
this._userContent = await IOUtils.readUTF8(path);
|
||||
} catch (e) {
|
||||
console.warn('[ZenRiceCollector]: Error reading userContent.css: ', e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async gatherEnabledMods() {
|
||||
const activeThemes = await gZenThemesImporter.getEnabledThemes();
|
||||
if (activeThemes.length === 0) {
|
||||
return;
|
||||
}
|
||||
this._enabledMods = activeThemes;
|
||||
}
|
||||
|
||||
_getThemePrefValue(theme, pref) {
|
||||
if (pref.type === 'checkbox') {
|
||||
return Services.prefs.getBoolPref(pref.property);
|
||||
}
|
||||
return Services.prefs.getStringPref(pref.property);
|
||||
}
|
||||
|
||||
async gatherPreferences({ modPrefs = true } = {}) {
|
||||
this._preferences = {};
|
||||
if (modPrefs && this._enabledMods) {
|
||||
for (const theme of this._enabledMods) {
|
||||
const prefs = await ZenThemesCommon.getThemePreferences(theme);
|
||||
for (const pref of prefs) {
|
||||
this._preferences[pref.property] = this._getThemePrefValue(theme, pref);
|
||||
}
|
||||
}
|
||||
}
|
||||
const boolPrefsToCollect = [
|
||||
'zen.view.use-single-toolbar',
|
||||
'zen.view.sidebar-expanded',
|
||||
'zen.tabs.vertical.right-side',
|
||||
'zen.view.experimental-no-window-controls',
|
||||
'zen.view.hide-window-controls',
|
||||
...(gZenOperatingSystemCommonUtils.currentOperatingSystem === 'windows' ? ['widget.windows.mica'] : []),
|
||||
...(gZenOperatingSystemCommonUtils.currentOperatingSystem === 'macos'
|
||||
? ['widget.macos.titlebar-blend-mode.behind-window']
|
||||
: []),
|
||||
];
|
||||
const stringPrefsToCollect = ['browser.uiCustomization.state'];
|
||||
for (const pref of boolPrefsToCollect) {
|
||||
this._preferences[pref] = Services.prefs.getBoolPref(pref);
|
||||
}
|
||||
for (const pref of stringPrefsToCollect) {
|
||||
this._preferences[pref] = Services.prefs.getStringPref(pref);
|
||||
}
|
||||
}
|
||||
|
||||
async gatherWorkspaceThemes() {
|
||||
const workspaces = (await ZenWorkspaces._workspaces()).workspaces;
|
||||
this._workspaceThemes = workspaces.map((w) => w.theme);
|
||||
}
|
||||
|
||||
async packRice(...args) {
|
||||
await this.gatherAll(...args);
|
||||
const rice = {
|
||||
userChrome: this._userChrome,
|
||||
userContent: this._userContent,
|
||||
enabledMods: this._enabledMods?.map((t) => t.id),
|
||||
preferences: this._preferences,
|
||||
workspaceThemes: this._workspaceThemes,
|
||||
};
|
||||
return rice;
|
||||
}
|
||||
}
|
||||
|
||||
class ZenRiceManager {
|
||||
constructor() {
|
||||
this._collector = new ZenRiceCollector();
|
||||
}
|
||||
|
||||
init() {}
|
||||
|
||||
get conffettiWrapper() {
|
||||
if (!this.confetti) {
|
||||
Services.scriptloader.loadSubScript('chrome://browser/content/zen-vendor/tsparticles.confetti.bundle.min.js', this);
|
||||
}
|
||||
return this.confetti;
|
||||
}
|
||||
|
||||
async packRice() {
|
||||
return await this._collector.packRice();
|
||||
}
|
||||
|
||||
get shareDialog() {
|
||||
if (this._shareDialog) {
|
||||
return this._shareDialog;
|
||||
}
|
||||
this._shareDialog = window.MozXULElement.parseXULToFragment(`
|
||||
<vbox id="zen-rice-share-dialog-overlay" hidden="true">
|
||||
<vbox id="zen-rice-share-dialog-notice">
|
||||
<h1 data-l10n-id="zen-rice-share-notice" />
|
||||
<p data-l10n-id="zen-rice-share-notice-description" />
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<html:a href="https://docs.zen-browser.app/guides/" target="_blank" data-l10n-id="zen-learn-more-text" onclick="gZenThemePicker.riceManager.openLink(event)" />
|
||||
<button onclick="gZenThemePicker.riceManager.acceptNotice()" class="footer-button" data-l10n-id="zen-rice-share-accept" slot="primary" default="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-dialog" hidden="true">
|
||||
<html:img src="chrome://browser/content/zen-images/brand-header.svg" class="zen-rice-share-header" />
|
||||
<hbox class="zen-rice-share-content">
|
||||
<vbox id="zen-rice-share-first-form">
|
||||
<html:input type="text" data-l10n-id="zen-rice-share-name" id="zen-rice-share-name" oninput="gZenThemePicker.riceManager.validateShareDialog()" />
|
||||
<hbox class="zen-rice-share-author">
|
||||
<label data-l10n-id="zen-rice-share-author" />
|
||||
<html:input type="text" data-l10n-id="zen-rice-share-author-input" id="zen-rice-share-author" oninput="gZenThemePicker.riceManager.validateShareDialog();" />
|
||||
</hbox>
|
||||
<vbox zen-collapsed="true" id="zen-rice-share-options" onclick="gZenThemePicker.riceManager.toggleOptions(event)">
|
||||
<hbox class="options-header">
|
||||
<label data-l10n-id="zen-rice-share-include" />
|
||||
<image></image>
|
||||
</hbox>
|
||||
<checkbox data-l10n-id="zen-rice-share-include-userchrome" id="zen-rice-share-include-userchrome" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-usercontent" id="zen-rice-share-include-usercontent" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-mods" id="zen-rice-share-include-mods" />
|
||||
<vbox class="indent">
|
||||
<checkbox data-l10n-id="zen-rice-share-include-mod-prefs" id="zen-rice-share-include-mod-prefs" />
|
||||
</vbox>
|
||||
<checkbox data-l10n-id="zen-rice-share-include-preferences" id="zen-rice-share-include-preferences" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-workspace-themes" id="zen-rice-share-include-workspace-themes" />
|
||||
</vbox>
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<button onclick="gZenThemePicker.riceManager.cancel()" class="footer-button" data-l10n-id="zen-general-cancel" />
|
||||
<button onclick="gZenThemePicker.riceManager.submit()" class="footer-button" data-l10n-id="zen-rice-share-save" default="true" slot="primary" id="zen-rice-share-save" disabled="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-second-form" hidden="true">
|
||||
<hbox></hbox>
|
||||
<vbox id="zen-rice-share-error" hidden="true">
|
||||
<label data-l10n-id="zen-rice-share-error" />
|
||||
<button onclick="gZenThemePicker.riceManager.resetShareDialog()" data-l10n-id="zen-close-label" class="footer-button" />
|
||||
</vbox>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-success" hidden="true">
|
||||
<h1 data-l10n-id="zen-rice-share-success" />
|
||||
<p data-l10n-id="zen-rice-share-succes-details" />
|
||||
<label data-l10n-id="zen-rice-share-success-link" />
|
||||
<html:input type="text" readonly="true" id="zen-rice-share-success-link" onclick="this.select()" />
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<button onclick="gZenThemePicker.riceManager.resetShareDialog()" data-l10n-id="zen-close-label" class="footer-button" slot="primary" default="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
`);
|
||||
document.getElementById('zen-main-app-wrapper').appendChild(this._shareDialog);
|
||||
this._shareDialog = document.getElementById('zen-rice-share-dialog-overlay');
|
||||
return this._shareDialog;
|
||||
}
|
||||
|
||||
get hasAcceptedNotice() {
|
||||
return Services.prefs.getBoolPref('zen.rice.share.notice.accepted', false);
|
||||
}
|
||||
|
||||
set hasAcceptedNotice(value) {
|
||||
Services.prefs.setBoolPref('zen.rice.share.notice.accepted', value);
|
||||
}
|
||||
|
||||
openLink(event) {
|
||||
event.stopPropagation();
|
||||
this.cancel();
|
||||
gZenUIManager.openAndChangeToTab('https://docs.zen-browser.app/guides/');
|
||||
}
|
||||
|
||||
acceptNotice() {
|
||||
this.hasAcceptedNotice = true;
|
||||
const notice = document.getElementById('zen-rice-share-dialog-notice');
|
||||
notice.setAttribute('hidden', 'true');
|
||||
this.openShareDialog();
|
||||
}
|
||||
|
||||
toggleOptions(event) {
|
||||
if (event.originalTarget.closest('.options-header')) {
|
||||
const options = document.getElementById('zen-rice-share-options');
|
||||
options.setAttribute('zen-collapsed', options.getAttribute('zen-collapsed') === 'true' ? 'false' : 'true');
|
||||
}
|
||||
this.validateShareDialog();
|
||||
}
|
||||
|
||||
openShareDialog() {
|
||||
window.docShell.treeOwner.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIAppWindow).rollupAllPopups();
|
||||
const dialog = this.shareDialog;
|
||||
dialog.removeAttribute('hidden');
|
||||
|
||||
if (!this.hasAcceptedNotice) {
|
||||
const notice = document.getElementById('zen-rice-share-dialog-notice');
|
||||
notice.removeAttribute('hidden');
|
||||
return;
|
||||
}
|
||||
|
||||
document.getElementById('zen-rice-share-dialog').removeAttribute('hidden');
|
||||
document.getElementById('zen-rice-share-dialog-notice').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-name').focus();
|
||||
|
||||
// Initialize the dialog with the current values
|
||||
this.validateShareDialog();
|
||||
}
|
||||
|
||||
resetShareDialog() {
|
||||
const dialog = this.shareDialog;
|
||||
dialog.setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-dialog').removeAttribute('animate');
|
||||
document.getElementById('zen-rice-share-name').value = '';
|
||||
document.getElementById('zen-rice-share-author').value = '';
|
||||
document.getElementById('zen-rice-share-save').disabled = true;
|
||||
document.getElementById('zen-rice-share-first-form').removeAttribute('fade-out');
|
||||
document.getElementById('zen-rice-share-second-form').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-second-form').removeAttribute('fade-out');
|
||||
document.getElementById('zen-rice-share-error').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-success').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-options').setAttribute('zen-collapsed', 'true');
|
||||
|
||||
// Remove confetti module from memory
|
||||
this.confetti = null;
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.resetShareDialog();
|
||||
}
|
||||
|
||||
getAllowedRice() {
|
||||
return {
|
||||
userChrome: document.getElementById('zen-rice-share-include-userchrome').checked,
|
||||
userContent: document.getElementById('zen-rice-share-include-usercontent').checked,
|
||||
mods: document.getElementById('zen-rice-share-include-mods').checked,
|
||||
modPrefs: document.getElementById('zen-rice-share-include-mod-prefs').checked,
|
||||
preferences: document.getElementById('zen-rice-share-include-preferences').checked,
|
||||
workspaceThemes: document.getElementById('zen-rice-share-include-workspace-themes').checked,
|
||||
};
|
||||
}
|
||||
|
||||
get userAgent() {
|
||||
return `ZenBrowser/${Services.appinfo.version} (${gZenOperatingSystemCommonUtils.currentOperatingSystem})`;
|
||||
}
|
||||
|
||||
canShareRice() {
|
||||
const allowedRice = this.getAllowedRice();
|
||||
const modsPrefs = document.getElementById('zen-rice-share-include-mod-prefs');
|
||||
// remove "share mod prefs" if mods are not included
|
||||
if (!allowedRice.mods) {
|
||||
allowedRice.modPrefs = false;
|
||||
modsPrefs.disabled = true;
|
||||
}
|
||||
modsPrefs.disabled = !allowedRice.mods;
|
||||
return Object.values(allowedRice).some((v) => v);
|
||||
}
|
||||
|
||||
validateShareDialog() {
|
||||
const saveButton = document.getElementById('zen-rice-share-save');
|
||||
const authorInput = document.getElementById('zen-rice-share-author');
|
||||
const input = document.getElementById('zen-rice-share-name');
|
||||
saveButton.disabled =
|
||||
!this.canShareRice() ||
|
||||
input.value.trim().length < 3 ||
|
||||
input.value.trim().length > 30 ||
|
||||
authorInput.value.trim().length < 3 ||
|
||||
authorInput.value.trim().length > 15;
|
||||
}
|
||||
|
||||
async submit() {
|
||||
const firstForm = document.getElementById('zen-rice-share-first-form');
|
||||
const secondForm = document.getElementById('zen-rice-share-second-form');
|
||||
firstForm.setAttribute('fade-out', 'true');
|
||||
secondForm.removeAttribute('hidden');
|
||||
await this._submit();
|
||||
}
|
||||
|
||||
async _submit() {
|
||||
const allowedRice = this.getAllowedRice();
|
||||
const rice = await this._collector.packRice(allowedRice);
|
||||
const name = document.getElementById('zen-rice-share-name').value;
|
||||
const author = document.getElementById('zen-rice-share-author').value;
|
||||
const response = await this._sendRice({ name, author, rice });
|
||||
if (response) {
|
||||
this.showSuccessDialog(response);
|
||||
}
|
||||
}
|
||||
|
||||
async _sendRice({ name, author, rice }) {
|
||||
const headers = new Headers();
|
||||
headers.append('X-Zen-Rice-Name', name);
|
||||
headers.append('X-Zen-Rice-Author', author);
|
||||
headers.append('User-Agent', this.userAgent);
|
||||
headers.append('Content-Type', 'application/json');
|
||||
headers.append('Accept', 'application/json');
|
||||
let response;
|
||||
try {
|
||||
response = await fetch(`${ZEN_RICE_API}/rices`, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: JSON.stringify(rice),
|
||||
});
|
||||
} catch (e) {
|
||||
this.showErrorMessage('An error occurred while sharing your rice. Please try again later.');
|
||||
console.error(e);
|
||||
return null;
|
||||
}
|
||||
// Here, response will never be a null object
|
||||
return await this._verifyResponse(response);
|
||||
}
|
||||
|
||||
async _verifyResponse(response) {
|
||||
const json = await response.json();
|
||||
if (!response.ok) {
|
||||
const message = json.message || 'An error occurred while sharing your rice.';
|
||||
this.showErrorMessage(message);
|
||||
console.error(json);
|
||||
return null;
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
||||
showErrorMessage(message) {
|
||||
const errorBox = document.getElementById('zen-rice-share-error');
|
||||
errorBox.removeAttribute('hidden');
|
||||
errorBox.querySelector('label').textContent = message;
|
||||
}
|
||||
|
||||
showSuccessDialog(riceInfo) {
|
||||
const { slug, token } = riceInfo;
|
||||
// 'token' is like some sort of password to edit the rice, do NOT expose it
|
||||
setTimeout(() => {
|
||||
document.getElementById('zen-rice-share-dialog').setAttribute('animate', 'true');
|
||||
const successBox = document.getElementById('zen-rice-share-success');
|
||||
document.getElementById('zen-rice-share-second-form').setAttribute('fade-out', 'true');
|
||||
successBox.removeAttribute('hidden');
|
||||
const link = document.getElementById('zen-rice-share-success-link');
|
||||
link.value = `${ZEN_RICE_API}/rices/${slug}`;
|
||||
this.showConffetti();
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
showConffetti() {
|
||||
const end = Date.now() + 2500;
|
||||
function frame() {
|
||||
this.conffettiWrapper({
|
||||
angle: 135,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
this.conffettiWrapper({
|
||||
angle: 45,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
this.conffettiWrapper({
|
||||
angle: 90,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
if (Date.now() < end) {
|
||||
requestAnimationFrame(frame.bind(this));
|
||||
}
|
||||
}
|
||||
frame.call(this);
|
||||
}
|
||||
|
||||
openRicePage({ name, id, author }) {
|
||||
console.log('Opening rice page: ', name, id, author);
|
||||
gBrowser.removeTab(gBrowser.selectedTab);
|
||||
}
|
||||
}
|
||||
|
||||
window.ZenRiceManager = ZenRiceManager;
|
||||
}
|
@@ -1,795 +0,0 @@
|
||||
class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
|
||||
_sidebarElement = null;
|
||||
_currentPanel = null;
|
||||
_lastOpenedPanel = null;
|
||||
_hasChangedConfig = true;
|
||||
_splitterElement = null;
|
||||
_hSplitterElement = null;
|
||||
_hasRegisteredPinnedClickOutside = false;
|
||||
_isDragging = false;
|
||||
contextTab = null;
|
||||
sidebar = null;
|
||||
forwardButton = null;
|
||||
backButton = null;
|
||||
progressListener = null;
|
||||
_tabBrowserSet = new WeakMap();
|
||||
tabBox;
|
||||
|
||||
DEFAULT_MOBILE_USER_AGENT = `Mozilla/5.0 (Android 12; Mobile; rv:129.0) Gecko/20100101 Firefox/${AppConstants.ZEN_FIREFOX_VERSION}`;
|
||||
MAX_SIDEBAR_PANELS = Services.prefs.getIntPref('zen.sidebar.max-webpanels');
|
||||
|
||||
init() {
|
||||
ChromeUtils.defineLazyGetter(this, 'sidebar', () => document.getElementById('zen-sidebar-web-panel'));
|
||||
ChromeUtils.defineLazyGetter(this, 'forwardButton', () => document.getElementById('zen-sidebar-web-panel-forward'));
|
||||
ChromeUtils.defineLazyGetter(this, 'backButton', () => document.getElementById('zen-sidebar-web-panel-back'));
|
||||
ChromeUtils.defineLazyGetter(this, 'tabBox', () => document.getElementById('tabbrowser-tabbox'));
|
||||
|
||||
this.onlySafeWidthAndHeight();
|
||||
|
||||
this.initProgressListener();
|
||||
this.close(); // avoid caching
|
||||
this.tabBox.prepend(this.sidebarWrapper);
|
||||
this.listenForPrefChanges();
|
||||
this.insertIntoContextMenu();
|
||||
this.addPositioningListeners();
|
||||
this.syncPinnedState();
|
||||
}
|
||||
|
||||
onlySafeWidthAndHeight() {
|
||||
const panel = this.sidebar;
|
||||
const width = panel.style.width;
|
||||
const height = panel.style.height;
|
||||
panel.setAttribute('style', '');
|
||||
panel.style.width = width;
|
||||
panel.style.height = height;
|
||||
}
|
||||
|
||||
initProgressListener() {
|
||||
this.progressListener = {
|
||||
QueryInterface: ChromeUtils.generateQI(['nsIWebProgressListener', 'nsISupportsWeakReference']),
|
||||
onLocationChange: function (aWebProgress, aRequest, aLocation, aFlags) {
|
||||
const browser = this._getCurrentBrowser();
|
||||
if (!browser) return;
|
||||
const forwardDisabled = this.forwardButton.hasAttribute('disabled');
|
||||
const backDisabled = this.backButton.hasAttribute('disabled');
|
||||
|
||||
if (browser.canGoForward === forwardDisabled) {
|
||||
if (browser.canGoForward) {
|
||||
this.forwardButton.removeAttribute('disabled');
|
||||
} else {
|
||||
this.forwardButton.setAttribute('disabled', true);
|
||||
}
|
||||
}
|
||||
if (browser.canGoBack === backDisabled) {
|
||||
if (browser.canGoBack) {
|
||||
this.backButton.removeAttribute('disabled');
|
||||
} else {
|
||||
this.backButton.setAttribute('disabled', true);
|
||||
}
|
||||
}
|
||||
}.bind(gZenBrowserManagerSidebar),
|
||||
};
|
||||
}
|
||||
|
||||
get sidebarData() {
|
||||
let services = Services.prefs.getStringPref('zen.sidebar.data');
|
||||
if (services === '') {
|
||||
return {};
|
||||
}
|
||||
return JSON.parse(services);
|
||||
}
|
||||
|
||||
get shouldCloseOnBlur() {
|
||||
return Services.prefs.getBoolPref('zen.sidebar.close-on-blur');
|
||||
}
|
||||
|
||||
listenForPrefChanges() {
|
||||
Services.prefs.addObserver('zen.sidebar.data', this.handleEvent.bind(this));
|
||||
Services.prefs.addObserver('zen.sidebar.enabled', this.handleEvent.bind(this));
|
||||
|
||||
this.handleEvent();
|
||||
}
|
||||
|
||||
addPositioningListeners() {
|
||||
this.sidebar
|
||||
.querySelectorAll('.zen-sidebar-web-panel-splitter')
|
||||
.forEach((s) => s.addEventListener('mousedown', this.handleSplitterMouseDown.bind(this)));
|
||||
this.sidebarHeader.addEventListener('mousedown', this.handleDragPanel.bind(this));
|
||||
window.addEventListener('resize', this.onWindowResize.bind(this));
|
||||
}
|
||||
|
||||
syncPinnedState() {
|
||||
const sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
const pinButton = document.getElementById('zen-sidebar-web-panel-pinned');
|
||||
|
||||
if (sidebar.hasAttribute('pinned')) {
|
||||
pinButton.setAttribute('pinned', 'true');
|
||||
} else {
|
||||
pinButton.removeAttribute('pinned');
|
||||
}
|
||||
}
|
||||
|
||||
handleSplitterMouseDown(mouseDownEvent) {
|
||||
if (this._isDragging) return;
|
||||
this._isDragging = true;
|
||||
|
||||
const isHorizontal = mouseDownEvent.target.getAttribute('orient') === 'horizontal';
|
||||
setCursor(isHorizontal ? 'ns-resize' : 'ew-resize');
|
||||
const reverse = ['left', 'top'].includes(mouseDownEvent.target.getAttribute('side'));
|
||||
const direction = isHorizontal ? 'height' : 'width';
|
||||
const axis = isHorizontal ? 'Y' : 'X';
|
||||
|
||||
const computedStyle = window.getComputedStyle(this.sidebar);
|
||||
const maxSize = parseInt(computedStyle.getPropertyValue(`max-${direction}`).match(/(\d+)px/)?.[1]) || Infinity;
|
||||
const minSize = parseInt(computedStyle.getPropertyValue(`min-${direction}`).match(/(\d+)px/)?.[1]) || 0;
|
||||
|
||||
const sidebarSizeStart = this.sidebar.getBoundingClientRect()[direction];
|
||||
|
||||
const startPos = mouseDownEvent[`screen${axis}`];
|
||||
|
||||
const toAdjust = isHorizontal ? 'top' : 'left';
|
||||
const sidebarPosStart = parseInt(this.sidebar.style[toAdjust].match(/\d+/));
|
||||
|
||||
let mouseMove = function (e) {
|
||||
let mouseMoved = e[`screen${axis}`] - startPos;
|
||||
if (reverse) {
|
||||
mouseMoved *= -1;
|
||||
}
|
||||
let newSize = sidebarSizeStart + mouseMoved;
|
||||
let currentMax = maxSize;
|
||||
const wrapperBox = this.sidebarWrapper.getBoundingClientRect();
|
||||
let maxWrapperSize = Infinity;
|
||||
if (this.isFloating) {
|
||||
maxWrapperSize = reverse ? sidebarPosStart + sidebarSizeStart : wrapperBox[direction] - sidebarPosStart;
|
||||
}
|
||||
newSize = Math.max(minSize, Math.min(currentMax, maxWrapperSize, newSize));
|
||||
|
||||
window.requestAnimationFrame(() => {
|
||||
if (reverse) {
|
||||
const actualMoved = newSize - sidebarSizeStart;
|
||||
this.sidebar.style[toAdjust] = sidebarPosStart - actualMoved + 'px';
|
||||
}
|
||||
this.sidebar.style[direction] = `${newSize}px`;
|
||||
});
|
||||
}.bind(this);
|
||||
|
||||
document.addEventListener('mousemove', mouseMove);
|
||||
document.addEventListener(
|
||||
'mouseup',
|
||||
() => {
|
||||
document.removeEventListener('mousemove', mouseMove);
|
||||
this._isDragging = false;
|
||||
setCursor('auto');
|
||||
},
|
||||
{ once: true }
|
||||
);
|
||||
}
|
||||
|
||||
handleDragPanel(mouseDownEvent) {
|
||||
if (this.sidebarHeaderButtons.find((b) => b.contains(mouseDownEvent.target))) {
|
||||
return;
|
||||
}
|
||||
this._isDragging = true;
|
||||
const startTop = this.sidebar.style.top?.match(/\d+/)?.[0] || 0;
|
||||
const startLeft = this.sidebar.style.left?.match(/\d+/)?.[0] || 0;
|
||||
|
||||
const sidebarBBox = this.sidebar.getBoundingClientRect();
|
||||
const sideBarHeight = sidebarBBox.height;
|
||||
const sideBarWidth = sidebarBBox.width;
|
||||
|
||||
const topMouseOffset = startTop - mouseDownEvent.screenY;
|
||||
const leftMouseOffset = startLeft - mouseDownEvent.screenX;
|
||||
const moveListener = (mouseMoveEvent) => {
|
||||
window.requestAnimationFrame(() => {
|
||||
let top = mouseMoveEvent.clientY + topMouseOffset;
|
||||
let left = mouseMoveEvent.clientX + leftMouseOffset;
|
||||
|
||||
const wrapperBounds = this.sidebarWrapper.getBoundingClientRect();
|
||||
top = Math.max(0, Math.min(top, wrapperBounds.height - sideBarHeight));
|
||||
left = Math.max(0, Math.min(left, wrapperBounds.width - sideBarWidth));
|
||||
|
||||
this.sidebar.style.top = top + 'px';
|
||||
this.sidebar.style.left = left + 'px';
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener('mousemove', moveListener);
|
||||
document.addEventListener(
|
||||
'mouseup',
|
||||
() => {
|
||||
document.removeEventListener('mousemove', moveListener);
|
||||
this._isDragging = false;
|
||||
},
|
||||
{ once: true }
|
||||
);
|
||||
}
|
||||
|
||||
onWindowResize() {
|
||||
if (!this.isFloating) return;
|
||||
const top = parseInt(this.sidebar.style.top?.match(/\d+/)?.[0] || 0);
|
||||
const left = parseInt(this.sidebar.style.left?.match(/\d+/)?.[0] || 0);
|
||||
const wrapperRect = this.sidebarWrapper.getBoundingClientRect();
|
||||
const sidebarRect = this.sidebar.getBoundingClientRect();
|
||||
|
||||
if (sidebarRect.height < wrapperRect.height && top + sidebarRect.height > wrapperRect.height) {
|
||||
this.sidebar.style.top = wrapperRect.height - sidebarRect.height + 'px';
|
||||
}
|
||||
if (sidebarRect.width < wrapperRect.width && left + sidebarRect.width > wrapperRect.width) {
|
||||
this.sidebar.style.left = wrapperRect.width - sidebarRect.width + 'px';
|
||||
}
|
||||
}
|
||||
|
||||
get isFloating() {
|
||||
return document.getElementById('zen-sidebar-web-panel').hasAttribute('pinned');
|
||||
}
|
||||
|
||||
handleEvent() {
|
||||
this._hasChangedConfig = true;
|
||||
this.update();
|
||||
this._hasChangedConfig = false;
|
||||
|
||||
// https://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind
|
||||
var clickOutsideHandler = this._handleClickOutside.bind(this);
|
||||
let isFloating = this.isFloating;
|
||||
if (isFloating && !this._hasRegisteredPinnedClickOutside) {
|
||||
document.addEventListener('mouseup', clickOutsideHandler);
|
||||
this._hasRegisteredPinnedClickOutside = true;
|
||||
} else if (!isFloating && this._hasRegisteredPinnedClickOutside) {
|
||||
document.removeEventListener('mouseup', clickOutsideHandler);
|
||||
this._hasRegisteredPinnedClickOutside = false;
|
||||
}
|
||||
|
||||
const button = document.getElementById('zen-sidepanel-button');
|
||||
if (!button) return;
|
||||
if (Services.prefs.getBoolPref('zen.sidebar.enabled')) {
|
||||
button.removeAttribute('hidden');
|
||||
} else {
|
||||
button.setAttribute('hidden', 'true');
|
||||
this._closeSidebarPanel();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_handleClickOutside(event) {
|
||||
if (!this.sidebar.hasAttribute('pinned') || this._isDragging || !this.shouldCloseOnBlur) {
|
||||
return;
|
||||
}
|
||||
let target = event.target;
|
||||
const closestSelector = [
|
||||
'#zen-sidebar-web-panel',
|
||||
'#zen-sidebar-panels-wrapper',
|
||||
'#zenWebPanelContextMenu',
|
||||
'#zen-sidebar-web-panel-splitter',
|
||||
'#contentAreaContextMenu',
|
||||
'#zen-sidepanel-button',
|
||||
].join(', ');
|
||||
if (target.closest(closestSelector)) {
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
}
|
||||
|
||||
toggle() {
|
||||
if (!this._currentPanel) {
|
||||
this._currentPanel = this._lastOpenedPanel;
|
||||
}
|
||||
if (document.getElementById('zen-sidebar-web-panel').hasAttribute('hidden')) {
|
||||
this.open();
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
}
|
||||
|
||||
open(id = null) {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
if (id) this._currentPanel = id;
|
||||
|
||||
sidebar.removeAttribute('hidden');
|
||||
this.update();
|
||||
}
|
||||
|
||||
update() {
|
||||
this._updateWebPanels();
|
||||
this._updateSidebarButton();
|
||||
this._updateWebPanel();
|
||||
this._updateButtons();
|
||||
}
|
||||
|
||||
_updateSidebarButton() {
|
||||
let button = document.getElementById('zen-sidepanel-button');
|
||||
if (!button) return;
|
||||
if (!document.getElementById('zen-sidebar-web-panel').hasAttribute('hidden')) {
|
||||
button.setAttribute('open', 'true');
|
||||
} else {
|
||||
button.removeAttribute('open');
|
||||
}
|
||||
}
|
||||
|
||||
_updateWebPanels() {
|
||||
if (Services.prefs.getBoolPref('zen.sidebar.enabled')) {
|
||||
this.sidebarElement.removeAttribute('hidden');
|
||||
} else {
|
||||
this.sidebarElement.setAttribute('hidden', 'true');
|
||||
this._closeSidebarPanel();
|
||||
return;
|
||||
}
|
||||
|
||||
// Don't reload content if at least one of the panel tabs was loaded
|
||||
if (this._lastOpenedPanel) {
|
||||
return;
|
||||
}
|
||||
|
||||
let data = this.sidebarData;
|
||||
if (!data.data || !data.index) {
|
||||
return;
|
||||
}
|
||||
this.sidebarElement.innerHTML = '';
|
||||
for (let site of data.index) {
|
||||
let panel = data.data[site];
|
||||
if (!panel || !panel.url) {
|
||||
continue;
|
||||
}
|
||||
let button = document.createXULElement('toolbarbutton');
|
||||
button.classList.add('zen-sidebar-panel-button', 'toolbarbutton-1', 'chromeclass-toolbar-additional');
|
||||
button.setAttribute('flex', '1');
|
||||
button.setAttribute('zen-sidebar-id', site);
|
||||
button.setAttribute('context', 'zenWebPanelContextMenu');
|
||||
this._getWebPanelIcon(panel.url, button);
|
||||
button.addEventListener('click', this._handleClick.bind(this));
|
||||
button.addEventListener('dragstart', this._handleDragStart.bind(this));
|
||||
button.addEventListener('dragover', this._handleDragOver.bind(this));
|
||||
button.addEventListener('dragenter', this._handleDragEnter.bind(this));
|
||||
button.addEventListener('dragend', this._handleDragEnd.bind(this));
|
||||
this.sidebarElement.appendChild(button);
|
||||
}
|
||||
const addButton = document.getElementById('zen-sidebar-add-panel-button');
|
||||
if (data.index.length < this.MAX_SIDEBAR_PANELS) {
|
||||
addButton.removeAttribute('hidden');
|
||||
} else {
|
||||
addButton.setAttribute('hidden', 'true');
|
||||
}
|
||||
}
|
||||
|
||||
async _openAddPanelDialog() {
|
||||
let dialogURL = 'chrome://browser/content/places/zenNewWebPanel.xhtml';
|
||||
let features = 'centerscreen,chrome,modal,resizable=no';
|
||||
let aParentWindow = Services.wm.getMostRecentWindow('navigator:browser');
|
||||
|
||||
if (aParentWindow?.gDialogBox) {
|
||||
await aParentWindow.gDialogBox.open(dialogURL, {});
|
||||
} else {
|
||||
aParentWindow.openDialog(dialogURL, '', features, {});
|
||||
}
|
||||
}
|
||||
|
||||
_setPinnedToElements() {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
sidebar.setAttribute('pinned', 'true');
|
||||
document.getElementById('zen-sidebar-web-panel-pinned').setAttribute('pinned', 'true');
|
||||
}
|
||||
|
||||
_removePinnedFromElements() {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
sidebar.removeAttribute('pinned');
|
||||
document.getElementById('zen-sidebar-web-panel-pinned').removeAttribute('pinned');
|
||||
}
|
||||
|
||||
_closeSidebarPanel() {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
sidebar.setAttribute('hidden', 'true');
|
||||
this._lastOpenedPanel = this._currentPanel;
|
||||
this._currentPanel = null;
|
||||
}
|
||||
|
||||
_handleClick(event) {
|
||||
let target = event.target;
|
||||
let panelId = target.getAttribute('zen-sidebar-id');
|
||||
if (this._currentPanel === panelId) {
|
||||
return;
|
||||
}
|
||||
this._currentPanel = panelId;
|
||||
this._updateWebPanel();
|
||||
}
|
||||
|
||||
_handleDragStart(event) {
|
||||
this.__dragingElement = event.target;
|
||||
this.__dragingIndex = Array.prototype.indexOf.call(event.target.parentNode.children, event.target);
|
||||
event.target.style.opacity = '0.7';
|
||||
|
||||
event.dataTransfer.effectAllowed = 'move';
|
||||
event.dataTransfer.setData('text/html', event.target.innerHTML);
|
||||
event.dataTransfer.setData('text/plain', event.target.id);
|
||||
}
|
||||
|
||||
_handleDragOver(event) {}
|
||||
|
||||
_handleDragEnter(event) {
|
||||
if (typeof this.__dragingElement === 'undefined') {
|
||||
return;
|
||||
}
|
||||
const target = event.target;
|
||||
const elIndex = Array.prototype.indexOf.call(target.parentNode.children, target);
|
||||
if (elIndex < this.__dragingIndex) {
|
||||
target.before(this.__dragingElement);
|
||||
this.__dragingIndex = elIndex - 1;
|
||||
}
|
||||
target.after(this.__dragingElement);
|
||||
this.__dragingIndex = elIndex + 1;
|
||||
}
|
||||
|
||||
_handleDragEnd(event) {
|
||||
event.target.style.opacity = '1';
|
||||
|
||||
let data = this.sidebarData;
|
||||
let newPos = [];
|
||||
for (let element of this.__dragingElement.parentNode.children) {
|
||||
let panelId = element.getAttribute('zen-sidebar-id');
|
||||
newPos.push(panelId);
|
||||
}
|
||||
data.index = newPos;
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(data));
|
||||
this._currentPanel = this.__dragingElement.getAttribute('zen-sidebar-id');
|
||||
this.open();
|
||||
this.__dragingElement = undefined;
|
||||
}
|
||||
|
||||
_createNewPanel(url) {
|
||||
let data = this.sidebarData;
|
||||
let newName = 'p' + new Date().getTime();
|
||||
data.index.push(newName);
|
||||
data.data[newName] = {
|
||||
url: url,
|
||||
ua: false,
|
||||
};
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(data));
|
||||
this._currentPanel = newName;
|
||||
this.open();
|
||||
}
|
||||
|
||||
_updateButtons() {
|
||||
for (let button of this.sidebarElement.querySelectorAll('.zen-sidebar-panel-button')) {
|
||||
if (button.getAttribute('zen-sidebar-id') === this._currentPanel) {
|
||||
button.setAttribute('selected', 'true');
|
||||
} else {
|
||||
button.removeAttribute('selected');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_hideAllWebPanels() {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
for (let browser of sidebar.querySelectorAll('browser[zen-sidebar-id]')) {
|
||||
browser.setAttribute('hidden', 'true');
|
||||
browser.docShellIsActive = false;
|
||||
browser.zenModeActive = false;
|
||||
}
|
||||
}
|
||||
|
||||
get introductionPanel() {
|
||||
return document.getElementById('zen-sidebar-introduction-panel');
|
||||
}
|
||||
|
||||
_updateWebPanel() {
|
||||
this._updateButtons();
|
||||
// let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
this._hideAllWebPanels();
|
||||
if (!this._currentPanel) {
|
||||
this.introductionPanel.removeAttribute('hidden');
|
||||
this.forwardButton.setAttribute('disabled', true);
|
||||
this.backButton.setAttribute('disabled', true);
|
||||
return;
|
||||
}
|
||||
this.introductionPanel.setAttribute('hidden', 'true');
|
||||
let existantWebview = this._getCurrentBrowser();
|
||||
if (existantWebview) {
|
||||
existantWebview.docShellIsActive = true;
|
||||
existantWebview.zenModeActive = true;
|
||||
existantWebview.removeAttribute('hidden');
|
||||
document.getElementById('zen-sidebar-web-panel-title').textContent = existantWebview.contentTitle;
|
||||
return;
|
||||
}
|
||||
let data = this._getWebPanelData(this._currentPanel);
|
||||
let browser = this._createWebPanelBrowser(data);
|
||||
let browserContainers = document.getElementById('zen-sidebar-web-panel-browser-containers');
|
||||
browserContainers.appendChild(browser);
|
||||
browser.addProgressListener(this.progressListener, Ci.nsIWebProgress.NOTIFY_LOCATION);
|
||||
if (data.ua) {
|
||||
browser.browsingContext.customUserAgent = this.DEFAULT_MOBILE_USER_AGENT;
|
||||
browser.reload();
|
||||
}
|
||||
browser.docShellIsActive = true;
|
||||
browser.zenModeActive = true;
|
||||
}
|
||||
|
||||
_getWebPanelData(id) {
|
||||
let data = this.sidebarData;
|
||||
let panel = data.data[id];
|
||||
if (!panel || !panel.url) {
|
||||
return {};
|
||||
}
|
||||
return {
|
||||
id: id,
|
||||
...panel,
|
||||
};
|
||||
}
|
||||
|
||||
getTabForBrowser(browser) {
|
||||
return this._tabBrowserSet.get(browser);
|
||||
}
|
||||
|
||||
setTabForBrowser(browser, tab) {
|
||||
this._tabBrowserSet.set(browser, tab);
|
||||
}
|
||||
|
||||
removeTabForBrowser(browser) {
|
||||
this._tabBrowserSet.delete(browser);
|
||||
}
|
||||
|
||||
_createWebPanelBrowser(data) {
|
||||
const titleContainer = document.getElementById('zen-sidebar-web-panel-title');
|
||||
titleContainer.textContent = 'Loading...';
|
||||
let browser = gBrowser.createBrowser({
|
||||
userContextId: data.userContextId,
|
||||
});
|
||||
const tab = this.sidebar.querySelector(`[zen-sidebar-id='${data.id}']`);
|
||||
this.setTabForBrowser(browser, tab);
|
||||
tab.linkedBrowser = browser;
|
||||
tab.permanentKey = browser.permanentKey;
|
||||
browser.setAttribute('disablefullscreen', 'true');
|
||||
browser.setAttribute('src', data.url);
|
||||
browser.setAttribute('zen-sidebar-id', data.id);
|
||||
browser.addEventListener(
|
||||
'pagetitlechanged',
|
||||
function (event) {
|
||||
let browser = event.target;
|
||||
let title = browser.contentTitle;
|
||||
if (!title) {
|
||||
return;
|
||||
}
|
||||
let id = browser.getAttribute('zen-sidebar-id');
|
||||
if (id === this._currentPanel) {
|
||||
titleContainer.textContent = title;
|
||||
}
|
||||
}.bind(this)
|
||||
);
|
||||
return browser;
|
||||
}
|
||||
|
||||
_getWebPanelIcon(url, element) {
|
||||
let { preferredURI } = Services.uriFixup.getFixupURIInfo(url);
|
||||
element.setAttribute('image', `page-icon:${preferredURI.spec}`);
|
||||
if (Services.prefs.getBoolPref('zen.sidebar.use-google-favicons')) {
|
||||
fetch(`https://s2.googleusercontent.com/s2/favicons?domain_url=${preferredURI.spec}`).then(async (response) => {
|
||||
if (response.ok) {
|
||||
let blob = await response.blob();
|
||||
let reader = new FileReader();
|
||||
reader.onload = function () {
|
||||
element.setAttribute('image', reader.result);
|
||||
};
|
||||
reader.readAsDataURL(blob);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
_getBrowserById(id) {
|
||||
let sidebar = document.getElementById('zen-sidebar-web-panel');
|
||||
return sidebar.querySelector(`browser[zen-sidebar-id="${id}"]`);
|
||||
}
|
||||
|
||||
_getCurrentBrowser() {
|
||||
return this._getBrowserById(this._currentPanel);
|
||||
}
|
||||
|
||||
reload() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.reload();
|
||||
}
|
||||
}
|
||||
|
||||
forward() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.goForward();
|
||||
}
|
||||
}
|
||||
|
||||
back() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
home() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.gotoIndex();
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
this._hideAllWebPanels();
|
||||
this._closeSidebarPanel();
|
||||
this._updateSidebarButton();
|
||||
}
|
||||
|
||||
togglePinned(elem) {
|
||||
if (this.sidebar.hasAttribute('pinned')) {
|
||||
this._removePinnedFromElements();
|
||||
} else {
|
||||
this._setPinnedToElements();
|
||||
}
|
||||
this.update();
|
||||
}
|
||||
|
||||
get sidebarElement() {
|
||||
if (!this._sidebarElement) {
|
||||
this._sidebarElement = document.getElementById('zen-sidebar-panels-sites');
|
||||
}
|
||||
return this._sidebarElement;
|
||||
}
|
||||
|
||||
get splitterElement() {
|
||||
if (!this._splitterElement) {
|
||||
this._splitterElement = document.getElementById('zen-sidebar-web-panel-splitter');
|
||||
}
|
||||
return this._splitterElement;
|
||||
}
|
||||
|
||||
get hSplitterElement() {
|
||||
if (!this._hSplitterElement) {
|
||||
this._hSplitterElement = document.getElementById('zen-sidebar-web-panel-hsplitter');
|
||||
}
|
||||
return this._hSplitterElement;
|
||||
}
|
||||
|
||||
get sidebarHeader() {
|
||||
if (!this._sidebarHeader) {
|
||||
this._sidebarHeader = document.getElementById('zen-sidebar-web-header');
|
||||
}
|
||||
return this._sidebarHeader;
|
||||
}
|
||||
|
||||
get sidebarWrapper() {
|
||||
if (!this._sideBarWrapper) {
|
||||
this._sideBarWrapper = document.getElementById('zen-sidebar-web-panel-wrapper');
|
||||
}
|
||||
return this._sideBarWrapper;
|
||||
}
|
||||
|
||||
get sidebarHeaderButtons() {
|
||||
if (!this._sidebarHeaderButtons) {
|
||||
this._sidebarHeaderButtons = [...this.sidebarHeader.querySelectorAll('.toolbarbutton-1')];
|
||||
}
|
||||
return this._sidebarHeaderButtons;
|
||||
}
|
||||
|
||||
// Context menu
|
||||
|
||||
updateContextMenu(aPopupMenu) {
|
||||
let panel =
|
||||
aPopupMenu.triggerNode && (aPopupMenu.triggerNode || aPopupMenu.triggerNode.closest('toolbarbutton[zen-sidebar-id]'));
|
||||
if (!panel) {
|
||||
return;
|
||||
}
|
||||
let id = panel.getAttribute('zen-sidebar-id');
|
||||
this.contextTab = id;
|
||||
let data = this._getWebPanelData(id);
|
||||
let browser = this._getBrowserById(id);
|
||||
let isMuted = browser && browser.audioMuted;
|
||||
let mutedContextItem = document.getElementById('context_zenToggleMuteWebPanel');
|
||||
document.l10n.setAttributes(
|
||||
mutedContextItem,
|
||||
!isMuted ? 'zen-web-side-panel-context-mute-panel' : 'zen-web-side-panel-context-unmute-panel'
|
||||
);
|
||||
if (!isMuted) {
|
||||
mutedContextItem.setAttribute('muted', 'true');
|
||||
} else {
|
||||
mutedContextItem.removeAttribute('muted');
|
||||
}
|
||||
document.l10n.setAttributes(
|
||||
document.getElementById('context_zenToogleUAWebPanel'),
|
||||
data.ua ? 'zen-web-side-panel-context-disable-ua' : 'zen-web-side-panel-context-enable-ua'
|
||||
);
|
||||
if (!browser) {
|
||||
document.getElementById('context_zenUnloadWebPanel').setAttribute('disabled', 'true');
|
||||
} else {
|
||||
document.getElementById('context_zenUnloadWebPanel').removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
createContainerTabMenu(event) {
|
||||
let window = event.target.ownerGlobal;
|
||||
let data = this.sidebarData;
|
||||
let panelData = data.data[this.contextTab];
|
||||
return window.createUserContextMenu(event, {
|
||||
isContextMenu: true,
|
||||
excludeUserContextId: panelData.userContextId,
|
||||
showDefaultTab: true,
|
||||
});
|
||||
}
|
||||
|
||||
contextChangeContainerTab(event) {
|
||||
let data = this.sidebarData;
|
||||
let userContextId = parseInt(event.target.getAttribute('data-usercontextid'));
|
||||
data.data[this.contextTab].userContextId = userContextId;
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(data));
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
if (browser) {
|
||||
browser.remove();
|
||||
// We need to re-apply a new browser so it takes the new userContextId
|
||||
this._updateWebPanel();
|
||||
}
|
||||
}
|
||||
|
||||
contextOpenNewTab() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
let data = this.sidebarData;
|
||||
let panel = data.data[this.contextTab];
|
||||
let url = browser == null ? panel.url : browser.currentURI.spec;
|
||||
gZenUIManager.openAndChangeToTab(url);
|
||||
this.close();
|
||||
}
|
||||
|
||||
contextToggleMuteAudio() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
if (browser.audioMuted) {
|
||||
browser.unmute();
|
||||
} else {
|
||||
browser.mute();
|
||||
}
|
||||
}
|
||||
|
||||
contextToggleUserAgent() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
browser.browsingContext.customUserAgent = browser.browsingContext.customUserAgent ? null : this.DEFAULT_MOBILE_USER_AGENT;
|
||||
let data = this.sidebarData;
|
||||
data.data[this.contextTab].ua = !data.data[this.contextTab].ua;
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(data));
|
||||
browser.reload();
|
||||
}
|
||||
|
||||
contextDelete() {
|
||||
let data = this.sidebarData;
|
||||
delete data.data[this.contextTab];
|
||||
data.index = data.index.filter((id) => id !== this.contextTab);
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
if (browser) {
|
||||
browser.remove();
|
||||
document.getElementById('zen-sidebar-web-panel-title').textContent = '';
|
||||
}
|
||||
this._currentPanel = null;
|
||||
this._lastOpenedPanel = null;
|
||||
this.update();
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(data));
|
||||
}
|
||||
|
||||
contextUnload() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
this.removeTabForBrowser(browser);
|
||||
browser.remove();
|
||||
document.getElementById('zen-sidebar-web-panel-title').textContent = '';
|
||||
this._closeSidebarPanel();
|
||||
this.close();
|
||||
this._lastOpenedPanel = null;
|
||||
}
|
||||
|
||||
insertIntoContextMenu() {
|
||||
const sibling = document.getElementById('context-stripOnShareLink');
|
||||
const menuitem = document.createXULElement('menuitem');
|
||||
menuitem.setAttribute('id', 'context-zenAddToWebPanel');
|
||||
menuitem.setAttribute('hidden', 'true');
|
||||
menuitem.setAttribute('oncommand', 'gZenBrowserManagerSidebar.addPanelFromContextMenu();');
|
||||
menuitem.setAttribute('data-l10n-id', 'zen-web-side-panel-context-add-to-panel');
|
||||
sibling.insertAdjacentElement('afterend', menuitem);
|
||||
}
|
||||
|
||||
addPanelFromContextMenu() {
|
||||
const url = gContextMenu.linkURL || gContextMenu.target.ownerDocument.location.href;
|
||||
this._createNewPanel(url);
|
||||
}
|
||||
}
|
||||
|
||||
window.gZenBrowserManagerSidebar = new ZenBrowserManagerSidebar();
|
@@ -1,11 +0,0 @@
|
||||
|
||||
BROWSER_CHROME_MANIFESTS += [
|
||||
"tests/browser.toml",
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.actors += [
|
||||
"actors/ZenGlanceChild.sys.mjs",
|
||||
"actors/ZenGlanceParent.sys.mjs",
|
||||
"actors/ZenThemeMarketplaceChild.sys.mjs",
|
||||
"actors/ZenThemeMarketplaceParent.sys.mjs",
|
||||
]
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
|
||||
index 7aef091c0be1cb0ea0be52268949db17032f96d9..5e9105fa671d1b1979f204fc8d3be22771998ad7 100644
|
||||
index 7747d90981aea9437bf2d9cf46ec17be0b9ad64c..656d640da0efeb59a4037bb450e0cb1f69dda0ba 100644
|
||||
--- a/browser/components/BrowserContentHandler.sys.mjs
|
||||
+++ b/browser/components/BrowserContentHandler.sys.mjs
|
||||
@@ -1278,6 +1278,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
||||
@@ -1270,6 +1270,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
||||
".avif",
|
||||
".htm",
|
||||
".html",
|
||||
|
@@ -1,19 +1,20 @@
|
||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||
index b888a753a7f23a9800fe04da51a4e6b898314ff2..a6a01cf035253b05ea7b20b434cf2002ff115d96 100644
|
||||
index b8b6d30f0b3c968a8615ca601e06e50261d0dae6..5c2b718b902aed2ef8d7a4b622ba882ee937c655 100644
|
||||
--- a/browser/components/BrowserGlue.sys.mjs
|
||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||
@@ -121,6 +121,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
@@ -106,6 +106,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
WindowsGPOParser: "resource://gre/modules/policies/WindowsGPOParser.sys.mjs",
|
||||
clearTimeout: "resource://gre/modules/Timer.sys.mjs",
|
||||
setTimeout: "resource://gre/modules/Timer.sys.mjs",
|
||||
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
||||
});
|
||||
|
||||
if (AppConstants.MOZ_UPDATER) {
|
||||
@@ -1951,6 +1952,7 @@ BrowserGlue.prototype = {
|
||||
|
||||
lazy.UrlbarPrefs.updateFirefoxSuggestScenario();
|
||||
XPCOMUtils.defineLazyServiceGetters(lazy, {
|
||||
@@ -1896,7 +1897,7 @@ BrowserGlue.prototype = {
|
||||
lazy.TabCrashHandler.init();
|
||||
|
||||
lazy.ProcessHangMonitor.init();
|
||||
-
|
||||
+ lazy.gZenUIMigration.init(this._isNewProfile, aWindow);
|
||||
// A channel for "remote troubleshooting" code...
|
||||
let channel = new lazy.WebChannel(
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/aboutlogins/content/aboutLogins.html b/browser/components/aboutlogins/content/aboutLogins.html
|
||||
index 67712c8f296ba8a916ff4c6ecf9179ad733b2df8..0bad556640afd48a6738e2955a93c4e8faa68823 100644
|
||||
index a2b9a3c3bd60b7c679fc4babf2cc085f79ba84f5..3acd8da43d31cf8e9eb25d74421f522fdbd41094 100644
|
||||
--- a/browser/components/aboutlogins/content/aboutLogins.html
|
||||
+++ b/browser/components/aboutlogins/content/aboutLogins.html
|
||||
@@ -6,7 +6,7 @@
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded349732ffc6 100644
|
||||
index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..1c5b80678fc3a4d17b0632a765b8182d88986bcc 100644
|
||||
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
@@ -90,7 +90,38 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
} else {
|
||||
window.gNavToolbox.palette.appendChild(widgetNode);
|
||||
}
|
||||
@@ -2678,7 +2677,6 @@ var CustomizableUIInternal = {
|
||||
@@ -1704,16 +1703,16 @@ var CustomizableUIInternal = {
|
||||
elem.setAttribute("skipintoolbarset", "true");
|
||||
}
|
||||
}
|
||||
-
|
||||
+ lazy.ZenCustomizableUI.init(aWindow);
|
||||
// Now register all the toolbars
|
||||
for (let area of CustomizableUI.areas) {
|
||||
let type = CustomizableUI.getAreaType(area);
|
||||
- if (type == CustomizableUI.TYPE_TOOLBAR) {
|
||||
+ if (type == CustomizableUI.TYPE_TOOLBAR && !area.startsWith("zen-")) {
|
||||
let node = document.getElementById(area);
|
||||
this.registerToolbarNode(node);
|
||||
}
|
||||
}
|
||||
-
|
||||
+ lazy.ZenCustomizableUI.registerToolbarNodes(aWindow);
|
||||
// Handle initial state of vertical tabs.
|
||||
if (isVerticalTabs) {
|
||||
// Show the vertical tabs toolbar
|
||||
@@ -1873,6 +1872,10 @@ var CustomizableUIInternal = {
|
||||
},
|
||||
|
||||
insertWidgetBefore(aNode, aNextNode, aContainer, aArea) {
|
||||
+ if (aArea === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) {
|
||||
+ aContainer = aNode.ownerDocument.getElementById("zen-sidebar-top-buttons-customization-target");
|
||||
+ aArea = "zen-sidebar-top-buttons";
|
||||
+ }
|
||||
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
|
||||
this.setLocationAttributes(aNode, aArea);
|
||||
aContainer.insertBefore(aNode, aNextNode);
|
||||
@@ -2744,7 +2747,6 @@ var CustomizableUIInternal = {
|
||||
if (!this.isWidgetRemovable(aWidgetId)) {
|
||||
return;
|
||||
}
|
||||
@@ -98,7 +129,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
let placements = gPlacements.get(oldPlacement.area);
|
||||
let position = placements.indexOf(aWidgetId);
|
||||
if (position != -1) {
|
||||
@@ -3669,7 +3667,7 @@ var CustomizableUIInternal = {
|
||||
@@ -3735,7 +3737,7 @@ var CustomizableUIInternal = {
|
||||
}
|
||||
},
|
||||
|
||||
@@ -107,7 +138,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
for (let [areaId, areaNodes] of gBuildAreas) {
|
||||
let placements = gPlacements.get(areaId);
|
||||
let isFirstChangedToolbar = true;
|
||||
@@ -3680,7 +3678,7 @@ var CustomizableUIInternal = {
|
||||
@@ -3746,7 +3748,7 @@ var CustomizableUIInternal = {
|
||||
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
|
||||
let defaultCollapsed = area.get("defaultCollapsed");
|
||||
let win = areaNode.ownerGlobal;
|
||||
@@ -116,7 +147,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
win.setToolbarVisibility(
|
||||
areaNode,
|
||||
typeof defaultCollapsed == "string"
|
||||
@@ -4857,6 +4855,7 @@ export var CustomizableUI = {
|
||||
@@ -4923,6 +4925,7 @@ export var CustomizableUI = {
|
||||
unregisterArea(aName, aDestroyPlacements) {
|
||||
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
|
||||
},
|
||||
@@ -124,7 +155,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
/**
|
||||
* Add a widget to an area.
|
||||
* If the area to which you try to add is not known to CustomizableUI,
|
||||
@@ -6840,11 +6839,11 @@ class OverflowableToolbar {
|
||||
@@ -6916,11 +6919,11 @@ class OverflowableToolbar {
|
||||
parseFloat(style.paddingLeft) -
|
||||
parseFloat(style.paddingRight) -
|
||||
toolbarChildrenWidth;
|
||||
@@ -138,7 +169,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
});
|
||||
|
||||
lazy.log.debug(
|
||||
@@ -6854,7 +6853,8 @@ class OverflowableToolbar {
|
||||
@@ -6930,7 +6933,8 @@ class OverflowableToolbar {
|
||||
// If the target has min-width: 0, their children might actually overflow
|
||||
// it, so check for both cases explicitly.
|
||||
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
|
||||
@@ -148,7 +179,7 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
||||
}
|
||||
|
||||
@@ -6948,7 +6948,7 @@ class OverflowableToolbar {
|
||||
@@ -7024,7 +7028,7 @@ class OverflowableToolbar {
|
||||
}
|
||||
}
|
||||
if (!inserted) {
|
||||
@@ -157,13 +188,12 @@ index 8eab0f9181c19c68a0a2daf0f819b3ae82ed92bc..092107b377ec4f7bc9ae86c817cded34
|
||||
}
|
||||
child.removeAttribute("cui-anchorid");
|
||||
child.removeAttribute("overflowedItem");
|
||||
@@ -7110,6 +7110,9 @@ class OverflowableToolbar {
|
||||
* @param {MouseEvent} aEvent the click event.
|
||||
*/
|
||||
#onClickDefaultListButton(aEvent) {
|
||||
+ if (aEvent.view.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') {
|
||||
+ return;
|
||||
+ }
|
||||
if (this.#defaultListButton.open) {
|
||||
this.#defaultListButton.open = false;
|
||||
lazy.PanelMultiView.hidePopup(this.#defaultListPanel);
|
||||
@@ -7369,7 +7373,7 @@ class OverflowableToolbar {
|
||||
break;
|
||||
}
|
||||
case "mousedown": {
|
||||
- if (aEvent.button != 0) {
|
||||
+ if (aEvent.button != 0 || this.#toolbar.id == "zen-sidebar-top-buttons") { // Fix https://github.com/zen-browser/desktop/issues/7718
|
||||
break;
|
||||
}
|
||||
if (aEvent.target == this.#defaultListButton) {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
index 41f347130e754ad0ee3416c1a3881211c4d2f777..9f906fd5f11731025abdf55eb5e60a824f8dd81f 100644
|
||||
index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973c70543a9 100644
|
||||
--- a/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
@@ -354,7 +354,7 @@ CustomizeMode.prototype = {
|
||||
@@ -357,7 +357,7 @@ CustomizeMode.prototype = {
|
||||
this._transitioning = true;
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
@@ -11,7 +11,7 @@ index 41f347130e754ad0ee3416c1a3881211c4d2f777..9f906fd5f11731025abdf55eb5e60a82
|
||||
browser.hidden = true;
|
||||
customizer.hidden = false;
|
||||
|
||||
@@ -485,7 +485,7 @@ CustomizeMode.prototype = {
|
||||
@@ -488,7 +488,7 @@ CustomizeMode.prototype = {
|
||||
}
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
@@ -20,7 +20,7 @@ index 41f347130e754ad0ee3416c1a3881211c4d2f777..9f906fd5f11731025abdf55eb5e60a82
|
||||
customizer.hidden = true;
|
||||
browser.hidden = false;
|
||||
|
||||
@@ -2276,6 +2276,20 @@ CustomizeMode.prototype = {
|
||||
@@ -2397,6 +2397,20 @@ CustomizeMode.prototype = {
|
||||
if (makeSpaceImmediately) {
|
||||
aItem.setAttribute("notransition", "true");
|
||||
}
|
||||
|
@@ -1,22 +1,15 @@
|
||||
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
index 9879487f9ed9ddf825f5fb5c1467ddbd7fbe7a32..9e2565fafe0f5f9afa6065c9f4f522fec745db2a 100644
|
||||
index af22f766a052372a68faca139161cccbf0d768f0..199591ca0609e8902e84a87baf50acc29f84ee3a 100644
|
||||
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
@@ -237,17 +237,6 @@ export var ToolbarContextMenu = {
|
||||
// autohide item's checked state to mirror the autohide pref.
|
||||
showFullScreenViewContextMenuItems(popup);
|
||||
|
||||
- let toggleVerticalTabsItem = document.getElementById(
|
||||
- "toolbar-context-toggle-vertical-tabs"
|
||||
- );
|
||||
- document.l10n.setAttributes(
|
||||
- toggleVerticalTabsItem,
|
||||
- gBrowser.tabContainer?.verticalMode
|
||||
- ? "toolbar-context-turn-off-vertical-tabs"
|
||||
- : "toolbar-context-turn-on-vertical-tabs"
|
||||
- );
|
||||
- document.getElementById("toolbar-context-customize-sidebar").hidden =
|
||||
- !gBrowser.tabContainer?.verticalMode;
|
||||
|
||||
// View -> Toolbars menu doesn't have the moveToPanel or removeFromToolbar items.
|
||||
if (!moveToPanel || !removeFromToolbar) {
|
||||
@@ -240,8 +240,8 @@ export var ToolbarContextMenu = {
|
||||
// Show/hide sidebar and vertical tabs menu items
|
||||
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
|
||||
let showSidebarActions =
|
||||
- ["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||
- toolbarItem?.localName == "toolbarspring";
|
||||
+ (["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||
+ toolbarItem?.localName == "toolbarspring") && false;
|
||||
let toggleVerticalTabsItem = document.getElementById(
|
||||
"toolbar-context-toggle-vertical-tabs"
|
||||
);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||
index 7583473ee73538b2fa54337bfd844f03f261be49..559b593a6874296bd5894c5985f8eeb680cd3886 100644
|
||||
index 010d0813557efd6d5a3a84ea589989f6e9ff195a..e26cc1be1f56919e6ec5f2432854b284837671ac 100644
|
||||
--- a/browser/components/customizableui/content/panelUI.js
|
||||
+++ b/browser/components/customizableui/content/panelUI.js
|
||||
@@ -515,8 +515,7 @@ const PanelUI = {
|
||||
|
@@ -1,8 +1,24 @@
|
||||
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
|
||||
index 179816fa96ccf26604d52f71232296398dd9bdbd..c35814bae4eab774892af1f6df7465601d4f87ac 100644
|
||||
index 179816fa96ccf26604d52f71232296398dd9bdbd..1d77da215d89acf0697b70cf6272e700c455c088 100644
|
||||
--- a/browser/components/extensions/parent/ext-browser.js
|
||||
+++ b/browser/components/extensions/parent/ext-browser.js
|
||||
@@ -1218,6 +1218,10 @@ class TabManager extends TabManagerBase {
|
||||
@@ -308,6 +308,7 @@ class TabTracker extends TabTrackerBase {
|
||||
}
|
||||
|
||||
getId(nativeTab) {
|
||||
+ if (nativeTab.hasAttribute("zen-empty-tab")) return -1;
|
||||
let id = this._tabs.get(nativeTab);
|
||||
if (id) {
|
||||
return id;
|
||||
@@ -342,6 +343,7 @@ class TabTracker extends TabTrackerBase {
|
||||
if (nativeTab.ownerGlobal.closed) {
|
||||
throw new Error("Cannot attach ID to a tab in a closed window.");
|
||||
}
|
||||
+ if (nativeTab.hasAttribute("zen-empty-tab")) return;
|
||||
|
||||
this._tabs.set(nativeTab, id);
|
||||
if (nativeTab.linkedBrowser) {
|
||||
@@ -1218,6 +1220,10 @@ class TabManager extends TabManagerBase {
|
||||
}
|
||||
|
||||
canAccessTab(nativeTab) {
|
||||
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/browser/components/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx b/browser/components/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
index 57ed935e93198bb50555d119080552934c49e428..21e8fb35501091d448502dbd0c53ee01ce8b7bc0 100644
|
||||
--- a/browser/components/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
+++ b/browser/components/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
@@ -153,7 +153,7 @@ export class ContentSection extends React.PureComponent {
|
||||
data-l10n-args='{"num": 4}'
|
||||
/>
|
||||
</select>
|
||||
- {mayHaveSponsoredTopSites && (
|
||||
+ {false && (
|
||||
<div className="check-wrapper" role="presentation">
|
||||
<input
|
||||
id="sponsored-shortcuts"
|
@@ -1,12 +0,0 @@
|
||||
diff --git a/browser/components/newtab/data/content/abouthomecache/page.html.template b/browser/components/newtab/data/content/abouthomecache/page.html.template
|
||||
index 60898ed6b82ec298198cb9529387f4efd8561cc1..fbd93ccc7ee3619415192164a55f5fcbfd387a51 100644
|
||||
--- a/browser/components/newtab/data/content/abouthomecache/page.html.template
|
||||
+++ b/browser/components/newtab/data/content/abouthomecache/page.html.template
|
||||
@@ -32,6 +32,7 @@
|
||||
<link rel="stylesheet" href="chrome://global/skin/design-system/tokens-brand.css">
|
||||
<link rel="stylesheet" href="chrome://browser/content/contentSearchUI.css" />
|
||||
<link rel="stylesheet" href="chrome://activity-stream/content/css/activity-stream.css" />
|
||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
||||
</head>
|
||||
<!-- Cached: {{ CACHE_TIME }} -->
|
||||
<body class="activity-stream">
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/browser/components/newtab/lib/ActivityStream.sys.mjs b/browser/components/newtab/lib/ActivityStream.sys.mjs
|
||||
index f46e8aadf053c1a567642cda5f728534c81c8223..9ba13e5988a1fbcbc0502bba46fe6cfa3c647d85 100644
|
||||
--- a/browser/components/newtab/lib/ActivityStream.sys.mjs
|
||||
+++ b/browser/components/newtab/lib/ActivityStream.sys.mjs
|
||||
@@ -127,7 +127,7 @@ export const PREFS_CONFIG = new Map([
|
||||
"showSponsoredTopSites",
|
||||
{
|
||||
title: "Show sponsored top sites",
|
||||
- value: true,
|
||||
+ value: false,
|
||||
},
|
||||
],
|
||||
[
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/places/content/bookmarkProperties.xhtml b/browser/components/places/content/bookmarkProperties.xhtml
|
||||
index 047652a52e705d49f870399992873fce536c07b9..37ea726fe427a31db8fae97c99fd38c8669fa0f9 100644
|
||||
index 4aad4e4fb4139aa3d81e00eefa82e26b697df973..a2bfac11322f3679af9b51ebc7478323aa8e4adb 100644
|
||||
--- a/browser/components/places/content/bookmarkProperties.xhtml
|
||||
+++ b/browser/components/places/content/bookmarkProperties.xhtml
|
||||
@@ -37,6 +37,8 @@
|
||||
@@ -38,6 +38,8 @@
|
||||
/>
|
||||
|
||||
<html:link rel="localization" href="browser/editBookmarkOverlay.ftl"/>
|
||||
@@ -11,7 +11,7 @@ index 047652a52e705d49f870399992873fce536c07b9..37ea726fe427a31db8fae97c99fd38c8
|
||||
</linkset>
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
@@ -44,6 +46,8 @@
|
||||
@@ -45,6 +47,8 @@
|
||||
src="chrome://browser/locale/places/bookmarkProperties.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
|
||||
index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded715879063eb5 100644
|
||||
index ad138a38340e8e8510d395f46c30ec4121d731bb..9294f05633acbe560df003333b7ef7d9a12a2a11 100644
|
||||
--- a/browser/components/places/content/browserPlacesViews.js
|
||||
+++ b/browser/components/places/content/browserPlacesViews.js
|
||||
@@ -330,12 +330,23 @@ class PlacesViewBase {
|
||||
@@ -37,7 +37,7 @@ index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded7158
|
||||
} else if (PlacesUtils.containerTypes.includes(type)) {
|
||||
element = document.createXULElement("menu");
|
||||
element.setAttribute("container", "true");
|
||||
@@ -981,25 +993,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -980,25 +992,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
this._rootElt.firstChild.remove();
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded7158
|
||||
);
|
||||
++startIndex;
|
||||
if (elt.localName != "toolbarseparator") {
|
||||
@@ -1007,15 +1027,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1006,15 +1026,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
}
|
||||
}
|
||||
if (!elt) {
|
||||
@@ -101,7 +101,7 @@ index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded7158
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1025,7 +1042,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1024,7 +1041,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
|
||||
let fragment = document.createDocumentFragment();
|
||||
for (let i = startIndex; i < limit; ++i) {
|
||||
@@ -110,7 +110,7 @@ index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded7158
|
||||
}
|
||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||
if (!this._isAlive) {
|
||||
@@ -1087,6 +1104,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1086,6 +1103,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
"scheme",
|
||||
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
||||
);
|
||||
@@ -119,7 +119,7 @@ index 1bfa0af16178c9b42172bc1b1e0249d28ff8e9e6..6744a37b7183ab9e3ac5bced7ded7158
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2235,7 +2254,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||
@@ -2234,7 +2253,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
||||
);
|
||||
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
||||
|
@@ -1,62 +0,0 @@
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
var gZenNewWebPanel = {
|
||||
init: function () {
|
||||
document.addEventListener('dialogaccept', this.handleDialogAccept.bind(this));
|
||||
},
|
||||
|
||||
handleURLChange: async function (aURL) {
|
||||
try {
|
||||
let url = new URL(aURL.value);
|
||||
} catch (_) {
|
||||
// TODO: Show error message
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
addHttpIfMissing(url) {
|
||||
// List of schemes to avoid
|
||||
const avoidSchemes = ['about:', 'chrome:', 'moz-extension:', 'view-source:'];
|
||||
// Check if the URL starts with any of the avoid schemes
|
||||
for (let scheme of avoidSchemes) {
|
||||
if (url.startsWith(scheme)) {
|
||||
return url;
|
||||
}
|
||||
}
|
||||
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
||||
return 'https://' + url;
|
||||
}
|
||||
return url;
|
||||
},
|
||||
|
||||
handleDialogAccept: async function (aEvent) {
|
||||
document.commandDispatcher.focusedElement?.blur();
|
||||
let url = document.getElementById('zenNWP_url');
|
||||
let ua = document.getElementById('zenNWP_userAgent'); // checbkox
|
||||
if (!url || !ua) {
|
||||
return;
|
||||
}
|
||||
let urlValue = url.value;
|
||||
try {
|
||||
new URL(urlValue);
|
||||
} catch (_) {
|
||||
urlValue = this.addHttpIfMissing(url.value);
|
||||
}
|
||||
if (!url.value) {
|
||||
return;
|
||||
}
|
||||
let newSite = {
|
||||
url: urlValue,
|
||||
ua: ua.checked,
|
||||
};
|
||||
let currentData = JSON.parse(Services.prefs.getStringPref('zen.sidebar.data'));
|
||||
let newName = 'p' + new Date().getTime();
|
||||
currentData.index.push(newName);
|
||||
currentData.data[newName] = newSite;
|
||||
Services.prefs.setStringPref('zen.sidebar.data', JSON.stringify(currentData));
|
||||
},
|
||||
};
|
||||
|
||||
gZenNewWebPanel.init();
|
@@ -1,44 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<!DOCTYPE window>
|
||||
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
id="zenNewWebPanel"
|
||||
headerparent="zenNewWebPanelDialog"
|
||||
style="min-width: 40em;">
|
||||
<dialog id="zenNewWebPanelDialog"
|
||||
buttons="accept, cancel">
|
||||
|
||||
<linkset>
|
||||
<html:link rel="stylesheet" href="chrome://global/skin/global.css" />
|
||||
<html:link
|
||||
rel="stylesheet"
|
||||
href="chrome://global/content/commonDialog.css"
|
||||
/>
|
||||
<html:link rel="stylesheet" href="chrome://global/skin/commonDialog.css" />
|
||||
|
||||
<html:link rel="localization" href="browser/zenNewWebPanel.ftl"/>
|
||||
<script src="chrome://browser/content/zenThemeModifier.js"></script>
|
||||
</linkset>
|
||||
|
||||
<script src="chrome://browser/content/places/zenNewWebPanel.js"/>
|
||||
|
||||
<label data-l10n-id="zen-new-web-panel-url"
|
||||
control="zenNWP_url"/>
|
||||
<html:input id="zenNWP_url"
|
||||
type="url" onchange="gZenNewWebPanel.handleURLChange(this);"/>
|
||||
|
||||
<hbox flex="1" style="margin: 10px 5px;">
|
||||
<html:input id="zenNWP_userAgent"
|
||||
type="checkbox"/>
|
||||
<label data-l10n-id="zen-new-web-panel-user-agent"
|
||||
control="zenNWP_userAgent" for="zenNWP_userAgent"/>
|
||||
</hbox>
|
||||
|
||||
</dialog>
|
||||
</window>
|
@@ -1,10 +0,0 @@
|
||||
diff --git a/browser/components/places/jar.mn b/browser/components/places/jar.mn
|
||||
index 7334914664484267ccf80eeeb2917c2001a1acaf..e0636a13798d6fbf41cbf69e51e460822b00ab1a 100644
|
||||
--- a/browser/components/places/jar.mn
|
||||
+++ b/browser/components/places/jar.mn
|
||||
@@ -25,3 +25,5 @@ browser.jar:
|
||||
content/browser/places/interactionsViewer.html (metadataViewer/interactionsViewer.html)
|
||||
content/browser/places/interactionsViewer.js (metadataViewer/interactionsViewer.js)
|
||||
#endif
|
||||
+ content/browser/places/zenNewWebPanel.xhtml (content/zenNewWebPanel.xhtml)
|
||||
+ content/browser/places/zenNewWebPanel.js (content/zenNewWebPanel.js)
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.js b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
|
||||
index 2cc965b4e1b20e1ae422bfb5c90a237dcd31fcf6..cfed9dfa67c7c34cd812885a72d66dd37ba414fc 100644
|
||||
index a38c2a235971f2fe470f9bee92fc9c1a6d9b8b15..564be3dabe01621a621ca586421cdb77e0220f8b 100644
|
||||
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.js
|
||||
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
|
||||
@@ -13,6 +13,7 @@ Preferences.addAll([
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
|
||||
index 83bd09c0c3f8fd5febf1721e6b462ca90e54327b..5d0ca4265e7b57178f1fe45068449e0355ba80e0 100644
|
||||
index 6e74bbce9096179d38db422879349013f3954fa9..859f8b9640ef49411164f8e5160d4d9b8db11e54 100644
|
||||
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
|
||||
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
|
||||
@@ -26,6 +26,10 @@
|
||||
@@ -27,6 +27,10 @@
|
||||
rel="localization"
|
||||
href="browser/preferences/preferences.ftl"
|
||||
/>
|
||||
@@ -13,7 +13,7 @@ index 83bd09c0c3f8fd5febf1721e6b462ca90e54327b..5d0ca4265e7b57178f1fe45068449e03
|
||||
</linkset>
|
||||
<script src="chrome://global/content/preferencesBindings.js" />
|
||||
<script src="chrome://browser/content/preferences/dialogs/syncChooseWhatToSync.js" />
|
||||
@@ -82,6 +86,12 @@
|
||||
@@ -79,6 +83,12 @@
|
||||
preference="services.sync.engine.prefs"
|
||||
/>
|
||||
</html:div>
|
||||
|
@@ -1,8 +1,24 @@
|
||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||
index 4c2637db10b7ad5d253d9588be3610c1ec5ad330..b8445b808cf9dcb54d380ae78172db4bf8250cd4 100644
|
||||
index cdcf50ec1bc4a54c69f5baf4a6d40ab0c63a8121..87603323c2b0b9ea0c847a8a06e293a16c1252b8 100644
|
||||
--- a/browser/components/preferences/main.inc.xhtml
|
||||
+++ b/browser/components/preferences/main.inc.xhtml
|
||||
@@ -369,6 +369,7 @@
|
||||
@@ -183,6 +183,7 @@
|
||||
</groupbox>
|
||||
|
||||
<!-- Browser layout -->
|
||||
+#if 0
|
||||
<groupbox data-category="paneGeneral"
|
||||
data-subcategory="layout"
|
||||
hidden="true">
|
||||
@@ -198,6 +199,7 @@
|
||||
preference="sidebar.revamp"/>
|
||||
<description class="indent" data-l10n-id="browser-layout-show-sidebar-desc"></description>
|
||||
</groupbox>
|
||||
+#endif
|
||||
|
||||
<hbox id="languageAndAppearanceCategory"
|
||||
class="subcategory"
|
||||
@@ -411,6 +413,7 @@
|
||||
languages-customize-add.label,
|
||||
" />
|
||||
</hbox>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
index b9487ece26cfe21a32199a7e36f29b3aa3b8d700..ce02f54cab85d4da8cb306f0d5f3378c9e30df37 100644
|
||||
index 8f6f78419a0876ebe6d0967a88ef03e464dbbd23..9339085014b797033c4ee1ed2e40f2506d1e9797 100644
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -212,7 +212,7 @@ function getBundleForLocales(newLocales) {
|
||||
@@ -218,7 +218,7 @@ function getBundleForLocales(newLocales) {
|
||||
])
|
||||
);
|
||||
return new Localization(
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||
index 78b70a99b00198402c357ead363dec7e534be456..90e10509fdff67144f5cbcf42c743e617df604e0 100644
|
||||
index 6386773b287ca6d06a0abe928850c5bb465828ed..b3459a2abcac5f21a5b24189ec1dc88e24626687 100644
|
||||
--- a/browser/components/preferences/preferences.js
|
||||
+++ b/browser/components/preferences/preferences.js
|
||||
@@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||
index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6cb0b49ae 100644
|
||||
index 951af951598c3edc9bc431dd106e68d006ec4316..eb420d6c5ea346639eee531805aabbe7726c7769 100644
|
||||
--- a/browser/components/preferences/preferences.xhtml
|
||||
+++ b/browser/components/preferences/preferences.xhtml
|
||||
@@ -43,6 +43,8 @@
|
||||
@@ -11,7 +11,7 @@ index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6
|
||||
<link rel="localization" href="branding/brand.ftl"/>
|
||||
<link rel="localization" href="browser/browser.ftl"/>
|
||||
<!-- Used by fontbuilder.js -->
|
||||
@@ -97,6 +99,12 @@
|
||||
@@ -98,6 +100,12 @@
|
||||
<hbox flex="1">
|
||||
|
||||
<vbox class="navigation">
|
||||
@@ -24,7 +24,7 @@ index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6
|
||||
<!-- category list -->
|
||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||
<richlistitem id="category-general"
|
||||
@@ -110,6 +118,50 @@
|
||||
@@ -111,6 +119,50 @@
|
||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||
</richlistitem>
|
||||
|
||||
@@ -75,7 +75,7 @@ index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6
|
||||
<richlistitem id="category-home"
|
||||
class="category"
|
||||
value="paneHome"
|
||||
@@ -228,11 +280,13 @@
|
||||
@@ -229,11 +281,13 @@
|
||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
@@ -89,7 +89,7 @@ index 53bdc9c912a6cd0c787dbcf41f2a82b7169d5aa7..e47c4b36b6e469b0cc8b95bde0508dc6
|
||||
</hbox>
|
||||
</hbox>
|
||||
<vbox id="mainPrefPane">
|
||||
@@ -246,6 +300,10 @@
|
||||
@@ -247,6 +301,10 @@
|
||||
#include sync.inc.xhtml
|
||||
#include experimental.inc.xhtml
|
||||
#include moreFromMozilla.inc.xhtml
|
||||
|
@@ -919,16 +919,6 @@ var gZenCKSSettings = {
|
||||
};
|
||||
|
||||
Preferences.addAll([
|
||||
{
|
||||
id: 'zen.sidebar.enabled',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.sidebar.close-on-blur',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.view.compact.hide-toolbar',
|
||||
type: 'bool',
|
||||
@@ -949,21 +939,11 @@ Preferences.addAll([
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.splitView.change-on-hover',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.tab-unloader.timeout-minutes',
|
||||
type: 'int',
|
||||
default: 10,
|
||||
},
|
||||
{
|
||||
id: 'zen.workspaces.hide-deactivated-workspaces',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url',
|
||||
type: 'bool',
|
||||
@@ -1044,4 +1024,9 @@ Preferences.addAll([
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'media.videocontrols.picture-in-picture.enabled',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
]);
|
||||
|
@@ -134,27 +134,6 @@
|
||||
</vbox>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="zenSidePanelsCategory"
|
||||
class="subcategory"
|
||||
hidden="true"
|
||||
data-category="paneZenLooks">
|
||||
<html:h1 data-l10n-id="pane-zen-side-panels-title"/>
|
||||
</hbox>
|
||||
|
||||
<groupbox id="zenSidePanelsGroup" data-category="paneZenLooks" hidden="true" class="highlighting-group">
|
||||
<label><html:h2 data-l10n-id="zen-side-panels-header"/></label>
|
||||
<description class="description-deemphasized" data-l10n-id="zen-side-panels-description" />
|
||||
|
||||
<checkbox id="zenLooksAndFeelUseThemedToolbar"
|
||||
data-l10n-id="zen-side-panels-enabled"
|
||||
preference="zen.sidebar.enabled"/>
|
||||
<hbox class="indent">
|
||||
<checkbox id="zenLooksAndFeelSidebarCloseOnBlur"
|
||||
data-l10n-id="zen-side-panels-close-on-blur"
|
||||
preference="zen.sidebar.close-on-blur"/>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="zenGlanceCategory"
|
||||
class="subcategory"
|
||||
hidden="true"
|
||||
@@ -208,20 +187,4 @@
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="zenSplitViewCategory"
|
||||
class="subcategory"
|
||||
hidden="true"
|
||||
data-category="paneZenLooks">
|
||||
<html:h1 data-l10n-id="zen-split-view-title"/>
|
||||
</hbox>
|
||||
|
||||
<groupbox id="zenSplitViewGroup" data-category="paneZenLooks" hidden="true" class="highlighting-group">
|
||||
<label><html:h2 data-l10n-id="zen-split-view-header"/></label>
|
||||
<description class="description-deemphasized" data-l10n-id="zen-split-view-description" />
|
||||
|
||||
<checkbox id="zenLooksAndFeelSplitViewChangeOnHover"
|
||||
data-l10n-id="zen-split-view-change-on-hover"
|
||||
preference="zen.splitView.change-on-hover"/>
|
||||
</groupbox>
|
||||
|
||||
</html:template>
|
||||
|
@@ -6,7 +6,7 @@
|
||||
<html:h1 data-l10n-id="pane-workspaces-title"/>
|
||||
</hbox>
|
||||
|
||||
<hbox id="zenSidePanelsCategory"
|
||||
<hbox id="zenTabManagementCategory"
|
||||
class="subcategory"
|
||||
hidden="true"
|
||||
data-category="paneZenTabManagement">
|
||||
@@ -23,9 +23,6 @@
|
||||
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
||||
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
||||
preference="zen.workspaces.force-container-workspace"/>
|
||||
<checkbox id="zenWorkspaceHideDeactivatedWorkspaces"
|
||||
data-l10n-id="zen-settings-workspaces-hide-deactivated-workspaces"
|
||||
preference="zen.workspaces.hide-deactivated-workspaces"/>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="zenTabsUnloadCategory"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user