Pi version of Vivaldi: User-Agent



  • I was using the new Pi version of Vivaldi on the Odroid XU4, and it was pretty fast, so I decided to try it on one of the Pi2 boards I have. It works just as well, accounting for the fact that the Pi is slower of course.

    I wanted to change the user agent, because Vivaldi is so extremely unique. I prefer not to use extensions, so I launched Vivaldi with the command line option '--user-agent="thebrowseruseragent"' syntax instead.

    That syntax didn't work for my pseudo-windows/pseudo-firefox user-agent override string. But, I blindly tried a couple other combinations, and found that just "Vivaldi/1.94" by itself would work!

    So, for some reason the developers have decided to use the command line user-agent override only if the term "Vivaldi" is in the user-agent string. Really, with the Vivaldi sub-string in the user-agent, it's not very non-unique, and so it doesn't make much sense to use such an override string.

    I don't know if this is an issue only on the ARM build, or not.

    The manifestation is that Vivaldi launches the main window, but then "hangs" while showing no content when the user-agent override string does not contain "Vivaldi" plus some version number. The word "Vivaldi" by itself doesn't work, and to work it's needed to use "Vivaldi/1.94" or similar. Any kind of UA syntax can be used ahead of the term "Vivaldi" like "Windows," or "SomeWeirdOS," or "Salamander/20100101" - but the whole string would still be too unique for my intent, so I'm living with the original string ATM.


  • Moderator

    The parameter --user-agent=… has a bug with Vivaldi on all OS.
    !!! Not all user agent strings work. Some crashes the Vivaldi UI. !!!



  • Thanks for the response. I guess I'll have to use an extension if I want to reduce my fingerprint. I'm not a big fan of extensions.

    I guess Vivaldi would like to see the original UA used because it makes the browser more of an accepted entity on the server side of the web. But, I really don't have any problems with any sites (so far) - so I think most sites are doing fine with the Vivaldi string already. Maybe when the --user-agent options is a Vivaldi option rather than chrome option, it can be more adjustable?


  • Moderator

    @ronaldlees Unfortunately extensions modifying the request b4 sending will fail because of a bug in Vivaldi with the extension API.



  • @gwen-dragon said in Pi version of Vivaldi: User-Agent:

    The parameter --user-agent=… has a bug with Vivaldi on all OS.
    !!! Not all user agent strings work. Some crashes the Vivaldi UI. !!!

    Thanks for the update. Well, since it's fairly apparent that Vivaldi is parsing the UA override string (to look for the term) - that's a good place to look for the bug!


  • Moderator

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    since it's fairly apparent that Vivaldi is parsing the UA override string

    No, Vivaldi should allow all nonsense we want to send as header. In earlier Vivaldi 1.13 we could set all wanted user agents.



  • @gwen-dragon said in Pi version of Vivaldi: User-Agent:

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    since it's fairly apparent that Vivaldi is parsing the UA override string

    No, Vivaldi should allow all nonsense we want to send as header. In earlier Vivaldi 1.13 we could set all wanted user agents.

    Now that I think about it a little more, it seems that Vivaldi may want the term+version of the original UA for usage metrics. Probably it does just a HEAD request, thus the UA is the only info transmitted for metadata. This is OK by me, since it's fairly innocuous info. But, that same info could be in another header string, so as to allow the UA to be overridden with anything the user wants.

    All just guesses.



  • So, I thought maybe Vivaldi could use an "X-" style header, but discovered that it's considered deprecated. Also - I read where some deep packet firewalls drop traffic that has any deprecated or non-standard browser headers.

    But, I think there are other headers that could be used. For instance, the HOST: header could be used for this purpose. I'm sure there are better ideas than that, but it seems that an alternative could be found such that the regular UA could be left to the user to (as you say) "put nonsense" into it.


  • Moderator

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    For instance, the HOST: header could be used for this purpose.

    No! That violates Webserver standards!
    The HTTP header Host is only for sending the requested Host!
    https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23



  • @gwen-dragon said in Pi version of Vivaldi: User-Agent:

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    For instance, the HOST: header could be used for this purpose.

    No! That violates Webserver standards!
    The HTTP header Host is only for sending the requested Host!
    https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23

    Yes, that's true. As a browser producer, you'd not want to do that. I could do that sort of thing on a very limited basis, or in an internal system, and it wouldn't make any beans difference to anybody. But, Vivaldi wants to stick to the standards. So, there's always the "cookies" header - or you could just send the data outright.


  • Moderator

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    Yes, that's true. As a browser producer, you'd not want to do that. I could do that sort of thing on a very limited basis

    Sorry. Has nothing to do with "browser producer"s.
    A old and long-standing RFCs shall not be violated.
    Thats my opinion as Webstandards fighter, programming gal ans server admin.

    Yes, you can do very experimental things with headers. But then you should not cry if all is broken with services a browser wants to use. ;)


  • Moderator

    I don't think the bug has any relation with usage metrics.

    Actually I think it's just because Vivaldi has a custom code that changes the UA on some sites where the original UA breaks the page. When you remove the Vivaldi part this code gets crazy and Vivaldi hangs.



  • @an_dz said in Pi version of Vivaldi: User-Agent:

    I don't think the bug has any relation with usage metrics.

    Actually I think it's just because Vivaldi has a custom code that changes the UA on some sites where the original UA breaks the page. When you remove the Vivaldi part this code gets crazy and Vivaldi hangs.

    Could be true. I've been an Opera user since I paid for a copy way back in history, and one of the things I liked about it was its agent switcher. The switcher solved the problem where some sites might break due to the agent string. You're saying that they've tried to automate this? Seems better to bring back the switcher, or let the --user-agent command line play the song it wants.


  • Moderator

    @ronaldlees said in Pi version of Vivaldi: User-Agent:

    @an_dz said in Pi version of Vivaldi: User-Agent:

    I don't think the bug has any relation with usage metrics.

    Actually I think it's just because Vivaldi has a custom code that changes the UA on some sites where the original UA breaks the page. When you remove the Vivaldi part this code gets crazy and Vivaldi hangs.

    You're saying that they've tried to automate this?

    Opera did the same for some sites, in Presto Opera that was the famous browser.js file, but it did not break the switcher. Vivaldi does similarly, some sites we know that break because of our Vivaldi string automatically get a different UA, either with an abbreviation of Vivaldi or without it at all.


Log in to reply
 

Looks like your connection to Vivaldi Forum was lost, please wait while we try to reconnect.