Index: content/browser/loader/navigation_url_loader_impl.cc |
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc |
index 7cbd9112d6da438e78457b29d62bd51a7fc76658..b06f09308e7fb720bc16199c92e017ad3df24bae 100644 |
--- a/content/browser/loader/navigation_url_loader_impl.cc |
+++ b/content/browser/loader/navigation_url_loader_impl.cc |
@@ -11,6 +11,7 @@ |
#include "content/browser/loader/navigation_url_loader_impl_core.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/storage_partition.h" |
#include "content/public/browser/stream_handle.h" |
namespace content { |
@@ -23,7 +24,13 @@ NavigationURLLoaderImpl::NavigationURLLoaderImpl( |
weak_factory_(this) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
- core_ = new NavigationURLLoaderImplCore(weak_factory_.GetWeakPtr()); |
+ // TODO(clamy): Picking the partition based on the URL is incorrect. |
+ // See crbug.com/513539 |
+ StoragePartition* partition = BrowserContext::GetStoragePartitionForSite( |
+ browser_context, request_info->common_params.url); |
+ DCHECK(partition); |
+ core_ = new NavigationURLLoaderImplCore(weak_factory_.GetWeakPtr(), |
+ partition->GetServiceWorkerContext()); |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
base::Bind(&NavigationURLLoaderImplCore::Start, base::Unretained(core_), |