You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As of chromium/chromium@ea6921f (2019-01-29), SiteInstance::GetSiteForURL fails DCHECKs if we run it in the IO thread, but we do exactly that when we call TorProfileService::SetProxy in an OnBeforeURLRequest handler:
This breaks debug builds. It may also have other consequences in non-debug builds -- I haven't seen symptoms but I haven't ruled them out either.
It is not immediately clear to me how to resolve this. Internally, SiteInstanceImpl::GetSiteForURL is allowed in the IO thread when we have a BrowserOrResourceContext and should_use_effective_urls is false. Should we use SiteInstanceImpl::DetermineProcessLockURL, with some isolation context? Should we use the internal SiteInstanceImpl::GetSiteForURL directly?
fixbrave/brave-browser#4321
Calling it in the IO thread is prohibited at least as of
chromium/chromium@ea6921f
and possibly earlier.
Instead, call url::Origin::Create and
net::registry_controlled_domains::GetDomainAndRegistry directly to get
a first-party origin for a circuit isolation key.
fixbrave/brave-browser#4394
- Disable all proxy bypass rules in TorProxyConfigService.
- Test proxy config rules for several URLs:
. check.tpo as before
. localhost
. IP addresses
. IPv6 addresses
- Fix circuit isolation bug for numeric IP addresses.
. Circuit isolation key was empty for numeric IP addresses; should
just be the IP address.
. Likely caused by 4e334f8, the
fix for brave/brave-browser#4321, so won't have actually hit
anyone outside prereleases.
- Test circuit isolation key determination.
As of chromium/chromium@ea6921f (2019-01-29), SiteInstance::GetSiteForURL fails DCHECKs if we run it in the IO thread, but we do exactly that when we call TorProfileService::SetProxy in an OnBeforeURLRequest handler:
https://github.com/brave/brave-core/blob/b4afcc7dd690ee4393823c3d9fa6d9ea94c455a2/browser/tor/tor_profile_service_impl.cc#L97-L102
This breaks debug builds. It may also have other consequences in non-debug builds -- I haven't seen symptoms but I haven't ruled them out either.
It is not immediately clear to me how to resolve this. Internally, SiteInstanceImpl::GetSiteForURL is allowed in the IO thread when we have a BrowserOrResourceContext and should_use_effective_urls is false. Should we use SiteInstanceImpl::DetermineProcessLockURL, with some isolation context? Should we use the internal SiteInstanceImpl::GetSiteForURL directly?
cc @darkdh, @bridiver
The text was updated successfully, but these errors were encountered: