WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-99736-20121021204005.patch (text/plain), 58.75 KB, created by
Marja Hölttä
on 2012-10-21 11:41:25 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Marja Hölttä
Created:
2012-10-21 11:41:25 PDT
Size:
58.75 KB
patch
obsolete
>Subversion Revision: 131814 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 57bbd9da5605bb949e7c4162272e5200e5e55925..7d434ac5ee41592942fd59942c0a0789a6a765fb 100755 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,99 @@ >+2012-10-21 Marja Hölttä <marja@chromium.org> >+ >+ Refactor CachedResourceLoader: add CachedResourceRequest >+ https://bugs.webkit.org/show_bug.cgi?id=99736 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ For fixing bugs 84883 and 92761, >+ CachedResourceLoader::requestResource should take as parameter >+ information about who initiated the request. But the parameter >+ list was already long. This gathers all the parameters into a >+ separate class, CachedResourceRequest. The next step is to add >+ information about who initiated the request into >+ CachedResourceRequest. >+ >+ No new tests because no changes in functionality, just moving code >+ around. >+ >+ * CMakeLists.txt: >+ * GNUmakefile.list.am: >+ * Target.pri: >+ * WebCore.gypi: >+ * WebCore.vcproj/WebCore.vcproj: >+ * WebCore.xcodeproj/project.pbxproj: >+ * css/CSSFontFaceSrcValue.cpp: >+ (WebCore::CSSFontFaceSrcValue::cachedFont): >+ * css/CSSImageSetValue.cpp: >+ (WebCore::CSSImageSetValue::cachedImageSet): >+ * css/CSSImageValue.cpp: >+ (WebCore::CSSImageValue::cachedImage): >+ * css/StyleRuleImport.cpp: >+ (WebCore::StyleRuleImport::requestStyleSheet): >+ * css/WebKitCSSSVGDocumentValue.cpp: >+ (WebCore::WebKitCSSSVGDocumentValue::load): >+ * css/WebKitCSSShaderValue.cpp: >+ (WebCore::WebKitCSSShaderValue::cachedShader): >+ * dom/ProcessingInstruction.cpp: >+ (WebCore::ProcessingInstruction::checkStyleSheet): >+ * dom/ScriptElement.cpp: >+ (WebCore::ScriptElement::requestScript): >+ * html/HTMLLinkElement.cpp: >+ (WebCore::HTMLLinkElement::process): >+ * loader/DocumentThreadableLoader.cpp: >+ (WebCore::DocumentThreadableLoader::loadRequest): >+ * loader/ImageLoader.cpp: >+ (WebCore::ImageLoader::updateFromElement): >+ * loader/LinkLoader.cpp: >+ (WebCore::LinkLoader::loadLink): >+ * loader/TextTrackLoader.cpp: >+ (WebCore::TextTrackLoader::load): >+ * loader/cache/CachedResourceLoader.cpp: >+ (WebCore::CachedResourceLoader::requestImage): >+ (WebCore::CachedResourceLoader::requestFont): >+ (WebCore::CachedResourceLoader::requestTextTrack): >+ (WebCore::CachedResourceLoader::requestShader): >+ (WebCore::CachedResourceLoader::requestCSSStyleSheet): >+ (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): >+ (WebCore::CachedResourceLoader::requestScript): >+ (WebCore::CachedResourceLoader::requestXSLStyleSheet): >+ (WebCore::CachedResourceLoader::requestSVGDocument): >+ (WebCore::CachedResourceLoader::requestLinkResource): >+ (WebCore::CachedResourceLoader::requestRawResource): >+ (WebCore::CachedResourceLoader::requestResource): >+ (WebCore::CachedResourceLoader::requestPreload): >+ (WebCore::CachedResourceLoader::defaultCachedResourceOptions): >+ (WebCore): >+ * loader/cache/CachedResourceLoader.h: >+ (WebCore): >+ (CachedResourceLoader): >+ * loader/cache/CachedResourceRequest.cpp: Added. >+ (WebCore): >+ (WebCore::CachedResourceRequest::CachedResourceRequest): >+ * loader/cache/CachedResourceRequest.h: Added. >+ (WebCore): >+ (CachedResourceRequest): >+ (WebCore::CachedResourceRequest::mutableResourceRequest): >+ (WebCore::CachedResourceRequest::resourceRequest): >+ (WebCore::CachedResourceRequest::charset): >+ (WebCore::CachedResourceRequest::setCharset): >+ (WebCore::CachedResourceRequest::options): >+ (WebCore::CachedResourceRequest::priority): >+ (WebCore::CachedResourceRequest::forPreload): >+ (WebCore::CachedResourceRequest::setForPreload): >+ (WebCore::CachedResourceRequest::defer): >+ (WebCore::CachedResourceRequest::setDefer): >+ * loader/icon/IconLoader.cpp: >+ (WebCore::IconLoader::startLoading): >+ * svg/SVGFEImageElement.cpp: >+ (WebCore::SVGFEImageElement::requestImageResource): >+ * svg/SVGFontFaceUriElement.cpp: >+ (WebCore::SVGFontFaceUriElement::loadFont): >+ * svg/SVGUseElement.cpp: >+ (WebCore::SVGUseElement::svgAttributeChanged): >+ * xml/XSLImportRule.cpp: >+ (WebCore::XSLImportRule::loadSheet): >+ > 2012-10-18 Tommy Widenflycht <tommyw@google.com> > > MediaStream API: Do some cleanup in the chromium WebKit API >diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt >index d53737980997e74c1dd847c85de68930116e1408..a273de6a28cc4ed456ec0c3ffd17af398252bcc6 100644 >--- a/Source/WebCore/CMakeLists.txt >+++ b/Source/WebCore/CMakeLists.txt >@@ -1681,6 +1681,7 @@ SET(WebCore_SOURCES > loader/cache/CachedResource.cpp > loader/cache/CachedResourceHandle.cpp > loader/cache/CachedResourceLoader.cpp >+ loader/cache/CachedResourceRequest.cpp > loader/cache/CachedScript.cpp > loader/cache/CachedShader.cpp > loader/cache/CachedSVGDocument.cpp >diff --git a/Source/WebCore/GNUmakefile.list.am b/Source/WebCore/GNUmakefile.list.am >index ea2b22e9aea629bac4c78037a1a200fa68ceca53..d90f9f590d59ea241da428e1525f0551b86019b5 100644 >--- a/Source/WebCore/GNUmakefile.list.am >+++ b/Source/WebCore/GNUmakefile.list.am >@@ -3843,6 +3843,8 @@ webcore_sources += \ > Source/WebCore/loader/cache/CachedResourceHandle.h \ > Source/WebCore/loader/cache/CachedResourceLoader.cpp \ > Source/WebCore/loader/cache/CachedResourceLoader.h \ >+ Source/WebCore/loader/cache/CachedResourceRequest.cpp \ >+ Source/WebCore/loader/cache/CachedResourceRequest.h \ > Source/WebCore/loader/cache/CachedScript.cpp \ > Source/WebCore/loader/cache/CachedScript.h \ > Source/WebCore/loader/cache/CachedShader.cpp \ >diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri >index 7e705e486b12e6ae53e796f7db2dd7784c11568e..2e7986f49a9500d38466b977b849b8dcdcd28a5f 100644 >--- a/Source/WebCore/Target.pri >+++ b/Source/WebCore/Target.pri >@@ -816,6 +816,7 @@ SOURCES += \ > loader/CrossOriginAccessControl.cpp \ > loader/CrossOriginPreflightResultCache.cpp \ > loader/cache/CachedResourceLoader.cpp \ >+ loader/cache/CachedResourceRequest.cpp \ > loader/DocumentLoadTiming.cpp \ > loader/DocumentLoader.cpp \ > loader/DocumentThreadableLoader.cpp \ >diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi >index 48a1dcb3f5ca84241109400fff94ccb21326a704..a2762201b51d018d53e6e93b4e2bf2e74fcee994 100644 >--- a/Source/WebCore/WebCore.gypi >+++ b/Source/WebCore/WebCore.gypi >@@ -206,6 +206,7 @@ > 'loader/cache/CachedResourceClient.h', > 'loader/cache/CachedResourceHandle.h', > 'loader/cache/CachedResourceLoader.h', >+ 'loader/cache/CachedResourceRequest.h', > 'loader/cache/CachedShader.h', > 'loader/cache/CachedStyleSheetClient.h', > 'loader/cache/MemoryCache.h', >@@ -3061,6 +3062,7 @@ > 'loader/cache/CachedResourceClientWalker.h', > 'loader/cache/CachedResourceHandle.cpp', > 'loader/cache/CachedResourceLoader.cpp', >+ 'loader/cache/CachedResourceRequest.cpp', > 'loader/cache/CachedScript.cpp', > 'loader/cache/CachedScript.h', > 'loader/cache/CachedShader.cpp', >diff --git a/Source/WebCore/WebCore.vcproj/WebCore.vcproj b/Source/WebCore/WebCore.vcproj/WebCore.vcproj >index 540fa539351ee6a745e913013ee3156e5d50bfde..aaa639abc534c948ddd528bbe709706b32354d1e 100755 >--- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj >+++ b/Source/WebCore/WebCore.vcproj/WebCore.vcproj >@@ -28194,6 +28194,14 @@ > > > </File> > <File >+ RelativePath="..\loader\cache\CachedResourceRequest.cpp" >+ > >+ </File> >+ <File >+ RelativePath="..\loader\cache\CachedResourceRequest.h" >+ > >+ </File> >+ <File > RelativePath="..\loader\cache\CachedScript.cpp" > > > </File> >diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >index 66262dbd0ebd8659558f62226ad9032b0ea9671b..7ff4652475026c1f5730b0ea642131fd85d31744 100644 >--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj >+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj >@@ -1491,6 +1491,8 @@ > 503D0CAB14B5B08700F32F57 /* CustomFilterProgram.h in Headers */ = {isa = PBXBuildFile; fileRef = 503D0CA814B5B08700F32F57 /* CustomFilterProgram.h */; settings = {ATTRIBUTES = (); }; }; > 503D0CAC14B5B08700F32F57 /* CustomFilterProgramClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 503D0CA914B5B08700F32F57 /* CustomFilterProgramClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 503D0CAE14B5B0BA00F32F57 /* StyleCustomFilterProgram.h in Headers */ = {isa = PBXBuildFile; fileRef = 503D0CAD14B5B0BA00F32F57 /* StyleCustomFilterProgram.h */; settings = {ATTRIBUTES = (); }; }; >+ 5081E3C33CE580C16EF8B48B /* CachedResourceRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5081E3DF3CFC80C16EF8B48B /* CachedResourceRequest.cpp */; }; >+ 5081E3E03CFF80C16EF8B48B /* CachedResourceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5081E3E13D0280C16EF8B48B /* CachedResourceRequest.h */; settings = {ATTRIBUTES = (Private, ); }; }; > 508CCA4F13CF106B003151F3 /* RenderFlowThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 508CCA4D13CF106B003151F3 /* RenderFlowThread.h */; }; > 508CCA5013CF106B003151F3 /* RenderFlowThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 508CCA4E13CF106B003151F3 /* RenderFlowThread.cpp */; }; > 50987C26157D676D00BDA835 /* CustomFilterGlobalContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50987C24157D676D00BDA835 /* CustomFilterGlobalContext.cpp */; }; >@@ -12961,6 +12963,8 @@ > BCB16C0F0979C3BD00467741 /* CachedXSLStyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedXSLStyleSheet.h; sourceTree = "<group>"; }; > BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CachedResourceLoader.cpp; sourceTree = "<group>"; }; > BCB16C110979C3BD00467741 /* CachedResourceLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceLoader.h; sourceTree = "<group>"; }; >+ 5081E3DF3CFC80C16EF8B48B /* CachedResourceRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CachedResourceRequest.cpp; sourceTree = "<group>"; }; >+ 5081E3E13D0280C16EF8B48B /* CachedResourceRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CachedResourceRequest.h; sourceTree = "<group>"; }; > BCB7735E0C17853D00132BA4 /* JSNodeFilterCondition.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCondition.cpp; sourceTree = "<group>"; }; > BCB7735F0C17853D00132BA4 /* JSNodeFilterCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSNodeFilterCondition.h; sourceTree = "<group>"; }; > BCB773600C17853D00132BA4 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = "<group>"; }; >@@ -19200,6 +19204,8 @@ > E47B4BE60E71241600038854 /* CachedResourceHandle.h */, > BCB16C100979C3BD00467741 /* CachedResourceLoader.cpp */, > BCB16C110979C3BD00467741 /* CachedResourceLoader.h */, >+ 5081E3DF3CFC80C16EF8B48B /* CachedResourceRequest.cpp */, >+ 5081E3E13D0280C16EF8B48B /* CachedResourceRequest.h */, > BCB16C0A0979C3BD00467741 /* CachedScript.cpp */, > BCB16C0B0979C3BD00467741 /* CachedScript.h */, > 5038BE3E1472AD980095E0D1 /* CachedShader.cpp */, >@@ -22495,6 +22501,7 @@ > BCB16C220979C3BD00467741 /* CachedResourceClientWalker.h in Headers */, > E47B4BE80E71241600038854 /* CachedResourceHandle.h in Headers */, > BCB16C2A0979C3BD00467741 /* CachedResourceLoader.h in Headers */, >+ 5081E3E03CFF80C16EF8B48B /* CachedResourceRequest.h in Headers */, > BCB16C240979C3BD00467741 /* CachedScript.h in Headers */, > BCD533640ED6848900887468 /* CachedScriptSourceProvider.h in Headers */, > 5038BE411472AD980095E0D1 /* CachedShader.h in Headers */, >@@ -26117,6 +26124,7 @@ > BCB16C1F0979C3BD00467741 /* CachedResource.cpp in Sources */, > E47B4BE90E71241600038854 /* CachedResourceHandle.cpp in Sources */, > BCB16C290979C3BD00467741 /* CachedResourceLoader.cpp in Sources */, >+ 5081E3C33CE580C16EF8B48B /* CachedResourceRequest.cpp in Sources */, > BCB16C230979C3BD00467741 /* CachedScript.cpp in Sources */, > 5038BE401472AD980095E0D1 /* CachedShader.cpp in Sources */, > A104F24314C71F7A009E2C23 /* CachedSVGDocument.cpp in Sources */, >diff --git a/Source/WebCore/css/CSSFontFaceSrcValue.cpp b/Source/WebCore/css/CSSFontFaceSrcValue.cpp >index 2a1c04787d6a0c4c87138044a2c1755898710cfb..3690789336d0b844815273b013225f69daad687f 100644 >--- a/Source/WebCore/css/CSSFontFaceSrcValue.cpp >+++ b/Source/WebCore/css/CSSFontFaceSrcValue.cpp >@@ -27,6 +27,7 @@ > #include "CSSFontFaceSrcValue.h" > #include "CachedFont.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "FontCustomPlatformData.h" > #include "Node.h" >@@ -95,7 +96,7 @@ bool CSSFontFaceSrcValue::hasFailedOrCanceledSubresources() const > CachedFont* CSSFontFaceSrcValue::cachedFont(Document* document) > { > if (!m_cachedFont) { >- ResourceRequest request(document->completeURL(m_resource)); >+ CachedResourceRequest request(ResourceRequest(document->completeURL(m_resource))); > m_cachedFont = document->cachedResourceLoader()->requestFont(request); > } > return m_cachedFont.get(); >@@ -113,4 +114,3 @@ void CSSFontFaceSrcValue::reportDescendantMemoryUsage(MemoryObjectInfo* memoryOb > } > > } >- >diff --git a/Source/WebCore/css/CSSImageSetValue.cpp b/Source/WebCore/css/CSSImageSetValue.cpp >index 6e02a20f95ac3f14f461a1c5100b4ad62bd9ef0a..6dc76f58048f9e48ce5b79e8ef5929f2f42d1410 100644 >--- a/Source/WebCore/css/CSSImageSetValue.cpp >+++ b/Source/WebCore/css/CSSImageSetValue.cpp >@@ -32,6 +32,7 @@ > #include "CSSPrimitiveValue.h" > #include "CachedImage.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "Page.h" > #include "StyleCachedImageSet.h" >@@ -108,7 +109,7 @@ StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* load > // All forms of scale should be included: Page::pageScaleFactor(), Frame::pageZoomFactor(), > // and any CSS transforms. https://bugs.webkit.org/show_bug.cgi?id=81698 > ImageWithScale image = bestImageForScaleFactor(); >- ResourceRequest request(loader->document()->completeURL(image.imageURL)); >+ CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(image.imageURL))); > if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) { > m_imageSet = StyleCachedImageSet::create(cachedImage.get(), image.scaleFactor, this); > m_accessedBestFitImage = true; >diff --git a/Source/WebCore/css/CSSImageValue.cpp b/Source/WebCore/css/CSSImageValue.cpp >index 726c2c043471e967b92bc9fa764c3239f2b7a546..6b73d4631a0f0024f2ec6f3c64858164984104f7 100644 >--- a/Source/WebCore/css/CSSImageValue.cpp >+++ b/Source/WebCore/css/CSSImageValue.cpp >@@ -26,6 +26,7 @@ > #include "CSSValueKeywords.h" > #include "CachedImage.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "MemoryCache.h" > #include "StyleCachedImage.h" >@@ -82,7 +83,7 @@ StyleCachedImage* CSSImageValue::cachedImage(CachedResourceLoader* loader, const > if (!m_accessedImage) { > m_accessedImage = true; > >- ResourceRequest request(loader->document()->completeURL(url)); >+ CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(url))); > if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) > m_image = StyleCachedImage::create(cachedImage.get()); > } >diff --git a/Source/WebCore/css/StyleRuleImport.cpp b/Source/WebCore/css/StyleRuleImport.cpp >index 26f29e82f80a9ff51dace570d8f47e938ae5de0a..eec350771c47942e86577307ec24032d26c04f85 100644 >--- a/Source/WebCore/css/StyleRuleImport.cpp >+++ b/Source/WebCore/css/StyleRuleImport.cpp >@@ -25,6 +25,7 @@ > #include "CSSStyleSheet.h" > #include "CachedCSSStyleSheet.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "SecurityOrigin.h" > #include "StyleSheetContents.h" >@@ -115,11 +116,11 @@ void StyleRuleImport::requestStyleSheet() > rootSheet = sheet; > } > >- ResourceRequest request(absURL); >+ CachedResourceRequest request(ResourceRequest(absURL), m_parentStyleSheet->charset()); > if (m_parentStyleSheet->isUserStyleSheet()) >- m_cachedSheet = cachedResourceLoader->requestUserCSSStyleSheet(request, m_parentStyleSheet->charset()); >+ m_cachedSheet = cachedResourceLoader->requestUserCSSStyleSheet(request); > else >- m_cachedSheet = cachedResourceLoader->requestCSSStyleSheet(request, m_parentStyleSheet->charset()); >+ m_cachedSheet = cachedResourceLoader->requestCSSStyleSheet(request); > if (m_cachedSheet) { > // if the import rule is issued dynamically, the sheet may be > // removed from the pending sheet count, so let the doc know >diff --git a/Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp b/Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp >index 44c88089470e839d974eba01cc06f7d920c18122..67e84e3c9b983abb0824120759e3888053cfc8ba 100644 >--- a/Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp >+++ b/Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp >@@ -29,6 +29,7 @@ > > #include "CSSParser.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "WebCoreMemoryInstrumentation.h" > >@@ -52,7 +53,7 @@ CachedSVGDocument* WebKitCSSSVGDocumentValue::load(CachedResourceLoader* loader) > if (!m_loadRequested) { > m_loadRequested = true; > >- ResourceRequest request(loader->document()->completeURL(m_url)); >+ CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(m_url))); > m_document = loader->requestSVGDocument(request); > } > >diff --git a/Source/WebCore/css/WebKitCSSShaderValue.cpp b/Source/WebCore/css/WebKitCSSShaderValue.cpp >index 6f9373e0f0fa2df8bf494281b5c2d87729abb961..fa04190c3dc8e3adb431ab03a8fd1a1e18004ba9 100644 >--- a/Source/WebCore/css/WebKitCSSShaderValue.cpp >+++ b/Source/WebCore/css/WebKitCSSShaderValue.cpp >@@ -32,8 +32,9 @@ > #if ENABLE(CSS_SHADERS) > #include "WebKitCSSShaderValue.h" > >-#include "CachedResourceLoader.h" > #include "CSSParser.h" >+#include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "StyleCachedShader.h" > #include "StylePendingShader.h" >@@ -59,7 +60,7 @@ StyleCachedShader* WebKitCSSShaderValue::cachedShader(CachedResourceLoader* load > if (!m_accessedShader) { > m_accessedShader = true; > >- ResourceRequest request(loader->document()->completeURL(m_url)); >+ CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(m_url))); > if (CachedResourceHandle<CachedShader> cachedShader = loader->requestShader(request)) > m_shader = StyleCachedShader::create(cachedShader.get()); > } >diff --git a/Source/WebCore/dom/ProcessingInstruction.cpp b/Source/WebCore/dom/ProcessingInstruction.cpp >index 4bca1d1eb95ebaaec10ad138fcc6d1feb3f6f6b6..ec1733c74489526df65ce0f41b3b687711d43fcd 100644 >--- a/Source/WebCore/dom/ProcessingInstruction.cpp >+++ b/Source/WebCore/dom/ProcessingInstruction.cpp >@@ -24,6 +24,7 @@ > #include "CSSStyleSheet.h" > #include "CachedCSSStyleSheet.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "CachedXSLStyleSheet.h" > #include "Document.h" > #include "DocumentStyleSheetCollection.h" >@@ -163,7 +164,7 @@ void ProcessingInstruction::checkStyleSheet() > m_loading = true; > document()->styleSheetCollection()->addPendingSheet(); > >- ResourceRequest request(document()->completeURL(href)); >+ CachedResourceRequest request(ResourceRequest(document()->completeURL(href))); > #if ENABLE(XSLT) > if (m_isXSL) > m_cachedSheet = document()->cachedResourceLoader()->requestXSLStyleSheet(request); >@@ -173,8 +174,9 @@ void ProcessingInstruction::checkStyleSheet() > String charset = attrs.get("charset"); > if (charset.isEmpty()) > charset = document()->charset(); >+ request.setCharset(charset); > >- m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(request, charset); >+ m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(request); > } > if (m_cachedSheet) > m_cachedSheet->addClient(this); >diff --git a/Source/WebCore/dom/ScriptElement.cpp b/Source/WebCore/dom/ScriptElement.cpp >index 209fc79c1c8c08a4f69a999983fb07198638e696..cfdd1a436980d1b00262c118cc269f73c2cc3220 100644 >--- a/Source/WebCore/dom/ScriptElement.cpp >+++ b/Source/WebCore/dom/ScriptElement.cpp >@@ -26,6 +26,7 @@ > > #include "CachedScript.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "ContentSecurityPolicy.h" > #include "CrossOriginAccessControl.h" > #include "Document.h" >@@ -256,16 +257,17 @@ bool ScriptElement::requestScript(const String& sourceUrl) > > ASSERT(!m_cachedScript); > if (!stripLeadingAndTrailingHTMLSpaces(sourceUrl).isEmpty()) { >- ResourceRequest request = ResourceRequest(m_element->document()->completeURL(sourceUrl)); >+ CachedResourceRequest request(ResourceRequest(m_element->document()->completeURL(sourceUrl))); > > String crossOriginMode = m_element->fastGetAttribute(HTMLNames::crossoriginAttr); > if (!crossOriginMode.isNull()) { > m_requestUsesAccessControl = true; > StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials; >- updateRequestForAccessControl(request, m_element->document()->securityOrigin(), allowCredentials); >+ updateRequestForAccessControl(request.mutableResourceRequest(), m_element->document()->securityOrigin(), allowCredentials); > } >+ request.setCharset(scriptCharset()); > >- m_cachedScript = m_element->document()->cachedResourceLoader()->requestScript(request, scriptCharset()); >+ m_cachedScript = m_element->document()->cachedResourceLoader()->requestScript(request); > m_isExternalScript = true; > } > >diff --git a/Source/WebCore/html/HTMLLinkElement.cpp b/Source/WebCore/html/HTMLLinkElement.cpp >index fdc7a5cce3231af9c2244e1c9f44483b84bf0131..7c96b19b1387819e202f5489e2c6209b3f44b433 100644 >--- a/Source/WebCore/html/HTMLLinkElement.cpp >+++ b/Source/WebCore/html/HTMLLinkElement.cpp >@@ -29,6 +29,7 @@ > #include "CachedCSSStyleSheet.h" > #include "CachedResource.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "DocumentStyleSheetCollection.h" > #include "EventSender.h" >@@ -220,8 +221,8 @@ void HTMLLinkElement::process() > > // Load stylesheets that are not needed for the rendering immediately with low priority. > ResourceLoadPriority priority = blocking ? ResourceLoadPriorityUnresolved : ResourceLoadPriorityVeryLow; >- ResourceRequest request(document()->completeURL(m_url)); >- m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(request, charset, priority); >+ CachedResourceRequest request(ResourceRequest(document()->completeURL(m_url)), charset, priority); >+ m_cachedSheet = document()->cachedResourceLoader()->requestCSSStyleSheet(request); > > if (m_cachedSheet) > m_cachedSheet->addClient(this); >diff --git a/Source/WebCore/loader/DocumentThreadableLoader.cpp b/Source/WebCore/loader/DocumentThreadableLoader.cpp >index 71a1ad3b197118c2ab1bcde290a3192d5c69074f..9c889cdf5ac3f03cf1c68951502e2e106e6c0e67 100644 >--- a/Source/WebCore/loader/DocumentThreadableLoader.cpp >+++ b/Source/WebCore/loader/DocumentThreadableLoader.cpp >@@ -33,6 +33,7 @@ > > #include "CachedRawResource.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "CrossOriginAccessControl.h" > #include "CrossOriginPreflightResultCache.h" > #include "Document.h" >@@ -376,17 +377,17 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Secur > options.shouldBufferData = BufferData; > } > >- ResourceRequest newRequest(request); >+ CachedResourceRequest newRequest(request, options); > #if ENABLE(INSPECTOR) > if (m_actualRequest) { > // Because willSendRequest only gets called during redirects, we initialize the identifier and the first willSendRequest here. > m_preflightRequestIdentifier = m_document->frame()->page()->progress()->createUniqueIdentifier(); > ResourceResponse redirectResponse = ResourceResponse(); >- InspectorInstrumentation::willSendRequest(m_document->frame(), m_preflightRequestIdentifier, m_document->frame()->loader()->documentLoader(), newRequest, redirectResponse); >+ InspectorInstrumentation::willSendRequest(m_document->frame(), m_preflightRequestIdentifier, m_document->frame()->loader()->documentLoader(), newRequest.mutableResourceRequest(), redirectResponse); > } > #endif > ASSERT(!m_resource); >- m_resource = m_document->cachedResourceLoader()->requestRawResource(newRequest, options); >+ m_resource = m_document->cachedResourceLoader()->requestRawResource(newRequest); > if (m_resource) { > #if ENABLE(INSPECTOR) > if (m_resource->loader()) { >diff --git a/Source/WebCore/loader/ImageLoader.cpp b/Source/WebCore/loader/ImageLoader.cpp >index a6da61e6548ef07a682dcdb7c46744842768162b..c12be2ff9d45574e41d4f4708cb96bb4d5a7ec4b 100644 >--- a/Source/WebCore/loader/ImageLoader.cpp >+++ b/Source/WebCore/loader/ImageLoader.cpp >@@ -24,6 +24,7 @@ > > #include "CachedImage.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "CrossOriginAccessControl.h" > #include "Document.h" > #include "Element.h" >@@ -177,18 +178,18 @@ void ImageLoader::updateFromElement() > // an empty string. > CachedResourceHandle<CachedImage> newImage = 0; > if (!attr.isNull() && !stripLeadingAndTrailingHTMLSpaces(attr).isEmpty()) { >- ResourceRequest request = ResourceRequest(document()->completeURL(sourceURI(attr))); >+ CachedResourceRequest request(ResourceRequest(document()->completeURL(sourceURI(attr)))); > > String crossOriginMode = client()->sourceElement()->fastGetAttribute(HTMLNames::crossoriginAttr); > if (!crossOriginMode.isNull()) { > StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials; >- updateRequestForAccessControl(request, document()->securityOrigin(), allowCredentials); >+ updateRequestForAccessControl(request.mutableResourceRequest(), document()->securityOrigin(), allowCredentials); > } > > if (m_loadManually) { > bool autoLoadOtherImages = document()->cachedResourceLoader()->autoLoadImages(); > document()->cachedResourceLoader()->setAutoLoadImages(false); >- newImage = new CachedImage(request); >+ newImage = new CachedImage(request.resourceRequest()); > newImage->setLoading(true); > newImage->setOwningCachedResourceLoader(document()->cachedResourceLoader()); > document()->cachedResourceLoader()->m_documentResources.set(newImage->url(), newImage.get()); >diff --git a/Source/WebCore/loader/LinkLoader.cpp b/Source/WebCore/loader/LinkLoader.cpp >index af25a86803c407479c10267af2667ea02ae5d2f3..e50b379d96beda73292546420eacf98ba543e1b8 100644 >--- a/Source/WebCore/loader/LinkLoader.cpp >+++ b/Source/WebCore/loader/LinkLoader.cpp >@@ -35,6 +35,7 @@ > #include "CSSStyleSheet.h" > #include "CachedCSSStyleSheet.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "ContainerNode.h" > #include "DNS.h" > #include "Document.h" >@@ -119,13 +120,13 @@ bool LinkLoader::loadLink(const LinkRelAttribute& relAttribute, const String& ty > priority = ResourceLoadPriorityLow; > type = CachedResource::LinkSubresource; > } >- ResourceRequest linkRequest(document->completeURL(href)); >+ CachedResourceRequest linkRequest(ResourceRequest(document->completeURL(href)), priority); > > if (m_cachedLinkResource) { > m_cachedLinkResource->removeClient(this); > m_cachedLinkResource = 0; > } >- m_cachedLinkResource = document->cachedResourceLoader()->requestLinkResource(type, linkRequest, priority); >+ m_cachedLinkResource = document->cachedResourceLoader()->requestLinkResource(type, linkRequest); > if (m_cachedLinkResource) > m_cachedLinkResource->addClient(this); > } >diff --git a/Source/WebCore/loader/TextTrackLoader.cpp b/Source/WebCore/loader/TextTrackLoader.cpp >index a9b7f960bf6d650300517cb0f963ada45e95a1fb..7e14b43349c850a195b66c25906136d8b80f6f40 100644 >--- a/Source/WebCore/loader/TextTrackLoader.cpp >+++ b/Source/WebCore/loader/TextTrackLoader.cpp >@@ -30,6 +30,7 @@ > #include "TextTrackLoader.h" > > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "CachedTextTrack.h" > #include "CrossOriginAccessControl.h" > #include "Document.h" >@@ -153,12 +154,12 @@ bool TextTrackLoader::load(const KURL& url, const String& crossOriginMode) > > ASSERT(m_scriptExecutionContext->isDocument()); > Document* document = static_cast<Document*>(m_scriptExecutionContext); >- ResourceRequest cueRequest(document->completeURL(url)); >+ CachedResourceRequest cueRequest(ResourceRequest(document->completeURL(url))); > > if (!crossOriginMode.isNull()) { > m_crossOriginMode = crossOriginMode; > StoredCredentials allowCredentials = equalIgnoringCase(crossOriginMode, "use-credentials") ? AllowStoredCredentials : DoNotAllowStoredCredentials; >- updateRequestForAccessControl(cueRequest, document->securityOrigin(), allowCredentials); >+ updateRequestForAccessControl(cueRequest.mutableResourceRequest(), document->securityOrigin(), allowCredentials); > } else { > // Cross-origin resources that are not suitably CORS-enabled may not load. > if (!document->securityOrigin()->canRequest(url)) { >diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp >index 1ffca4fc1e189a2782c4d89dec9f1a3c8ec4ed70..1ccaed9bf6eb878bfe4f87c46027d16ed7179d99 100644 >--- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp >+++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp >@@ -32,6 +32,7 @@ > #include "CachedFont.h" > #include "CachedImage.h" > #include "CachedRawResource.h" >+#include "CachedResourceRequest.h" > #include "CachedScript.h" > #include "CachedXSLStyleSheet.h" > #include "Console.h" >@@ -107,12 +108,6 @@ static CachedResource* createResource(CachedResource::Type type, ResourceRequest > return 0; > } > >-static const ResourceLoaderOptions& defaultCachedResourceOptions() >-{ >- static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck); >- return options; >-} >- > CachedResourceLoader::CachedResourceLoader(DocumentLoader* documentLoader) > : m_document(0) > , m_documentLoader(documentLoader) >@@ -155,56 +150,57 @@ Frame* CachedResourceLoader::frame() const > return m_documentLoader ? m_documentLoader->frame() : 0; > } > >-CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(ResourceRequest& request) >+CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest& request) > { > if (Frame* f = frame()) { > if (f->loader()->pageDismissalEventBeingDispatched() != FrameLoader::NoDismissal) { >- KURL requestURL = request.url(); >+ KURL requestURL = request.resourceRequest().url(); > if (requestURL.isValid() && canRequest(CachedResource::ImageResource, requestURL)) > PingLoader::loadImage(f, requestURL); > return 0; > } > } >- return static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, request, String(), defaultCachedResourceOptions(), ResourceLoadPriorityUnresolved, false, clientDefersImage(request.url()) ? DeferredByClient : NoDefer).get()); >+ request.setDefer(clientDefersImage(request.resourceRequest().url()) ? DeferredByClient : NoDefer); >+ return static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, request).get()); > } > >-CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(ResourceRequest& request) >+CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(CachedResourceRequest& request) > { >- return static_cast<CachedFont*>(requestResource(CachedResource::FontResource, request, String(), defaultCachedResourceOptions()).get()); >+ return static_cast<CachedFont*>(requestResource(CachedResource::FontResource, request).get()); > } > > #if ENABLE(VIDEO_TRACK) >-CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(ResourceRequest& request) >+CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(CachedResourceRequest& request) > { >- return static_cast<CachedTextTrack*>(requestResource(CachedResource::TextTrackResource, request, String(), defaultCachedResourceOptions()).get()); >+ return static_cast<CachedTextTrack*>(requestResource(CachedResource::TextTrackResource, request).get()); > } > #endif > > #if ENABLE(CSS_SHADERS) >-CachedResourceHandle<CachedShader> CachedResourceLoader::requestShader(ResourceRequest& request) >+CachedResourceHandle<CachedShader> CachedResourceLoader::requestShader(CachedResourceRequest& request) > { >- return static_cast<CachedShader*>(requestResource(CachedResource::ShaderResource, request, String(), defaultCachedResourceOptions()).get()); >+ return static_cast<CachedShader*>(requestResource(CachedResource::ShaderResource, request).get()); > } > #endif > >-CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(ResourceRequest& request, const String& charset, ResourceLoadPriority priority) >+CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(CachedResourceRequest& request) > { >- return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, request, charset, defaultCachedResourceOptions(), priority).get()); >+ return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, request).get()); > } > >-CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(ResourceRequest& request, const String& charset) >+CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(CachedResourceRequest& request) > { >- KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.url()); >+ KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.resourceRequest().url()); > > if (CachedResource* existing = memoryCache()->resourceForURL(url)) { > if (existing->type() == CachedResource::CSSStyleSheet) > return static_cast<CachedCSSStyleSheet*>(existing); > memoryCache()->remove(existing); > } >- if (url.string() != request.url()) >- request.setURL(url); >+ if (url.string() != request.resourceRequest().url()) >+ request.mutableResourceRequest().setURL(url); > >- CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(request, charset); >+ CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(request.resourceRequest(), request.charset()); > > memoryCache()->add(userSheet.get()); > // FIXME: loadResource calls setOwningCachedResourceLoader() if the resource couldn't be added to cache. Does this function need to call it, too? >@@ -214,37 +210,37 @@ CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSSt > return userSheet; > } > >-CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(ResourceRequest& request, const String& charset) >+CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedResourceRequest& request) > { >- return static_cast<CachedScript*>(requestResource(CachedResource::Script, request, charset, defaultCachedResourceOptions()).get()); >+ return static_cast<CachedScript*>(requestResource(CachedResource::Script, request).get()); > } > > #if ENABLE(XSLT) >-CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(ResourceRequest& request) >+CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(CachedResourceRequest& request) > { >- return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, request, String(), defaultCachedResourceOptions()).get()); >+ return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, request).get()); > } > #endif > > #if ENABLE(SVG) >-CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(ResourceRequest& request) >+CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(CachedResourceRequest& request) > { >- return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDocumentResource, request, String(), defaultCachedResourceOptions()).get()); >+ return static_cast<CachedSVGDocument*>(requestResource(CachedResource::SVGDocumentResource, request).get()); > } > #endif > > #if ENABLE(LINK_PREFETCH) >-CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, ResourceRequest& request, ResourceLoadPriority priority) >+CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, CachedResourceRequest& request) > { > ASSERT(frame()); > ASSERT(type == CachedResource::LinkPrefetch || type == CachedResource::LinkSubresource); >- return requestResource(type, request, String(), defaultCachedResourceOptions(), priority); >+ return requestResource(type, request); > } > #endif > >-CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(ResourceRequest& request, const ResourceLoaderOptions& options) >+CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(CachedResourceRequest& request) > { >- return static_cast<CachedRawResource*>(requestResource(CachedResource::RawResource, request, String(), options, ResourceLoadPriorityUnresolved, false).get()); >+ return static_cast<CachedRawResource*>(requestResource(CachedResource::RawResource, request).get()); > } > > bool CachedResourceLoader::checkInsecureContent(CachedResource::Type type, const KURL& url) const >@@ -402,11 +398,11 @@ bool CachedResourceLoader::canRequest(CachedResource::Type type, const KURL& url > return true; > } > >-CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, ResourceRequest& request, const String& charset, const ResourceLoaderOptions& options, ResourceLoadPriority priority, bool forPreload, DeferOption defer) >+CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest& request) > { >- KURL url = request.url(); >+ KURL url = request.resourceRequest().url(); > >- LOG(ResourceLoading, "CachedResourceLoader::requestResource '%s', charset '%s', priority=%d, forPreload=%u", url.string().latin1().data(), charset.latin1().data(), priority, forPreload); >+ LOG(ResourceLoading, "CachedResourceLoader::requestResource '%s', charset '%s', priority=%d, forPreload=%u", url.string().latin1().data(), request.charset().latin1().data(), request.priority(), request.forPreload()); > > // If only the fragment identifiers differ, it is the same resource. > url = MemoryCache::removeFragmentIdentifierIfNeeded(url); >@@ -414,7 +410,7 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache > if (!url.isValid()) > return 0; > >- if (!canRequest(type, url, forPreload)) >+ if (!canRequest(type, url, request.forPreload())) > return 0; > > if (memoryCache()->disabled()) { >@@ -428,16 +424,16 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache > // See if we can use an existing resource from the cache. > CachedResourceHandle<CachedResource> resource = memoryCache()->resourceForURL(url); > >- if (request.url() != url) >- request.setURL(url); >+ if (request.resourceRequest().url() != url) >+ request.mutableResourceRequest().setURL(url); > >- const RevalidationPolicy policy = determineRevalidationPolicy(type, request, forPreload, resource.get(), defer); >+ const RevalidationPolicy policy = determineRevalidationPolicy(type, request.mutableResourceRequest(), request.forPreload(), resource.get(), request.defer()); > switch (policy) { > case Reload: > memoryCache()->remove(resource.get()); > // Fall through > case Load: >- resource = loadResource(type, request, charset); >+ resource = loadResource(type, request.mutableResourceRequest(), request.charset()); > break; > case Revalidate: > resource = revalidateResource(resource.get()); >@@ -451,9 +447,9 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache > if (!resource) > return 0; > >- resource->setLoadPriority(priority); >- if ((policy != Use || resource->stillNeedsLoad()) && NoDefer == defer) { >- resource->load(this, options); >+ resource->setLoadPriority(request.priority()); >+ if ((policy != Use || resource->stillNeedsLoad()) && NoDefer == request.defer()) { >+ resource->load(this, request.options()); > > // We don't support immediate loads, but we do support immediate failure. > if (resource->errorOccurred()) { >@@ -463,8 +459,8 @@ CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(Cache > } > } > >- if (!request.url().protocolIsData()) >- m_validatedURLs.add(request.url()); >+ if (!request.resourceRequest().url().protocolIsData()) >+ m_validatedURLs.add(request.resourceRequest().url()); > > ASSERT(resource->url() == url.string()); > m_documentResources.set(resource->url(), resource); >@@ -793,7 +789,10 @@ void CachedResourceLoader::requestPreload(CachedResource::Type type, ResourceReq > if (type == CachedResource::Script || type == CachedResource::CSSStyleSheet) > encoding = charset.isEmpty() ? m_document->charset() : charset; > >- CachedResourceHandle<CachedResource> resource = requestResource(type, request, encoding, defaultCachedResourceOptions(), ResourceLoadPriorityUnresolved, true); >+ CachedResourceRequest cachedResourceRequest(request, encoding); >+ cachedResourceRequest.setForPreload(true); >+ >+ CachedResourceHandle<CachedResource> resource = requestResource(type, cachedResourceRequest); > if (!resource || (m_preloads && m_preloads->contains(resource.get()))) > return; > resource->increasePreloadCount(); >@@ -912,4 +911,10 @@ void CachedResourceLoader::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) > info.addMember(m_pendingPreloads); > } > >+const ResourceLoaderOptions& CachedResourceLoader::defaultCachedResourceOptions() >+{ >+ static ResourceLoaderOptions options(SendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForCrossOriginCredentials, DoSecurityCheck); >+ return options; >+} >+ > } >diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.h b/Source/WebCore/loader/cache/CachedResourceLoader.h >index 2a7985e6cb249252d8159e985e690453c6ded803..0fcb1e37d4a2982377283914519f22a2f4424f3a 100644 >--- a/Source/WebCore/loader/cache/CachedResourceLoader.h >+++ b/Source/WebCore/loader/cache/CachedResourceLoader.h >@@ -44,6 +44,7 @@ class CachedSVGDocument; > class CachedFont; > class CachedImage; > class CachedRawResource; >+class CachedResourceRequest; > class CachedScript; > class CachedShader; > class CachedTextTrack; >@@ -68,30 +69,31 @@ friend class ImageLoader; > friend class ResourceCacheValidationSuppressor; > > public: >+ enum DeferOption { NoDefer, DeferredByClient }; > static PassRefPtr<CachedResourceLoader> create(DocumentLoader* documentLoader) { return adoptRef(new CachedResourceLoader(documentLoader)); } > ~CachedResourceLoader(); > >- CachedResourceHandle<CachedImage> requestImage(ResourceRequest&); >- CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(ResourceRequest&, const String& charset, ResourceLoadPriority = ResourceLoadPriorityUnresolved); >- CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(ResourceRequest&, const String& charset); >- CachedResourceHandle<CachedScript> requestScript(ResourceRequest&, const String& charset); >- CachedResourceHandle<CachedFont> requestFont(ResourceRequest&); >- CachedResourceHandle<CachedRawResource> requestRawResource(ResourceRequest&, const ResourceLoaderOptions&); >+ CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&); >+ CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&); >+ CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&); >+ CachedResourceHandle<CachedScript> requestScript(CachedResourceRequest&); >+ CachedResourceHandle<CachedFont> requestFont(CachedResourceRequest&); >+ CachedResourceHandle<CachedRawResource> requestRawResource(CachedResourceRequest&); > > #if ENABLE(SVG) >- CachedResourceHandle<CachedSVGDocument> requestSVGDocument(ResourceRequest&); >+ CachedResourceHandle<CachedSVGDocument> requestSVGDocument(CachedResourceRequest&); > #endif > #if ENABLE(XSLT) >- CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(ResourceRequest&); >+ CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(CachedResourceRequest&); > #endif > #if ENABLE(LINK_PREFETCH) >- CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, ResourceRequest&, ResourceLoadPriority = ResourceLoadPriorityUnresolved); >+ CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, CachedResourceRequest&); > #endif > #if ENABLE(VIDEO_TRACK) >- CachedResourceHandle<CachedTextTrack> requestTextTrack(ResourceRequest&); >+ CachedResourceHandle<CachedTextTrack> requestTextTrack(CachedResourceRequest&); > #endif > #if ENABLE(CSS_SHADERS) >- CachedResourceHandle<CachedShader> requestShader(ResourceRequest&); >+ CachedResourceHandle<CachedShader> requestShader(CachedResourceRequest&); > #endif > > // Logs an access denied message to the console for the specified URL. >@@ -135,11 +137,12 @@ public: > > void reportMemoryUsage(MemoryObjectInfo*) const; > >+ static const ResourceLoaderOptions& defaultCachedResourceOptions(); >+ > private: > explicit CachedResourceLoader(DocumentLoader*); > >- enum DeferOption { NoDefer, DeferredByClient }; >- CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, ResourceRequest&, const String& charset, const ResourceLoaderOptions&, ResourceLoadPriority = ResourceLoadPriorityUnresolved, bool isPreload = false, DeferOption = NoDefer); >+ CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, CachedResourceRequest&); > CachedResourceHandle<CachedResource> revalidateResource(CachedResource*); > CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, ResourceRequest&, const String& charset); > void requestPreload(CachedResource::Type, ResourceRequest&, const String& charset); >diff --git a/Source/WebCore/loader/cache/CachedResourceRequest.cpp b/Source/WebCore/loader/cache/CachedResourceRequest.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..6add39b96cacf4deb3b4f3821cefb6258c5ec9f2 >--- /dev/null >+++ b/Source/WebCore/loader/cache/CachedResourceRequest.cpp >@@ -0,0 +1,59 @@ >+/* >+ * Copyright (C) 2012 Google, Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR >+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#include "config.h" >+#include "CachedResourceRequest.h" >+ >+namespace WebCore { >+ >+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, const String& charset, ResourceLoadPriority priority) >+ : m_resourceRequest(resourceRequest) >+ , m_charset(charset) >+ , m_options(CachedResourceLoader::defaultCachedResourceOptions()) >+ , m_priority(priority) >+ , m_forPreload(false) >+ , m_defer(CachedResourceLoader::NoDefer) >+{ >+} >+ >+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, const ResourceLoaderOptions& options) >+ : m_resourceRequest(resourceRequest) >+ , m_options(options) >+ , m_priority(ResourceLoadPriorityUnresolved) >+ , m_forPreload(false) >+ , m_defer(CachedResourceLoader::NoDefer) >+{ >+} >+ >+CachedResourceRequest::CachedResourceRequest(const ResourceRequest& resourceRequest, ResourceLoadPriority priority) >+ : m_resourceRequest(resourceRequest) >+ , m_options(CachedResourceLoader::defaultCachedResourceOptions()) >+ , m_priority(priority) >+ , m_forPreload(false) >+ , m_defer(CachedResourceLoader::NoDefer) >+{ >+} >+ >+} >diff --git a/Source/WebCore/loader/cache/CachedResourceRequest.h b/Source/WebCore/loader/cache/CachedResourceRequest.h >new file mode 100644 >index 0000000000000000000000000000000000000000..cb043dfe39fe4ced55082194be3f10df00f91bf4 >--- /dev/null >+++ b/Source/WebCore/loader/cache/CachedResourceRequest.h >@@ -0,0 +1,62 @@ >+/* >+ * Copyright (C) 2012 Google, Inc. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY >+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR >+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#ifndef CachedResourceRequest_h >+#define CachedResourceRequest_h >+ >+#include "CachedResourceLoader.h" >+#include "ResourceLoadPriority.h" >+ >+namespace WebCore { >+ >+class CachedResourceRequest { >+public: >+ explicit CachedResourceRequest(const ResourceRequest&, const String& charset = String(), ResourceLoadPriority = ResourceLoadPriorityUnresolved); >+ CachedResourceRequest(const ResourceRequest&, const ResourceLoaderOptions&); >+ CachedResourceRequest(const ResourceRequest&, ResourceLoadPriority); >+ >+ ResourceRequest& mutableResourceRequest() { return m_resourceRequest; } >+ const ResourceRequest& resourceRequest() const { return m_resourceRequest; } >+ const String& charset() const { return m_charset; } >+ void setCharset(const String& charset) { m_charset = charset; } >+ const ResourceLoaderOptions& options() const { return m_options; } >+ ResourceLoadPriority priority() const { return m_priority; } >+ bool forPreload() const { return m_forPreload; } >+ void setForPreload(bool forPreload) { m_forPreload = forPreload; } >+ CachedResourceLoader::DeferOption defer() const { return m_defer; } >+ void setDefer(CachedResourceLoader::DeferOption defer) { m_defer = defer; } >+ >+private: >+ ResourceRequest m_resourceRequest; >+ String m_charset; >+ ResourceLoaderOptions m_options; >+ ResourceLoadPriority m_priority; >+ bool m_forPreload; >+ CachedResourceLoader::DeferOption m_defer; >+}; >+ >+} // namespace WebCore >+ >+#endif >diff --git a/Source/WebCore/loader/icon/IconLoader.cpp b/Source/WebCore/loader/icon/IconLoader.cpp >index 63bc0ea1ca2174da80e15ca23de88905b145b534..8c9d0cecbfcd12b7eaa1c4a8c870f1642557f745 100644 >--- a/Source/WebCore/loader/icon/IconLoader.cpp >+++ b/Source/WebCore/loader/icon/IconLoader.cpp >@@ -28,6 +28,7 @@ > > #include "CachedRawResource.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "Frame.h" > #include "FrameLoader.h" >@@ -59,14 +60,14 @@ void IconLoader::startLoading() > if (m_resource || !m_frame->document()) > return; > >- ResourceRequest resourceRequest(m_frame->loader()->icon()->url()); >+ CachedResourceRequest request(ResourceRequest(m_frame->loader()->icon()->url()), ResourceLoaderOptions(SendCallbacks, SniffContent, BufferData, DoNotAllowStoredCredentials, DoNotAskClientForCrossOriginCredentials, DoSecurityCheck)); >+ > #if PLATFORM(BLACKBERRY) >- resourceRequest.setTargetType(ResourceRequest::TargetIsFavicon); >+ request.mutableResourceRequest().setTargetType(ResourceRequest::TargetIsFavicon); > #endif >- resourceRequest.setPriority(ResourceLoadPriorityLow); >+ request.mutableResourceRequest().setPriority(ResourceLoadPriorityLow); > >- m_resource = m_frame->document()->cachedResourceLoader()->requestRawResource(resourceRequest, >- ResourceLoaderOptions(SendCallbacks, SniffContent, BufferData, DoNotAllowStoredCredentials, DoNotAskClientForCrossOriginCredentials, DoSecurityCheck)); >+ m_resource = m_frame->document()->cachedResourceLoader()->requestRawResource(request); > if (m_resource) > m_resource->addClient(this); > else >diff --git a/Source/WebCore/svg/SVGFEImageElement.cpp b/Source/WebCore/svg/SVGFEImageElement.cpp >index 7635738fde184d1e1df48eb6fb36aecaa235d5fb..87ff0d681274460ea7978afe87fa273968857eba 100644 >--- a/Source/WebCore/svg/SVGFEImageElement.cpp >+++ b/Source/WebCore/svg/SVGFEImageElement.cpp >@@ -27,6 +27,7 @@ > #include "Attr.h" > #include "CachedImage.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "ColorSpace.h" > #include "Document.h" > #include "Image.h" >@@ -80,7 +81,7 @@ void SVGFEImageElement::clearResourceReferences() > > void SVGFEImageElement::requestImageResource() > { >- ResourceRequest request(ownerDocument()->completeURL(href())); >+ CachedResourceRequest request(ResourceRequest(ownerDocument()->completeURL(href()))); > m_cachedImage = document()->cachedResourceLoader()->requestImage(request); > > if (m_cachedImage) >diff --git a/Source/WebCore/svg/SVGFontFaceUriElement.cpp b/Source/WebCore/svg/SVGFontFaceUriElement.cpp >index f61053772b622fafe94750e099348e6770b7e807..c34fed87d47ef8ff1f1a65e27af5f6cdd3748a8b 100644 >--- a/Source/WebCore/svg/SVGFontFaceUriElement.cpp >+++ b/Source/WebCore/svg/SVGFontFaceUriElement.cpp >@@ -27,6 +27,7 @@ > #include "CSSFontFaceSrcValue.h" > #include "CachedFont.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "SVGFontFaceElement.h" > #include "SVGNames.h" >@@ -96,7 +97,7 @@ void SVGFontFaceUriElement::loadFont() > const AtomicString& href = getAttribute(XLinkNames::hrefAttr); > if (!href.isNull()) { > CachedResourceLoader* cachedResourceLoader = document()->cachedResourceLoader(); >- ResourceRequest request(document()->completeURL(href)); >+ CachedResourceRequest request(ResourceRequest(document()->completeURL(href))); > m_cachedFont = cachedResourceLoader->requestFont(request); > if (m_cachedFont) { > m_cachedFont->addClient(this); >diff --git a/Source/WebCore/svg/SVGUseElement.cpp b/Source/WebCore/svg/SVGUseElement.cpp >index d19ea195df20a2ef639f6a1e99a20b2582b950e1..6046ec61b74fc12eb13ac207244a6c6816547476 100755 >--- a/Source/WebCore/svg/SVGUseElement.cpp >+++ b/Source/WebCore/svg/SVGUseElement.cpp >@@ -29,6 +29,7 @@ > > #include "Attribute.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "ElementShadow.h" > #include "Event.h" >@@ -254,7 +255,7 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName) > if (isExternalReference) { > KURL url = document()->completeURL(href()); > if (url.hasFragmentIdentifier()) { >- ResourceRequest request(url.string()); >+ CachedResourceRequest request(ResourceRequest(url.string())); > m_cachedDocument = document()->cachedResourceLoader()->requestSVGDocument(request); > if (m_cachedDocument) > m_cachedDocument->addClient(this); >diff --git a/Source/WebCore/xml/XSLImportRule.cpp b/Source/WebCore/xml/XSLImportRule.cpp >index 0a1770d0345a8a1fc83d7b7fb2d442d2ba39eb1f..e62959e99b0d0de37d86d55557c9698ce9838138 100644 >--- a/Source/WebCore/xml/XSLImportRule.cpp >+++ b/Source/WebCore/xml/XSLImportRule.cpp >@@ -26,6 +26,7 @@ > > #include "CachedXSLStyleSheet.h" > #include "CachedResourceLoader.h" >+#include "CachedResourceRequest.h" > #include "Document.h" > #include "XSLStyleSheet.h" > >@@ -98,7 +99,7 @@ void XSLImportRule::loadSheet() > return; > } > >- ResourceRequest request(cachedResourceLoader->document()->completeURL(absHref)); >+ CachedResourceRequest request(ResourceRequest(cachedResourceLoader->document()->completeURL(absHref))); > m_cachedSheet = cachedResourceLoader->requestXSLStyleSheet(request); > > if (m_cachedSheet) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 99736
:
169450
|
169525
|
169668
|
169679
|
169698
|
169726
|
169730
|
169740
|
169741
|
169744
|
169776
|
169777
|
169809
| 169810