Skip to content

Commit

Permalink
3.1.4: new script and script updates.
Browse files Browse the repository at this point in the history
(JS) add new script: tabLoadingSpinner.
the loading spinner icon functionality has been adjusted so it now
requires this script. make sure to download it if you want the spinner.
update urlbarMods.uc.js to 1.6.1 to fix a minor issue.
update tabMods.uc.js to 1.3.2 to fix another minor issue.
(CSS) minor changes related to the above JS changes.
see the commit notes for more details.
thanks again to my sponsor KleinByte!
  • Loading branch information
aminomancer committed Feb 9, 2022
1 parent 23eb92c commit bb8d76b
Show file tree
Hide file tree
Showing 12 changed files with 144 additions and 103 deletions.
38 changes: 38 additions & 0 deletions JS/tabLoadingSpinner.uc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// ==UserScript==
// @name Tab Loading Spinner Animation
// @version 1.0
// @author aminomancer
// @homepage https://github.com/aminomancer/uc.css.js
// @description Required for duskFox's custom loading spinner animation. This isn't strictly necessary, since the spinner is implemented in CSS, but duskFox restricts the use of the spinner to conditions laid out by this script. This is done in order to allow the loading throbber icon to smoothly fade in and out without harming performance. Without this, the spinner would potentially reduce framerate and, for at least one user, would cause problems during startup. So if you don't install this script, you'll end up with Firefox's vanilla loading throbber icon rather than duskFox's spinner icon.
// @license This Source Code Form is subject to the terms of the Creative Commons Attribution-NonCommercial-ShareAlike International License, v. 4.0. If a copy of the CC BY-NC-SA 4.0 was not distributed with this file, You can obtain one at http://creativecommons.org/licenses/by-nc-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
// ==/UserScript==

(function () {
document.documentElement.setAttribute("uc-loading-spinner", "true");
function init() {
gBrowser.tabContainer.addEventListener("TabAttrModified", (e) => {
let changed = e.detail.changed;
if (!(changed && (changed.includes("busy") || changed.includes("progress")))) return;
let tab = e.target;
let throbber = tab.querySelector(".tab-throbber");
if (tab.getAttribute("busy") == "true") {
throbber.setAttribute("throbber-loaded", "true");
} else {
setTimeout(
tab.querySelector(".tab-throbber").removeAttribute("throbber-loaded"),
850
);
}
});
}
if (gBrowserInit.delayedStartupFinished) init();
else {
let delayedListener = (subject, topic) => {
if (topic == "browser-delayed-startup-finished" && subject == window) {
Services.obs.removeObserver(delayedListener, topic);
init();
}
};
Services.obs.addObserver(delayedListener, "browser-delayed-startup-finished");
}
})();
10 changes: 5 additions & 5 deletions JS/urlbarMods.uc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Urlbar Mods
// @version 1.6.0
// @version 1.6.1
// @author aminomancer
// @homepage https://github.com/aminomancer/uc.css.js
// @description Make some minor modifications to the urlbar. See the code comments below for more details.
Expand Down Expand Up @@ -566,8 +566,8 @@ class UrlbarMods {
`$1 if (result.payload.engine) item.setAttribute("engine", result.payload.engine);`
)
.replace(
/(item\.setAttribute\(\"type\", \"tabtosearch\"\);)\n } else {/,
`$1 if (result.payload.engine) item.setAttribute("engine", result.payload.engine);\n } else if (result.providerName == "TokenAliasEngines") {\n item.setAttribute("type", "tokenaliasengine");\n if (result.payload.engine) item.setAttribute("engine", result.payload.engine);\n } else {`
/(item\.setAttribute\(\"type\", \"tabtosearch\"\);)\n } else/,
`$1 if (result.payload.engine) item.setAttribute("engine", result.payload.engine);\n } else if (result.providerName == "TokenAliasEngines") {\n item.setAttribute("type", "tokenaliasengine");\n if (result.payload.engine) item.setAttribute("engine", result.payload.engine);\n } else`
)
.replace(
/(item\.setAttribute\(\"type\"\, \"remotetab\"\);)/,
Expand All @@ -580,8 +580,8 @@ class UrlbarMods {
`TabToSearch.startQuery = async function uc_startQuery` +
src3
.replace(/async startQuery/, ``)
.replace(/makeResult/, "makeTTSResult")
.replace(/makeOnboardingResult/, "makeTTSOnboardingResult")
.replace(/makeResult/g, "makeTTSResult")
.replace(/makeOnboardingResult/g, "makeTTSOnboardingResult")
);
}
let css = `.urlbarView-row[type="remotetab"] .urlbarView-type-icon{background:var(--device-icon,url("chrome://browser/skin/sync.svg")) center/contain no-repeat;}.urlbarView-row[type="remotetab"][clientType="phone"]{--device-icon:url("chrome://browser/skin/device-phone.svg");}.urlbarView-row[type="remotetab"][clientType="tablet"]{--device-icon:url("chrome://browser/skin/device-tablet.svg");}.urlbarView-row[type="remotetab"][clientType="desktop"]{--device-icon:url("chrome://browser/skin/device-desktop.svg");}.urlbarView-row[type="remotetab"][clientType="tv"]{--device-icon:url("chrome://browser/skin/device-tv.svg");}.urlbarView-row[type="remotetab"][clientType="vr"]{--device-icon:url("chrome://browser/skin/device-vr.svg");}`;
Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,6 @@ I also recommend setting the following prefs in `about:config`. There are two pr
| userChrome.panels.allow-height-flex | Boolean | false | If true, allow panels to flex down in height. Will cause stutters on weaker hardware |
| userChrome.panels.vibrant-fxa-banner | Boolean | true | Highlight the profile button in the app menu with a vibrant background |
| userChrome.tabs.all-tabs-menu.reverse-order | Boolean | true | Display the all tabs menu in reverse order (newer tabs on top, like history) |
| userChrome.tabs.new-loading-spinner-animation | Boolean | true | Replace the tab loading throbber with a spinning animation |
| userChrome.tabs.pinned-tabs.close-buttons.disabled | Boolean | true | This controls whether close buttons are shown on pinned tabs |
| userChrome.tabs.rounded-outer-corners.disabled | Boolean | false | This controls whether tabs have rounded bottom corners<br/><img src="preview/prev-tabcorners.webp" width="100%"/> |
| userChrome.tabs.tooltip.always-show-lock-icon | Boolean | false | There's an icon in the tab tooltip representing page security. It's expanded by [this script](/JS/restoreTabSoundButton.uc.js) to show many security types. But by default, the icon is hidden on fully secure web pages. Setting this pref to true shows the icon on ALL pages |
Expand Down Expand Up @@ -1058,6 +1057,14 @@ If you already use these hotkeys for something else, e.g., an extension, you can

✨ For some reason, Proton removes the checkmark shown on the selected sidebar in the sidebar switcher panel. (The one that pops up when you click the button at the top of the sidebar) This script simply restores the previous behavior of adding the [checked] attribute. On its own it won't do anything, since the CSS for adding checkmarks to the menu items has also been removed. You'll need [uc-sidebar.css](/uc-sidebar.css) and the radio icon from the [resources](/resources) folder for the actual styling, or you can just read it starting around [line 120](/uc-sidebar.css#L120) if you want to make your own styles.

#### [Tab Animation Workaround](/JS/tabAnimation.uc.js):

✨ A tiny script to clean up transitions/animations on Firefox tabs' close buttons, favicons, etc. Required for duskFox. See the file description for more details.

#### [Tab Loading Spinner Animation](/JS/tabLoadingSpinner.uc.js):

✨ Required for duskFox's custom loading spinner animation. See the file description for more details.

#### [Tab Context Menu Navigation](/JS/tabContextMenuNavigation.uc.js):

Add some new menuitems to the tab context menu for navigating tabs back/forward, reloading, or bookmarking them, without needing to open them.<details><summary>💬 <i><b>More details...</b></i></summary>
Expand Down
1 change: 0 additions & 1 deletion prefs/recommended.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
// these are just the ones I'm pretty certain 90% of users will want.
// see the prefs list at https://github.com/aminomancer/uc.css.js

user_pref("userChrome.tabs.new-loading-spinner-animation", true);
user_pref("userChrome.tabs.pinned-tabs.close-buttons.disabled", true);
user_pref("userChrome.urlbar-results.hide-help-button", true);

Expand Down
4 changes: 2 additions & 2 deletions resources/script-override/tabMods.uc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Tab Mods — tabbrowser-tab class definition mods
// @version 1.3.1
// @version 1.3.2
// @author aminomancer
// @homepage https://github.com/aminomancer/uc.css.js
// @description Restore the tab sound button and other aspects of the tab that (imo) were better before Proton.
Expand All @@ -26,7 +26,7 @@
<image class="tab-close-button close-icon" role="presentation"/>
<hbox class="tab-throbber" layer="true"/>
<hbox class="tab-icon-pending"/>
<image class="tab-icon-image" validate="never" role="presentation"/>
<html:img class="tab-icon-image" role="presentation" decoding="sync"/>
<image class="tab-sharing-icon-overlay" role="presentation"/>
<image class="tab-icon-overlay" role="presentation"/>
</stack>
Expand Down
6 changes: 1 addition & 5 deletions uc-extensions.css
Original file line number Diff line number Diff line change
Expand Up @@ -255,12 +255,8 @@ I was a beta tester and they never shut the beta off for some reason so this sti
}

.tabbrowser-tab[label$="Violentmonkey"] .tab-icon-image {
animation: none !important;
background-image: url(chrome://userchrome/content/devtools/command-console.svg) !important;
display: block !important;
content: url(chrome://userchrome/content/devtools/command-console.svg) !important;
fill: currentColor !important;
padding-inline-end: 16px !important;
box-sizing: border-box !important;
}

/* stylus, for injecting inline CSS into content windows.
Expand Down
7 changes: 7 additions & 0 deletions uc-misc.css
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ notification[value="keyword-uri-fixup"] {
:is(.tab-icon-image, .toolbarbutton-icon) {
padding-right: 16px !important;
background: url(chrome://userchrome/content/notifications/persistent-storage.svg) center/contain !important;
box-sizing: border-box !important;
}

:is(#mainPopupSet, #browser, #navigator-toolbox) textbox {
Expand Down Expand Up @@ -653,6 +654,12 @@ toolbar:not(#PersonalToolbar) .toolbarbutton-1:focus-visible > .toolbarbutton-ba
}
}

/* replace certain favicons */
/* google */
.tab-icon-image[src="data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/"] {
content: url(chrome://userchrome/content/engines/google-color.svg) !important;
}

/* allow scrollbuttons to flow onto the menupopup border */
.menupopup-arrowscrollbox[overflowing="true"][orient="vertical"] {
overflow: visible !important;
Expand Down
6 changes: 4 additions & 2 deletions uc-tabs-bar.css
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,13 @@ this sheet controls their appearance as well. */
margin: 0 !important;
}

#tabs-newtab-button {
#tabs-newtab-button,
#newPrivateTab-button {
display: none !important;
}

#new-tab-button {
#new-tab-button,
#privateTab-button {
display: -moz-box !important;
}

Expand Down

0 comments on commit bb8d76b

Please sign in to comment.