[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #4527 [HTTPS Everywhere: Chrome]: Rule list context menu doesn't get cleared for new https urls
#4527: Rule list context menu doesn't get cleared for new https urls
--------------------------------------+-------------------------------------
Reporter: mikeperry | Owner: mikeperry
Type: defect | Status: new
Priority: normal | Milestone:
Component: HTTPS Everywhere: Chrome | Version:
Keywords: | Parent:
Points: | Actualpoints:
--------------------------------------+-------------------------------------
Due to the fact that we don't listen to https url events for
onBeforeRequest, we do not have a way to clear stale rules from the url
bar when the user manually navigates to a new URL (for example, visits
"eff.org" and then types in "https://encrypted.google.com" the eff rules
will remain displayed on the Google page). We don't want to listen to
blocking https onBeforeRequest events because this would impede
performance.
This bug is way more tricky than it seems. There are several possible
solutions. I've tried the following four, and none of them really have
worked out so far.
1. Listen to onBeforeRequest async for https
(https://code.google.com/chrome/extensions/trunk/experimental.webRequest.html
#event-onBeforeRequest)
I tried purging the rules whenever we had a details.type == "main_frame"
and an https scheme in the async handler, but this causes premature rule
clearing for redirects unless you also listen to onBeforeRedirect. If you
do listen to onBeforeRedirect, it still fails on JS redirects. eff.org has
a JS redirect to www.eff.org.
2. Listen to tabs.onUpdated async
(https://code.google.com/chrome/extensions/tabs.html#event-onUpdated)
Had similar issues to #1, with some additional event ordering problems.
3. Track rule destination urls used for each tab
In desperation, I even tried tracking the destination URL from our url
engine for each tab, with the intention of clearing the list if the
current URL differed from the last rule url.
However, I was again defeated by the inability to detect JS redirects.
4. Listen to WebNavigation.onCommitted for details.transitionType ==
"typed" and possibly also "link"
(https://code.google.com/chrome/extensions/trunk/webNavigation.html#event-
onCommitted)
This was the most promising, because we could use it to clear the rule
sets when we detected a user-driven navigation to a new https url.
However, transitionType == "typed" is still set for redirects that happen
after a typed URL (and possibly for all JS redirects). This seems like an
API bug to me. Should we file one?
It seems like we might be left with just adding some heuristics to option
3 only clear the rules if the domain smells different enough?
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/4527>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs