diff --git a/.vscode/settings.json b/.vscode/settings.json
index 18ad11e1..d800add1 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -15,7 +15,8 @@
},
"javascript.updateImportsOnFileMove.enabled": "always",
"files.exclude": {
- "**/node_modules": true
+ "**/node_modules": true,
+ "**/.gluon": true
},
"[html]": {
"editor.formatOnSave": false
diff --git a/gluon.json b/gluon.json
index 8490d1c4..439fc9ab 100644
--- a/gluon.json
+++ b/gluon.json
@@ -16,7 +16,7 @@
"id": "uBlock0@raymondhill.net",
"repo": "gorhill/uBlock",
"version": "1.44.4",
- "fileGlob": "uBlock0_*.firefox.xpi"
+ "fileGlob": "uBlock0_*.firefox(.signed)?.xpi"
},
"tabliss": {
"platform": "amo",
@@ -99,4 +99,4 @@
"licenseType": "MPL-2.0"
},
"updateHostname": "updates.pulsebrowser.app"
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 2467c985..4ed18ae2 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"package": "gluon package",
"ff-version": "gluon ff-version",
"licenseCheck": "gluon license-check",
- "gluon": "gluon"
+ "gluon": "gluon",
+ "reset": "gluon reset"
}
}
diff --git a/src/browser/base/content/browser-menubar-inc.patch b/src/browser/base/content/browser-menubar-inc.patch
new file mode 100644
index 00000000..f1c75636
--- /dev/null
+++ b/src/browser/base/content/browser-menubar-inc.patch
@@ -0,0 +1,14 @@
+diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc
+index f3134d5a9a01b7965eede5695def5afef4a66d6b..626fba18a7e9341731f6b71a98197695d63d7c6c 100644
+--- a/browser/base/content/browser-menubar.inc
++++ b/browser/base/content/browser-menubar.inc
+@@ -153,6 +153,9 @@
+ type="checkbox"
+ class="sync-ui-item"
+ oncommand="SidebarUI.toggle('viewTabsSidebar');" data-l10n-id="menu-view-synced-tabs-sidebar"/>
++
+
+
+
diff --git a/src/browser/base/content/browser-sidebar-js.patch b/src/browser/base/content/browser-sidebar-js.patch
index f837a538..219af6c2 100644
--- a/src/browser/base/content/browser-sidebar-js.patch
+++ b/src/browser/base/content/browser-sidebar-js.patch
@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-sidebar.js b/browser/base/content/browser-sidebar.js
-index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafcf1d66f5a 100644
+index f09e37fc42f7754f7f3687884ead25124c1b2076..e1833bbfd8a8ed7da767349f886d554f3dd795f3 100644
--- a/browser/base/content/browser-sidebar.js
+++ b/browser/base/content/browser-sidebar.js
@@ -11,6 +11,10 @@ var SidebarUI = {
@@ -37,11 +37,21 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
}),
],
[
-@@ -47,8 +54,27 @@ var SidebarUI = {
+@@ -47,8 +54,37 @@ var SidebarUI = {
elementId: "sidebar-switcher-tabs",
url: "chrome://browser/content/syncedtabs/sidebar.xhtml",
menuId: "menu_tabsSidebar",
+ iconurl: "chrome://browser/skin/tab.svg",
++ }),
++ ],
++ [
++ "viewDownloadsSidebar",
++ makeSidebar({
++ elementId: "sidebar-switcher-downloads",
++ title: "Downloads",
++ url: "about:downloads",
++ menuId: "menu_downloadsSidebar",
++ iconurl: "chrome://browser/skin/downloads/downloads.svg"
}),
],
+ [
@@ -65,7 +75,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
]));
},
-@@ -61,6 +87,8 @@ var SidebarUI = {
+@@ -61,6 +97,8 @@ var SidebarUI = {
return (this._browser = document.getElementById("sidebar"));
},
POSITION_START_PREF: "sidebar.position_start",
@@ -74,7 +84,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
DEFAULT_SIDEBAR_ID: "viewBookmarksSidebar",
// lastOpenedId is set in show() but unlike currentID it's not cleared out on hide
-@@ -78,6 +106,8 @@ var SidebarUI = {
+@@ -78,6 +116,8 @@ var SidebarUI = {
},
_splitter: null,
_icon: null,
@@ -83,7 +93,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
_reversePositionButton: null,
_switcherPanel: null,
_switcherTarget: null,
-@@ -110,10 +140,40 @@ var SidebarUI = {
+@@ -110,10 +150,40 @@ var SidebarUI = {
this._switcherTarget = document.getElementById("sidebar-switcher-target");
this._switcherArrow = document.getElementById("sidebar-switcher-arrow");
@@ -124,7 +134,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
this._inited = true;
Services.obs.addObserver(this, "intl:app-locales-changed");
-@@ -159,17 +219,26 @@ var SidebarUI = {
+@@ -159,17 +229,26 @@ var SidebarUI = {
/**
* The handler for Services.obs.addObserver.
**/
@@ -155,7 +165,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
}
}
},
-@@ -573,6 +642,10 @@ var SidebarUI = {
+@@ -573,6 +652,10 @@ var SidebarUI = {
this._box.setAttribute("sidebarcommand", commandID);
this.lastOpenedId = commandID;
@@ -166,7 +176,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
let { url, title, sourceL10nEl } = this.sidebars.get(commandID);
this.title = title;
// Keep the title element in sync with any l10n changes.
-@@ -618,6 +691,26 @@ var SidebarUI = {
+@@ -618,6 +701,26 @@ var SidebarUI = {
this.selectMenuItem("");
@@ -193,7 +203,7 @@ index f09e37fc42f7754f7f3687884ead25124c1b2076..3148bad1c6c65207064bd650eef9bafc
// Replace the document currently displayed in the sidebar with about:blank
// so that we can free memory by unloading the page. We need to explicitly
// create a new content viewer because the old one doesn't get destroyed
-@@ -641,25 +734,112 @@ var SidebarUI = {
+@@ -641,25 +744,112 @@ var SidebarUI = {
* none if the argument is an empty string.
*/
selectMenuItem(commandID) {
diff --git a/src/browser/themes/pulse/content/downloads.css b/src/browser/themes/pulse/content/downloads.css
new file mode 100644
index 00000000..fdb694b4
--- /dev/null
+++ b/src/browser/themes/pulse/content/downloads.css
@@ -0,0 +1,33 @@
+/* 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/. */
+
+/* ========================================================================== */
+/* about:downloads */
+
+#contentAreaDownloadsView {
+ background: var(--tab-selected-bgcolor, var(--toolbar-bgcolor));
+}
+
+#downloadsListBox {
+ border: none;
+ border-radius: 0;
+ background: none;
+}
+
+#downloadsListBox > richlistitem {
+ border-radius: 4px;
+ transition: background-color 0.2s ease-in-out;
+
+ margin-bottom: 8px;
+}
+
+#downloadsListBox > richlistitem:not([selected]):hover {
+ background-color: var(--in-content-box-background);
+}
+
+@media (prefers-reduced-motion) {
+ #downloadsListBox > richlistitem {
+ transition: none;
+ }
+}
diff --git a/src/browser/themes/pulse/jar.inc.mn b/src/browser/themes/pulse/jar.inc.mn
index cc536668..f1dd059d 100644
--- a/src/browser/themes/pulse/jar.inc.mn
+++ b/src/browser/themes/pulse/jar.inc.mn
@@ -7,5 +7,6 @@
# be specified once. As a result, the source file paths are relative
# to the location of the actual manifest.
-* skin/classic/browser/sidebar_tabs.css (../pulse/sidebar_tabs.css)
+* skin/classic/browser/pulse/sidebar_tabs.css (../pulse/sidebar_tabs.css)
+ skin/classic/browser/pulse/downloads.css (../pulse/content/downloads.css)
skin/classic/browser/addons/shared.css (../pulse/addons/shared.css)
diff --git a/src/browser/themes/pulse/sidebar_tabs.css b/src/browser/themes/pulse/sidebar_tabs.css
index 79b5babc..0d876ff6 100644
--- a/src/browser/themes/pulse/sidebar_tabs.css
+++ b/src/browser/themes/pulse/sidebar_tabs.css
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* ========================================================================== */
-/* SIDE BAR STYLES */
+/* SIDEBAR TABS STYLES */
:root {
--sidebar-inside-padding: 8px;
diff --git a/src/browser/themes/shared/downloads/allDownloadsView-inc-css.patch b/src/browser/themes/shared/downloads/allDownloadsView-inc-css.patch
new file mode 100644
index 00000000..99364b87
--- /dev/null
+++ b/src/browser/themes/shared/downloads/allDownloadsView-inc-css.patch
@@ -0,0 +1,12 @@
+diff --git a/browser/themes/shared/downloads/allDownloadsView.inc.css b/browser/themes/shared/downloads/allDownloadsView.inc.css
+index 204e6a95a17a58789c5992983196542104f6cf84..43f7cae36b9b60d27d2442efe3f48f7cbea8bcaa 100644
+--- a/browser/themes/shared/downloads/allDownloadsView.inc.css
++++ b/browser/themes/shared/downloads/allDownloadsView.inc.css
+@@ -4,6 +4,7 @@
+
+ @import "chrome://browser/skin/downloads/progressmeter.css";
+ @import "chrome://browser/skin/downloads/download-blockedStates.css";
++@import "chrome://browser/skin/pulse/downloads.css";
+
+ /*** View and outer controls ***/
+