Rob--W / dont-track-me-google

Firefox and Chrome extensions to prevent Google from making links ugly.
MIT License
459 stars 26 forks source link

Updated Google Calendar UI #18

Closed rmccu closed 6 years ago

rmccu commented 6 years ago

Google Calendar made an update to it's UI available recently:

After updating, if I click on a link in the location or description fields of the calendar appointment I am sent to a 'Redirect Notice' page with a URL like this: https://www.google.com/url?q=https%3A%2F%2Fglobal.gotomeeting.com%2Fjoin%2F123456789

If I copy the URL of a link in the description, I get this URL: https://www.google.com/url?q=https%3A%2F%2Fglobal.gotomeeting.com%2Fjoin%2F123456789&sa=D&ust=1510607942331000&usg=AFQjCNHUB0OustcCNGK3ts5l_ybA6_tM-w

Rob--W commented 6 years ago

I just tried, and I am not being sent to the redirect notice page. The extension (version 4.17) fixes the link before the click is processed, and the browser ends up opening the normal link.

rmccu commented 6 years ago

Here is a recording of the behavior: 2017-11-15_12-34-25.mp4.zip

I am also using version 4.17: image

Rob--W commented 6 years ago

In your video, the extension seems to work for the link in the description. The thing that does not work is the "link" in the Location field.

That "link" is not a link... It is a <div> element, and Google Calendar has JavaScript code to open a new page when it is clicked (with window.open):

The element appears identifiable (<div ... role="link" href="https://www.google.com/url?q=<url-encoded-url>" tabindex="0" target="_blank">). But because the HTML is not standard (the closest is the definition of the "link" role), I don't know how reliable it would be to add something like this...

Detecting and changing the link is relatively easy. I changed the href attribute to something else through the devtools, and the new link got opened instead. But changing the URL would also allow referrer leaking to happen, unless I find a work-around to that.

Google should have sticked to the standard <a> element for linking to other URLs. Inventing a new element is terrible. Note also that because it is not a true link element, standard things like keyboard shortcuts (shift/ctrl click) do not work (nothing is opened), and link-related context menu items do not appear either (copy URL, open in new tab/window).

I wonder whether I should add code to "fix" these "links", or that we should wait until Google gets around and uses proper <a> elements for links.

rmccu commented 6 years ago

I follow what you are saying and I had noticed this as well. I just wasn't aware that this usage (the "div" element) was new/unique. If I knew that Google intended to address this, by all means I think the best course of action would be to wait. Since I don't know that, I would like to see some kind of a fix. I would even be willing to leave with the "referrer leak" as long as Google wasn't tracking me.

What happens if you change the "div" element to an "a" element? Does it drastically change the formatting or look? I am also wondering what happens with addresses? Or hangout links?

This is all just my opinion though, and the extension still provides substantial value even with this limitation.

Rob--W commented 6 years ago

What happens if you change the "div" element to an "a" element? Does it drastically change the formatting or look?

Anything could happen. From nothing to a botched UI. So, if this path is to be taken, then it would fit better in a separate extension. Once the unusual link becomes a link, then my extension will apply its functionality as expected.

I would like to see some kind of a fix. I would even be willing to leave with the "referrer leak" as long as Google wasn't tracking me.

Is not putting URLs in the Location field an option? ;)

rmccu commented 6 years ago

For myself yes, but others often put a link to the conferencing solution (e.g. GotoMeeting or Webex) in the Location field rather than the Description. For now I will use the link in the description is available.

Rob--W commented 6 years ago

This has been fixed in the latest version of the extension.

rmccu commented 6 years ago

Thanks @Rob--W, works great!