My annoyances with Chromium/Blink vs Firefox/Gecko, and my workarounds
-
As these are issues with Chromium/Blink, I am not hopeful that Vivaldi will fix them, so I try to work around them rather than request features, as I move from Firefox to Vivaldi. (Although I had optimistically requested the 2nd one earlier). So I am mostly just writing these for future reference for myself, and on the off-chance that my workarounds might be useful to someone.
1) CSS text-transform applies to plain text copy paste
Often, a webpage will apply CSS text-transform styling to an element, so that e.g. "This is a Header" appears as "THIS IS A HEADER". This looks fine on the page, but when I want to copy it for other use, I almost always want to copy without any styling. Browsers always copy with styling, including bold etc., which is annoying, but easy to get rid of by pasting to a plaintext only field. Chromium, however, goes further and changes the plaintext version of the copied text as well, so that if you copy it and paste as plaintext as well, what you pasted is "THIS IS A HEADER" rather than the original "This is a Header", which is what Firefox copies.
I run into this problem all the time. Say I want to save an image or video on the page. Copying the header and pasting into the filename, I get an ugly "THIS IS A HEADER.jpg" file. Obviously I much prefer the original case with "This is a Header.jpg" filename. Same if I am copying into a text I am writing or anything else.
Chromium's behavior is wrong, a bug was filed in 2010 but they clearly aren't fixing it. Even though this is against the standards, as the CSS working group decided:
The Working Group just discussed text-transform on copy/paste, and agreed to the following resolutions:
RESOLVED: text-transform doesn't apply to plain text copy paste
Firefox didn't have this problem, and correctly copied "This is a Header". As I move to Vivaldi, I am either forced to manually fix it myself every time, or right click text and select Inspect, and copy the unformatted text from page's source. Trying to correct the case programatically doesn't work well, as it fails on articles (shouldn't be capitalized), nouns (may or may not be capitalized), acronyms (should be in all uppercase) etc., I just want the original case and it isn't easy to get from Chromium. My workaround is below.
2) Double click also selects the space after the word
This may be a Windows-only issue. Firefox also had this issue, but it could be change via a setting in its about:config, layout.word_select.eat_space_to_next_word
This selecting space behavior makes a bit sense on word processors, where you often want to cut or move text including the trailing space. It makes no sense at all on read only web pages, where you can only copy. Whenever I select a word and press Ctrl+F in Chromium, it searches not the word, but word plus a space character. So I need to press Shift+Left Arrow before Ctrl+F, or press End and then backspace when I am in the search field or when I already pasted it to where I wanted it.
My convoluted workaround below.
3) Ctrl+Arrow's inconsistent text navigation behavior on delimiters
I often use Ctrl+Left/Right Arrow to shift the cursor by a word, Ctrl+Shift+Arrow to select words, Ctrl+Backspace/Delete to delete words, etc. When it comes to punctuation/delimiter characters, Firefox's behavior was consistent and I could rely on it; Vivaldi/Chromium's behavior is just inconsistent. E.g.
Text Ctrl+Shift+Left required to select on Vivaldi/Chromium Ctrl+Shift+Left required to select on Firefox asd:asd 1 times 2 times asd-asd 3 times 2 times asd'asd 1 times 2 times asd"asd 3 times 2 times Different for every character including many others I don't bother with listing; on Firefox it's always 2. I run into these issues all the time. Say I am searching for
"text" site:vivaldi.net
. When I want to change the website I am searching on: On Firefox the first Ctrl+Backspace deletesnet
, second deletesvivaldi.
and I change the website. On Vivaldi/Chromium, first Ctrl+Backspace deletesnet
, second pointlessly only deletes.
(I could have just pressed Backspace if I wanted that) and the third deletessite:vivaldi
, all of it, so then I need to retypesite:
part. Same inconsistent behavior when trying to select or delete the"text"
part. It seems that Chrome has no understanding of delimiters, some punctuation like:
or'
are considered part of the word and the selection doesn't stop there and selects the whole thing, others like-
are"
behave as if they are words by themselves rather than delimiters, so I need to press the navigation keys again.4) Images in fit-to-screen mode don't fit to screen with custom zoom setting
When you open an image in a browser, it has two display modes, fit-to-screen and original size, and you alternate between the two by clicking on the image. Except, in Chromium, fit-to-screen mode doesn't actually fit to screen if you have set a custom webpage zoom setting. So if you have set, say, 150% webpage zoom, the images are the 1.5 times the size of screen in the fit-to-screen. So Chromium's fit-to-screen mode first downsamples the image so that it would fit the screen if it were at 100% zoom, and then zooms in depending on the custom zoom setting. This makes no sense; sure, at the original size mode, the the image might be zoomed in according to the custom zoom setting like everything else, but at the fit-to-screen mode, it should fit to screen, that's the whole point of the mode; what's the point of having a mode that fits to the screen size times 1.5? Firefox had gotten this right.
5) All application data, including cache, is kept in the LocalAppData folder
Firefox obeyed the distinction between two AppData folders in Windows: All settings, history, etc., anything a user might care about, are stored in
%AppData%
(i.e.C:\Users\Username\AppData\Roaming\Mozilla\Firefox
), all the other redundant, temporary files, like cache, are stored in%LocalAppData%
(i.e.C:\Users\Username\AppData\Local\Mozilla\Firefox
). Cache can get quite large, but I never had to care about it; what I needed is in Roaming AppData, which is backed up along with everything else in that AppData folder. Vivaldi/Chromium keeps everything, including cache, in the Local AppData folder, so I need to specially add it to backup, as I don't back up rest of the junk programs keep in the Local AppData. But then I need to exclude Vivaldi/Chromium cache specially so that the backups don't get cluttered with large amounts of useless data. So I need to look at and learn what every folder does in my Vivaldi folder, at least the large ones. It was so simple with Firefox.Unfortunately, with Chromium based Electron taking over many programs, they adopt this annoying behavior as well, with everything kept in Local AppData, useful and useless together. Notably, Chromium doesn't do this on MacOS and Linux, there, the cache folders are kept in separate directories as they should be; it's only on Windows that Chromium has this behavior, even though the OS allows making the distinction.
6) Select Table Columns
As mentioned in the feature request someone made, Firefox can select and copy table columns, Chromium can't. It has been very useful on the occasions I needed this feature.
My workarounds
For 1) I initially wrote a userstyle to remove the CSS text-transform from items on websites that I often copy text from. But it is unsustainable to inspect and write a userstyle on every website, and I didn't actually want to change how it looks on the webpage, I just wanted to correctly copy it. Recently, I wrote this bookmarklet, so I just remove the styling from the webpages when I want to copy text:
javascript:(function(){let i,elements=document.querySelectorAll('body *');for(i=0;i<elements.length;i++){if(getComputedStyle(elements[i]).textTransform!=='none'){elements[i].style.textTransform="none";}}})()
For 2) I had written my workaround here; an AutoHotkey script, depending on using whether a mouse or touchpad; e.g. for mouse, it is the following:
#If WinActive("ahk_class Chrome_WidgetWin_1") ~LButton:: if (A_TimeSincePriorHotkey < 400) and (A_TimeSincePriorHotkey <> -1) MouseMove, 1, 0, 0, R return #If
It is a convoluted hack, I will be very happy if Chromium or Vivaldi fixes it and I can retire this script.
For 3) I don't have any workarounds other than learning how each punctuation behaves, and using Shift+Arrow instead of Ctrl+Shift+Arrow to prevent overselecting, even though it is much slower.
For 4), maybe I can write an extension using the tabs.setZoom API for URLs ending with an image extension; for now I am just pressing Ctrl+- until I get back to 100% zoom for images to fit screen.
For 5) I could run Chromium with flags using the command line switches
--user-data-dir
and--disk-cache-dir
to keep data and cache separate and keep data in%AppData%
. But then if Vivaldi gets opened by something other than my custom shortcut (e.g. opening a .html file from File Explorer, or another program launching a URL while Vivaldi was not already open), Vivaldi create a new user data directory in the standard location at%LocalAppData%
and launch from there. This can perhaps be fixed by editing the registry to make Vivaldi start with those switches by default, but I didn't bother. Instead of using command line switches, I could use administrator policy, i.e. UserDataDir and DiskCacheDir, but then they would override the--user-data-dir
switches every time, and I actually use a second Vivaldi at a separate user data directory that I access with a command line switch, so that's also a no go. So like mentioned above, I specifically include backup rules for Vivaldi, to includes its folder from%LocalAppData%
but to exclude some folders inside it that are unnecessary.I don't need 6) that often, so if I need it next time, I guess will just open the page on Firefox.
Overall, I am quite disappointed that Chromium/Blink has essentially won the browser war rather than Firefox/Gecko. So far, I have seen nothing positive or preferable about the underlying Chromium base compared to Firefox, only negatives. I couldn't care less about the performance; I use my web browser to browse web documents, not run web applications, and even when using web applications, I didn't find Firefox's performance to be worse. Unfortunately, Firefox shot themselves in the foot with Firefox 57/Quantum in 2017, and Firefox 56 that I have stuck with has gotten less and less usable in modern web in 2021. Even with JavaScript disabled it has many security vulnerabilities, and many websites these days require JavaScript just to view a basic document. So I had to move on, and as a long time Opera 12 user, Vivaldi is the choice I have been most happy with. I can see why they had to go with Chromium, but I hope that one day Vivaldi grows into the size where it can sustainably make changes to the engine.
-
@guigirl said:
None of those alleged hassles arises for me.
oh, come on guigirl, you are not so egocentric, as your post looks like! your answer looks like "as I don't have any problems, there are no problems"
it would be good, if you look sometimes over the Arch edge. there are user, who have other workflows than you
(and I'm too lazy to search for some problems, you have had in the past) -
For me:
-
Firefox has middle click scrolling on Linux, Vivaldi doesn't. No workarounds (no, I don't want to use addons for that :face_with_stuck-out_tongue_closed_eyes: )
-
Firefox/Gecko has superior zoom, Vivaldi doesn't. No workarounds.
-
Mozilla removed option to disable tab close button
, Vivaldi has this option. Vivaldi wins here!
-
-
@debiedowner --
For 5): You mentioned the possibility of using a Windows registry hack to apply command-line options when an app invokes Vivaldi as the default browser. I find that is pretty straightforward and works quite well. The catch is that Vivaldi Update overwrites these entries, sometimes with different default options. So I keep mine in a
.reg
file, and check Vivaldi's default values each time before installing it.REGEDIT4 ; Windows Registry file to cause Vivaldi invoked as the "Default Browser" to ; open a new window. The default setting opens a new tab in an existing window, ; which may cause Widows 10 to switch to a different virtual desktop. ; ; As administrator, run: ; regedit /s C:\Etc\Reg\Vivaldi.reg ; ; The change takes effect immediately; no reboot required. ; ; TBD: Is BD4QX7F6BF72MJRZBOQKOSKZK4 the same for all installations? Use ; regedit to look up the existing entries before entering these new settings. ; IF INSTALLED FOR ALL USERS: [HKEY_CLASSES_ROOT\VivaldiHTM\shell\open\command] @="\"C:\\Program Files\\Vivaldi\\Application\\vivaldi.exe\" --new-window --process-per-site --single-argument %1" ; Original value: ; @="\"C:\\Program Files\\Vivaldi\\Application\\vivaldi.exe\" --single-argument %1" ; IF INSTALLED PER USER: [HKEY_CLASSES_ROOT\VivaldiHTM.BD4QX7F6BF72MJRZBOQKOSKZK4\shell\open\command] @="\"C:\\Users\\gjs\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe\" --new-window --process-per-site -- \"%1\"" ; Original value: ; @="\"C:\\Users\\gjs\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe\" -- \"%1\"" [HKEY_CURRENT_USER\Software\Classes\VivaldiHTM.BD4QX7F6BF72MJRZBOQKOSKZK4\shell\open\command] @="\"C:\\Users\\gjs\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe\" --new-window --process-per-site -- \"%1\"" ; Original value: ; @="\"C:\\Users\\gjs\\AppData\\Local\\Vivaldi\\Application\\vivaldi.exe\" -- \"%1\""
-
For 4) I use a Tampermonkey script called Toggle Zoom.
https://greasyfork.org/en/scripts/16697-toggle-zoom
I've customized it a bit so it only shows fit to width or height. -
for 4 try this
https://chromewebstore.google.com/detail/image-autosizer/kbbmeeflfcjnbeelhinbnlmdjmekfhbm?hl=pl
Old, but working and I use it every day.
My settings:
https://i.imgur.com/MBuiJn4.png