| Index: content/browser/site_instance_impl.cc
|
| diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
|
| index 897864031ae74fa162c4d3a6e3b8a4fa2779c626..a55d786e8dbdf1cd40d30ba643cda5432aeb95f7 100644
|
| --- a/content/browser/site_instance_impl.cc
|
| +++ b/content/browser/site_instance_impl.cc
|
| @@ -368,15 +368,18 @@ GURL SiteInstanceImpl::GetEffectiveURL(BrowserContext* browser_context,
|
| // static
|
| bool SiteInstanceImpl::DoesSiteRequireDedicatedProcess(
|
| BrowserContext* browser_context,
|
| - const GURL& effective_url) {
|
| + const GURL& url) {
|
| // If --site-per-process is enabled, site isolation is enabled everywhere.
|
| if (SiteIsolationPolicy::UseDedicatedProcessesForAllSites())
|
| return true;
|
|
|
| - // Let the content embedder enable site isolation for specific URLs.
|
| + // Let the content embedder enable site isolation for specific URLs. Use the
|
| + // canonical site url for this check, so that schemes with nested origins
|
| + // (blob and filesystem) work properly.
|
| + GURL site_url = GetSiteForURL(browser_context, url);
|
| if (GetContentClient()->IsSupplementarySiteIsolationModeEnabled() &&
|
| GetContentClient()->browser()->DoesSiteRequireDedicatedProcess(
|
| - browser_context, effective_url)) {
|
| + browser_context, site_url)) {
|
| return true;
|
| }
|
|
|
|
|