| Index: third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| index 9766e241d7248b3f7e9239d87c45176df3c85d47..0fcd890a93b05b98f9fdc73aff9044f4f9a0e7bf 100644
|
| --- a/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -443,12 +443,16 @@ Resource* ResourceFetcher::requestResource(FetchRequest& request, const Resource
|
| }
|
| }
|
|
|
| - bool isStaticData = request.resourceRequest().url().protocolIsData() || substituteData.isValid() || m_archive;
|
| + bool isDataUrl = request.resourceRequest().url().protocolIsData();
|
| + bool isStaticData = isDataUrl || substituteData.isValid() || m_archive;
|
| Resource* resource(nullptr);
|
| if (isStaticData) {
|
| resource = resourceForStaticData(request, factory, substituteData);
|
| - // Abort the request if the archive doesn't contain the resource.
|
| - if (!resource && m_archive)
|
| + // Abort the request if the archive doesn't contain the resource, except
|
| + // in the case of data URLs which might have resources such as fonts
|
| + // that need to be decoded only on demand. These data URLs are allowed
|
| + // to be processed using the normal ResourceFetcher machinery.
|
| + if (!resource && !isDataUrl && m_archive)
|
| return nullptr;
|
| }
|
| if (!resource)
|
|
|