If window.name is assigned by a website, it's value can be read by any JavaScript running in the same tab at any point in the future, regardless of what website the JavaScript is from.
Trac: Username: katmagic
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
Why not using the already implemented request observer? You could get the associated window (if there is any) with callbacks and check whether window.name is set and if so AND the user is requesting a new domain just reset it.
My understanding though is that the wrappedJSObject that window lives in has changed behaviors in FF3.5 -> FF4.0. So it requires some extra testing for each one.
We only want to reset this property if there has been a torbutton state change, I believe. Which means we need to find the relevant content window during the toggle phase, rather than the observer.
We want to do this on Toggle because that is the codepath that is used for resetting browser state. I think we want to allow window.name to live for a single Tor session (or until the timer from #523 (closed) goes off).
My understanding though is that the wrappedJSObject that window lives in has changed behaviors in FF3.5 -> FF4.0. So it requires some extra testing for each one.
We only want to reset this property if there has been a torbutton state change, I believe. Which means we need to find the relevant content window during the toggle phase, rather than the observer.
We want to do this on Toggle because that is the codepath that is used for resetting browser state. I think we want to allow window.name to live for a single Tor session (or until the timer from #523 (closed) goes off).
I'd definitely say that it should be reset every time a new domain is requested. I can't see any reason why someone would want it to persist between sites. It seems much cleaner to clear it.
We want to do this on Toggle because that is the codepath that is used for resetting browser state. I think we want to allow window.name to live for a single Tor session (or until the timer from #523 (closed) goes off).
I'd definitely say that it should be reset every time a new domain is requested. I can't see any reason why someone would want it to persist between sites. It seems much cleaner to clear it.
I don't think we want to mess with how this property works by default. I can envision websites breaking in the odd corners of the web if we try to disable window.name entirely.. I could also see using the same origin policy definitions to reset window.name to make this break less.. This would be a good option for NoScript, or a hidden Torbutton option, but I still don't think it should be a default.
I can see clearing window.name and any other state data periodically by default, a-la #523 (closed), if we can figure out a way to do that without causing users to perceive breakage.
If we want to create an option to apply the same-origin policy to window.name, that should be another ticket. I would like to use this ticket to only apply to window.name being persistent across tor toggle, which is a more serious problem, and a violation of Torbutton's security requirements:
https://www.torproject.org/torbutton/en/design/#requirements
Trac: Summary: window.name is persistent across websites to window.name is persistent across torbutton toggle
I created #2669 (closed) to note the same origin policy plan. However, I don't think it is one we want to do, and that we want something explicit handling this instead, like #523 (closed).
Trac: Resolution: N/Ato fixed Status: needs_review to closed