Skip to content

ClearURLs 1.24.1 is still breaking a lot of popular websites, e.g. GitHub, by adding an equal sign (=) #191

Closed

Description

@Schweinepriester

As #188 hasn't been reopen and the issue still persists with 1.24.1, opening a new one here.

Screencapture for one example, GitHub, linking to #188 (comment):

ice_video_20220404-233610.mp4
Log (though I don't think it will help much, looking at the contents)
{"log":[{"before":"https://github.com/ClearURLs/Addon/issues/188#issuecomment-1080330640","after":"https://github.com/ClearURLs/Addon/issues/188#issuecomment-1080330640","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785223},{"before":"https://github.githubassets.com/assets/light-92c7d381038e.css","after":"https://github.githubassets.com/assets/light-92c7d381038e.css","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785268},{"before":"https://github.githubassets.com/assets/dark-d4a90c367f0c.css","after":"https://github.githubassets.com/assets/dark-d4a90c367f0c.css","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785268},{"before":"https://github.githubassets.com/assets/frameworks-da9067fcd9b6.css","after":"https://github.githubassets.com/assets/frameworks-da9067fcd9b6.css","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785269},{"before":"https://github.githubassets.com/assets/behaviors-03448037f3ab.css","after":"https://github.githubassets.com/assets/behaviors-03448037f3ab.css","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785270},{"before":"https://github.githubassets.com/assets/github-bd36538ed501.css","after":"https://github.githubassets.com/assets/github-bd36538ed501.css","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785270},{"before":"https://github.githubassets.com/assets/runtime-fefe034de77d.js","after":"https://github.githubassets.com/assets/runtime-fefe034de77d.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785333},{"before":"https://github.githubassets.com/assets/environment-ffad00dbfe9d.js","after":"https://github.githubassets.com/assets/environment-ffad00dbfe9d.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785333},{"before":"https://github.githubassets.com/assets/5329-98db7da29ab9.js","after":"https://github.githubassets.com/assets/5329-98db7da29ab9.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785333},{"before":"https://github.githubassets.com/assets/2486-f67fca0c597b.js","after":"https://github.githubassets.com/assets/2486-f67fca0c597b.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785333},{"before":"https://github.githubassets.com/assets/8475-a8d2fbd0d71b.js","after":"https://github.githubassets.com/assets/8475-a8d2fbd0d71b.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/github-elements-1ff179d0df8c.js","after":"https://github.githubassets.com/assets/github-elements-1ff179d0df8c.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/element-registry-80cb80af387f.js","after":"https://github.githubassets.com/assets/element-registry-80cb80af387f.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/5724-640299416084.js","after":"https://github.githubassets.com/assets/5724-640299416084.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/5388-1dbf1debd575.js","after":"https://github.githubassets.com/assets/5388-1dbf1debd575.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/93-8fdb428884fb.js","after":"https://github.githubassets.com/assets/93-8fdb428884fb.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/8932-24f1e0ea55c2.js","after":"https://github.githubassets.com/assets/8932-24f1e0ea55c2.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/1717-85e1b724ca10.js","after":"https://github.githubassets.com/assets/1717-85e1b724ca10.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/8646-15d8dff9530f.js","after":"https://github.githubassets.com/assets/8646-15d8dff9530f.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/3682-fd5ef6e35238.js","after":"https://github.githubassets.com/assets/3682-fd5ef6e35238.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785334},{"before":"https://github.githubassets.com/assets/3932-1c09319f0f53.js","after":"https://github.githubassets.com/assets/3932-1c09319f0f53.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/3826-e99d38da90c8.js","after":"https://github.githubassets.com/assets/3826-e99d38da90c8.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/5222-cafcc8852ca7.js","after":"https://github.githubassets.com/assets/5222-cafcc8852ca7.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/behaviors-0a0f626e4b78.js","after":"https://github.githubassets.com/assets/behaviors-0a0f626e4b78.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/7749-832f2a20ce72.js","after":"https://github.githubassets.com/assets/7749-832f2a20ce72.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/notifications-global-5d60a9c84432.js","after":"https://github.githubassets.com/assets/notifications-global-5d60a9c84432.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/4978-0971b4248c4c.js","after":"https://github.githubassets.com/assets/4978-0971b4248c4c.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/90-c721876308de.js","after":"https://github.githubassets.com/assets/90-c721876308de.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/6162-cfd7943a8368.js","after":"https://github.githubassets.com/assets/6162-cfd7943a8368.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/issues-6d68efdc524a.js","after":"https://github.githubassets.com/assets/issues-6d68efdc524a.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/issue-to-discussion-conversions-26e6d73cfb84.js","after":"https://github.githubassets.com/assets/issue-to-discussion-conversions-26e6d73cfb84.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785335},{"before":"https://github.githubassets.com/assets/structured-issues-0aaad91bd782.js","after":"https://github.githubassets.com/assets/structured-issues-0aaad91bd782.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://github.githubassets.com/assets/6319-769f4d5a58c6.js","after":"https://github.githubassets.com/assets/6319-769f4d5a58c6.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://github.githubassets.com/assets/9255-f32345ee4dc8.js","after":"https://github.githubassets.com/assets/9255-f32345ee4dc8.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://github.githubassets.com/assets/5623-89132408f95d.js","after":"https://github.githubassets.com/assets/5623-89132408f95d.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://github.githubassets.com/assets/command-palette-dd47eaf9a57a.js","after":"https://github.githubassets.com/assets/command-palette-dd47eaf9a57a.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://avatars.githubusercontent.com/u/45971730?s=88&u=384113e78b849b7df4baf6b01b43151c4551979e&v=4","after":"https://avatars.githubusercontent.com/u/45971730?s=88&u=384113e78b849b7df4baf6b01b43151c4551979e&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785336},{"before":"https://avatars.githubusercontent.com/u/45971730?s=60&u=384113e78b849b7df4baf6b01b43151c4551979e&v=4","after":"https://avatars.githubusercontent.com/u/45971730?s=60&u=384113e78b849b7df4baf6b01b43151c4551979e&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://user-images.githubusercontent.com/45971730/160234619-3758df4d-c761-4fae-b097-e537b61506ef.png","after":"https://user-images.githubusercontent.com/45971730/160234619-3758df4d-c761-4fae-b097-e537b61506ef.png","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/28713602?s=88&u=e463690a7b79858a86e6ef9ed2dc56879851d782&v=4","after":"https://avatars.githubusercontent.com/u/28713602?s=88&u=e463690a7b79858a86e6ef9ed2dc56879851d782&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/28713602?s=60&u=e463690a7b79858a86e6ef9ed2dc56879851d782&v=4","after":"https://avatars.githubusercontent.com/u/28713602?s=60&u=e463690a7b79858a86e6ef9ed2dc56879851d782&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/32611672?s=88&u=37e1e9e6939b32d08cec9942bb25b05241f8bebe&v=4","after":"https://avatars.githubusercontent.com/u/32611672?s=88&u=37e1e9e6939b32d08cec9942bb25b05241f8bebe&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/32611672?s=60&u=37e1e9e6939b32d08cec9942bb25b05241f8bebe&v=4","after":"https://avatars.githubusercontent.com/u/32611672?s=60&u=37e1e9e6939b32d08cec9942bb25b05241f8bebe&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/20540694?s=88&u=2675d1e589146d1c0352ff65f5823aa9087b35f8&v=4","after":"https://avatars.githubusercontent.com/u/20540694?s=88&u=2675d1e589146d1c0352ff65f5823aa9087b35f8&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785337},{"before":"https://avatars.githubusercontent.com/u/20540694?s=60&u=2675d1e589146d1c0352ff65f5823aa9087b35f8&v=4","after":"https://avatars.githubusercontent.com/u/20540694?s=60&u=2675d1e589146d1c0352ff65f5823aa9087b35f8&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785338},{"before":"https://avatars.githubusercontent.com/u/5910531?s=88&u=3df0e1c34d2bb27d2d5db142575824fd9de75f8b&v=4","after":"https://avatars.githubusercontent.com/u/5910531?s=88&u=3df0e1c34d2bb27d2d5db142575824fd9de75f8b&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785343},{"before":"https://avatars.githubusercontent.com/u/5910531?s=60&u=3df0e1c34d2bb27d2d5db142575824fd9de75f8b&v=4","after":"https://avatars.githubusercontent.com/u/5910531?s=60&u=3df0e1c34d2bb27d2d5db142575824fd9de75f8b&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785345},{"before":"https://user-images.githubusercontent.com/5910531/160241590-f32d16ec-bd16-44ca-8367-14cdc4570230.jpg","after":"https://user-images.githubusercontent.com/5910531/160241590-f32d16ec-bd16-44ca-8367-14cdc4570230.jpg","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785346},{"before":"https://avatars.githubusercontent.com/u/1833563?s=88&u=a1c4597b9361549d99638539f32b65e43f330bfc&v=4","after":"https://avatars.githubusercontent.com/u/1833563?s=88&u=a1c4597b9361549d99638539f32b65e43f330bfc&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785347},{"before":"https://avatars.githubusercontent.com/u/1833563?s=60&u=a1c4597b9361549d99638539f32b65e43f330bfc&v=4","after":"https://avatars.githubusercontent.com/u/1833563?s=60&u=a1c4597b9361549d99638539f32b65e43f330bfc&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785349},{"before":"https://github.githubassets.com/images/spinners/octocat-spinner-64.gif","after":"https://github.githubassets.com/images/spinners/octocat-spinner-64.gif","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785355},{"before":"https://avatars.githubusercontent.com/u/1833563?s=52&v=4","after":"https://avatars.githubusercontent.com/u/1833563?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785356},{"before":"https://avatars.githubusercontent.com/u/5910531?s=52&v=4","after":"https://avatars.githubusercontent.com/u/5910531?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785356},{"before":"https://avatars.githubusercontent.com/u/20540694?s=52&v=4","after":"https://avatars.githubusercontent.com/u/20540694?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785361},{"before":"https://avatars.githubusercontent.com/u/28713602?s=52&v=4","after":"https://avatars.githubusercontent.com/u/28713602?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785361},{"before":"https://avatars.githubusercontent.com/u/32611672?s=52&v=4","after":"https://avatars.githubusercontent.com/u/32611672?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785365},{"before":"https://avatars.githubusercontent.com/u/45971730?s=52&v=4","after":"https://avatars.githubusercontent.com/u/45971730?s=52&v=4","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785365},{"before":"https://github.githubassets.com/assets/chunk-280-a794c415e82b.js","after":"https://github.githubassets.com/assets/chunk-280-a794c415e82b.js","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785428},{"before":"https://github.com/users/Schweinepriester/feature_preview/indicator_check","after":"https://github.com/users/Schweinepriester/feature_preview/indicator_check","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785510},{"before":"https://github.githubassets.com/favicons/favicon.png","after":"https://github.githubassets.com/favicons/favicon.png","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785593},{"before":"https://collector.github.com/github/collect","after":"https://collector.github.com/github/collect","rule":"Diese Hyperlink-Auditing-Anfrage wurde blockiert","timestamp":1649107785658},{"before":"https://github.com/manifest.json","after":"https://github.com/manifest.json","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785693},{"before":"https://api.github.com/_private/browser/stats","after":"https://api.github.com/_private/browser/stats","rule":"Diese Hyperlink-Auditing-Anfrage wurde blockiert","timestamp":1649107785706},{"before":"https://github.com/ClearURLs/Addon/sponsor_button","after":"https://github.com/ClearURLs/Addon/sponsor_button","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107785763},{"before":"https://github.com/ClearURLs/Addon/issue_comments/1080671825/comment_actions_menu?href=%23issuecomment-1080671825&gid=IC_kwDOBer_fM5Aab5R","after":"https://github.com/ClearURLs/Addon/issue_comments/1080671825/comment_actions_menu?href=%23issuecomment-1080671825&gid=IC_kwDOBer_fM5Aab5R","rule":"ETag-Header wurde aus dieser Anfrage entfernt","timestamp":1649107786417},{"before":"https://api.github.com/_private/browser/stats","after":"https://api.github.com/_private/browser/stats","rule":"Diese Hyperlink-Auditing-Anfrage wurde blockiert","timestamp":1649107786953}]}

Another example I can easily reproduce, though not easily show, is being in gmail, view a mail and trying to go back to the inbox view - doesn't work because the previous URL is already mangled with an = (https://mail.google.com/mail/u/0/#inbox=).

Activity

  1. silverwind commented on Apr 12, 2022

    @silverwind

    Had to disable the extension because it breaks anchor links on GitHub with this superflous = appended to URLs.

    To reproduce, open https://github.com/ClearURLs/Addon and click any anchor symbol link in the README, it will append = to the URL, breaking the anchor link (it won't scroll to the element when opening the URL).

  2. electriquo commented on May 24, 2022

    @electriquo

    @KevinRoebert do you still maintain the project?

  3. pinnerup commented on Jul 21, 2022

    @pinnerup

    I'm experiencing the same (or a similar) bug with links that contain anchor references in them.

    For instance, I post this link on Facebook:
    https://en.wiktionary.org/wiki/%D8%AD%D8%A7%D9%84#Noun

    Facebook inserts their own stuff as usual, and on Facebook the link becomes:
    https://l.facebook.com/l.php?u=https%3A%2F%2Fen.wiktionary.org%2Fwiki%2F%25D8%25AD%25D8%25A7%25D9%2584%3Ffbclid%3DIwAR2jTTDkL3beRmzurqQJPhCVPK21w1EYM3vtldGjRDfcv1mnEn93vm4nGzU%23Noun&h=AT02S7Wcc-iyNVQZIE22nfu4lVy0xO9m7KqNXyMz1lsK7dPIoLKS1NtRgKP0JiyC8_EoegWACbk4q5jDE97_4GpYLUv-j3MYu9ZrKDOJNkYWcxM2cay05clL5Q&__tn__=R]-R&c[0]=AT2dBiPYc6RzcK1-kYmXQXMvsO7t1xy3lzRMW_MkRg3-PD3foML9TRfZHNWjVqLsC0QtJEpvqXDh5ORF3ShfpQInwFE7D162plkXwLPwafSpovW88l_6KD5qmU0Mvxia-uN2MJaQiHoesS3Yk_zW19XFUJ8GKhxdyNB0AUhIvkxSJENGVQkyruGgykIMzCe3k0gR80KtkGHF1PQ_

    When I click this link (or copy it and insert it into the search bar) with ClearURLs enabled, it's supposed to resolve to the original link above, but instead it becomes:
    https://en.wiktionary.org/wiki/%D8%AD%D8%A7%D9%84#Noun=

    That is, an extra '=' is added at the end of the link, breaking the anchor functionality, and doesn't take me to the specified section of the target page.

    If I disable ClearURLs, the '=' doesn't get inserted and the link works as expected.

  4. Zocker1999NET commented on Jul 23, 2022

    @Zocker1999NET

    I inspected the code and assume to know what is creating this issue: ClearURLs is treating the fragment part of a URI (after the #) the same way as the query part. It is parsing the string searching for key & value pairs to apply the same filter rules to them and then recreating the fragment from the key & value pairs. The problem hereby is that most anchors are not containing a = to define at least one kv pair, so I assume the native JavaScript parser (which ClearURLs uses) is interpreting that as a key with an empty value (e.g. #Noun becomes {"Noun": ""}). When translated back to a string, the parser will append a = as it is required for a valid query string (example becomes #Noun=). Maybe some websites are using the fragment like that, but that is neither the default nor per RFC.

    I propose either to

    1. check before filtering if the fragment is a valid query string (by parsing it and comparing the generated string with the original one)
      • this may filter "not enough" because web pages could circumvent ClearURLs (by chance) if they do not use valid query strings
    2. track if any value was filtered, if not, use the original fragment (and not the parsed one).
      • this may lead into filtering "too much" if the fragment contains = or ? and matches a rule by chance still breaking (less) web pages
      • but because the rules are restricted to certain pages, maybe there will be no problems in practice
        I could even implement one of both, but I would like to have more input about what proposal seems to fit better for this project (or if someone else has an even better idea).
  5. KevinRoebert commented on Jul 26, 2022

    @KevinRoebert
    Member

    Should be fixed in the next version

  6. Schweinepriester commented on Jul 26, 2022

    @Schweinepriester
    Author

    Wuhu, can't wait for the next version to be released :)

  7. PikachuEXE commented on Jul 27, 2022

    @PikachuEXE

    New release in
    https://github.com/ClearURLs/Addon/releases/tag/1.25.0

    Manually install the extension file via... (search the internet :P)

    Put a reaction on this comment to signal that 1.25.0 have this issue fixed

    Edit 1: Forgot the release contains Firefox one as well, replaced "install .crx"

  8. added a commit that references this issue on Jul 15, 2025
    0d7381f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions