[tbb-bugs] #16983 [Tor Browser]: Favicon requests not isolated if one opens the tab list dropdown
Tor Bug Tracker & Wiki
blackhole at torproject.org
Tue Sep 15 18:54:36 UTC 2015
#16983: Favicon requests not isolated if one opens the tab list dropdown
-------------------------+-------------------------------------------------
Reporter: | Owner: tbb-team
someone_else | Status: needs_review
Type: defect | Milestone:
Priority: major | Version:
Component: Tor | Keywords: tbb-linkability,
Browser | TorBrowserTeam201509R
Resolution: | Parent ID:
Actual Points: |
Points: |
-------------------------+-------------------------------------------------
Comment (by arthuredelstein):
Replying to [comment:10 mcs]:
> I don't understand how we want this to work. Reading Arthur's
description of the manual test in comment:9, it sounds like the first
party domain associated with the active tab will be used for all favicon
fetches when the menu is opened. And from reading the code plus this patch
I get the same impression.
>
> Is that the behavior we want? Or do we want the wikipedia favicon to be
isolated as wikipedia.org no matter what tab is active?
The latter behavior is what is intended and what I believe is happening.
In `browser/base/content/tabbrowser.xml`, there is one menuitem defined
for each tab. Whenever a tab changes, whether it is active or not,
`_setMenuitemAttributes` is triggered, to copy the `image` attribute from
the `tab` to the corresponding `menuitem`. The line I am adding in
`_setMenuitemAttributes` also copies the `firstparty` attribute from `tab`
to corresponding `menuitem`.
Here's new version of the demo that sets each `image` attribute to an URL
such as
http://dummyimage.com/16x16/fff/000&text=3.
That URL generates an image with an integer, like this:
[[Image(http://dummyimage.com/16x16/fff/000&text=3)]].
I opened several tabs with different sites. Here is what the drop down
looked like:
[[Image(Screen Shot 2015-09-15 at 11.34.57 AM.png)]]
Then I entered the following code in the Browser Console:
{{{
let popup = document.getElementById("alltabs-popup");
popup.addEventListener("popupshown", function () {
for (var i = 3; i < popup.children.length; ++i) {
console.log("firstparty found: " +
popup.children[i].getAttribute("firstparty"));
popup.children[i].setAttribute("image",
"http://dummyimage.com/16x16/fff/000&text=" + i);
}
}, false);
}}}
The console output was:
{{{
"firstparty found: https://www.wikipedia.org/"
"firstparty found: https://trac.torproject.org/projects/tor"
"firstparty found: https://github.com/"
"firstparty found: http://www.gnu.org/"
"firstparty found: http://elm-lang.org/"
[09-15 18:35:33] Torbutton INFO: tor SOCKS:
http://dummyimage.com/16x16/fff/000&text=3 via wikipedia.org:0
[09-15 18:35:33] Torbutton INFO: tor SOCKS:
http://dummyimage.com/16x16/fff/000&text=4 via torproject.org:0
[09-15 18:35:33] Torbutton INFO: tor SOCKS:
http://dummyimage.com/16x16/fff/000&text=5 via github.com:0
[09-15 18:35:33] Torbutton INFO: tor SOCKS:
http://dummyimage.com/16x16/fff/000&text=6 via gnu.org:0
[09-15 18:35:33] Torbutton INFO: tor SOCKS:
http://dummyimage.com/16x16/fff/000&text=7 via elm-lang.org:0
}}}
And here is the dropdown after the icons loaded (rather slowly):
[[Image(Screen Shot 2015-09-15 at 11.35.50 AM.png)]]
So each menu item has loaded a different favicon, through the circuit
assigned to each tab.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16983#comment:11>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tbb-bugs
mailing list