| Index: Source/core/fetch/ResourceFetcher.cpp | 
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp | 
| index f02e9de872bdaa8948d6bbef2372e434e51c6adb..9860b16d4a0a92dd18a6048e165b244dbb29b2fc 100644 | 
| --- a/Source/core/fetch/ResourceFetcher.cpp | 
| +++ b/Source/core/fetch/ResourceFetcher.cpp | 
| @@ -1350,11 +1350,9 @@ void ResourceFetcher::didReceiveResponse(const Resource* resource, const Resourc | 
| MixedContentChecker::checkMixedPrivatePublic(frame(), response.remoteIPAddress()); | 
|  | 
| // If the response is fetched via ServiceWorker, the original URL of the response could be different from the URL of the request. | 
| +    // We check the URL not to load the resources which are forbidden by the page CSP. This behavior is not specified in the CSP specification yet. | 
| if (response.wasFetchedViaServiceWorker()) { | 
| -        KURL originalURL = response.url(); | 
| -        // FIXME: Use response.originalURLViaServiceWorker() after the chromium side patch will land. | 
| -        if (!response.originalURLViaServiceWorker().isEmpty()) | 
| -            originalURL = response.originalURLViaServiceWorker(); | 
| +        const KURL& originalURL = response.originalURLViaServiceWorker(); | 
| if (!canRequest(resource->type(), resource->resourceRequest(), originalURL, resource->options(), false, FetchRequest::UseDefaultOriginRestrictionForType)) { | 
| resource->loader()->cancel(); | 
| bool isInternalRequest = resource->options().initiatorInfo.name == FetchInitiatorTypeNames::internal; | 
|  |