got implemented in Firefox 39 (https://bugzilla.mozilla.org/show_bug.cgi?id=1135160) we should make sure it follows our URL bar domain isolation paradigm. It might be worth to look at the the implementation itself as it claims "allowing to anticipate a future connection without revealing any information"
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.
ac5256ecabbaf0defb421c7598f23a4a1901302c reverts the temporary patch posted in comment:4
a77e88a6309bec6be8eb93ad864b40c90497d962 isolates link rel=preconnect to first party
f42889501e5321d3c3a5bb558a3b2932264b60f5 is a fixup for our first-party regression test that ensures that the preconnect connection has the correct first party
I confirmed that reverting the second patch causes the test in the third patch to fail.
Kathy and I reviewed this and ran the tests (as well as a manual test so we could look at the domain isolation logging). Everything seems to be working correctly. Nice work!
It might be helpful to add some comments where you pass an empty string for the isolation key, e.g., in netwerk/base/Predictor.cpp, inside IOServiceProxyCallback::OnProxyAvailable(), and in netwerk/ipc/NeckoParent.cpp. I know Predictor.cpp is OK because that code is pref'd off. Kathy and I are less confident about NeckoParent.cpp because we are not as familiar with the IPC code and all the ways it may be used.
Also, the UUID inside netwerk/base/nsISpeculativeConnect.idl should be changed. Kathy and I are also worried that changing signatures of existing IDL'd methods may break add-ons. Should we add new methods instead?
Kathy and I reviewed this and ran the tests (as well as a manual test so we could look at the domain isolation logging). Everything seems to be working correctly. Nice work!
Thank you for the review!
It might be helpful to add some comments where you pass an empty string for the isolation key, e.g., in netwerk/base/Predictor.cpp, inside IOServiceProxyCallback::OnProxyAvailable(), and in netwerk/ipc/NeckoParent.cpp. I know Predictor.cpp is OK because that code is pref'd off. Kathy and I are less confident about NeckoParent.cpp because we are not as familiar with the IPC code and all the ways it may be used.
Good point. I decided to add isolationKeys to the IPC code just to be sure.
Also, the UUID inside netwerk/base/nsISpeculativeConnect.idl should be changed. Kathy and I are also worried that changing signatures of existing IDL'd methods may break add-ons. Should we add new methods instead?
I've added new methods as you suggest. This means that the Predictor code is left to use the old methods, but, as you point out, we have the predictor preffed off.
b44b2b25bab1ebde9351c842f0ca66d2fdc87579 reverts the temporary patch posted in comment:4
be96c4f788ab616d94457bcc4dd1d098b156d62c isolates link rel=preconnect to first party and generally isolates speculative connects
8cfeded9b52a1bbc93622c6dbe6ca59f987b43c0 is a fixup for our first-party regression test that ensures that the preconnect connection has the correct first party
The patches look good to me as well. I applied them to tor-browser-45.2.0esr-6.5-1 as commit b44b2b25bab1ebde9351c842f0ca66d2fdc87579, be96c4f788ab616d94457bcc4dd1d098b156d62c and 8cfeded9b52a1bbc93622c6dbe6ca59f987b43c0. Thanks!
Trac: Status: needs_review to closed Resolution: N/Ato fixed