Changeset 206016 in webkit


Ignore:
Timestamp:
Sep 16, 2016 1:56:54 AM (8 years ago)
Author:
commit-queue@webkit.org
Message:

CachedResource should efficiently construct its ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=161609

Patch by Youenn Fablet <youenn@apple.com> on 2016-09-16
Reviewed by Sam Weinig.

Covered by existing tests.

Making CachedResourceLoader take a CachedResourceRequest&& when being asked to load resources.
Making CachedResource et al take a CachedResourceRequest&& as constructor parameter.

CachedResource now sets its options at construction time instead of load time.
This may change some specific behaviors, for instance when loading manually images.

Made some refactoring when both the resource and request are needed, for ResourceTimingInformation.
Made local copies of some CachedResourceRequest fields so that we do not need it after being WTFMoved.
Some of these properties may be put outside CachedResourceRequest in a later refactoring step.

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::cachedFont):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::loadBestFitImage):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::loadImage):

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScriptWithCache):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preloadIfNeeded):
(WebCore::LinkLoader::loadLink):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/ResourceTimingInformation.cpp:

(WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation):

  • loader/ResourceTimingInformation.h:
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::CachedFont):
(WebCore::CachedFont::load):
(WebCore::CachedFont::beginLoadIfNeeded):

  • loader/cache/CachedFont.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::load):

  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::CachedRawResource):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::loadFrom):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::resourceRequest):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::createResource):
(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestFont):
(WebCore::CachedResourceLoader::requestTextTrack):
(WebCore::CachedResourceLoader::requestCSSStyleSheet):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestScript):
(WebCore::CachedResourceLoader::requestXSLStyleSheet):
(WebCore::CachedResourceLoader::requestSVGDocument):
(WebCore::CachedResourceLoader::requestLinkResource):
(WebCore::CachedResourceLoader::requestMedia):
(WebCore::CachedResourceLoader::requestRawResource):
(WebCore::CachedResourceLoader::requestMainResource):
(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::checkForPendingPreloads):
(WebCore::CachedResourceLoader::requestPreload):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::CachedSVGDocument):

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedSVGDocumentReference.cpp:

(WebCore::CachedSVGDocumentReference::load):

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::CachedSVGFont):

  • loader/cache/CachedSVGFont.h:
  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::CachedScript):

  • loader/cache/CachedScript.h:
  • loader/cache/CachedTextTrack.cpp:

(WebCore::CachedTextTrack::CachedTextTrack):

  • loader/cache/CachedTextTrack.h:
  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
(WebCore::CachedXSLStyleSheet::didAddClient):

  • loader/cache/CachedXSLStyleSheet.h:
  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::requestImageResource):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument):

  • xml/XSLImportRule.cpp:

(WebCore::XSLImportRule::loadSheet):

Location:
trunk/Source/WebCore
Files:
48 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r206014 r206016  
     12016-09-16  Youenn Fablet  <youenn@apple.com>
     2
     3        CachedResource should efficiently construct its ResourceRequest
     4        https://bugs.webkit.org/show_bug.cgi?id=161609
     5
     6        Reviewed by Sam Weinig.
     7
     8        Covered by existing tests.
     9
     10        Making CachedResourceLoader take a CachedResourceRequest&& when being asked to load resources.
     11        Making CachedResource et al take a CachedResourceRequest&& as constructor parameter.
     12
     13        CachedResource now sets its options at construction time instead of load time.
     14        This may change some specific behaviors, for instance when loading manually images.
     15
     16        Made some refactoring when both the resource and request are needed, for ResourceTimingInformation.
     17        Made local copies of some CachedResourceRequest fields so that we do not need it after being WTFMoved.
     18        Some of these properties may be put outside CachedResourceRequest in a later refactoring step.
     19
     20        * css/CSSFontFaceSrcValue.cpp:
     21        (WebCore::CSSFontFaceSrcValue::cachedFont):
     22        * css/CSSImageSetValue.cpp:
     23        (WebCore::CSSImageSetValue::loadBestFitImage):
     24        * css/CSSImageValue.cpp:
     25        (WebCore::CSSImageValue::loadImage):
     26        * css/StyleRuleImport.cpp:
     27        (WebCore::StyleRuleImport::requestStyleSheet):
     28        * dom/ProcessingInstruction.cpp:
     29        (WebCore::ProcessingInstruction::checkStyleSheet):
     30        * dom/ScriptElement.cpp:
     31        (WebCore::ScriptElement::requestScriptWithCache):
     32        * html/HTMLLinkElement.cpp:
     33        (WebCore::HTMLLinkElement::process):
     34        * html/parser/HTMLResourcePreloader.cpp:
     35        (WebCore::HTMLResourcePreloader::preload):
     36        * loader/CrossOriginPreflightChecker.cpp:
     37        (WebCore::CrossOriginPreflightChecker::startPreflight):
     38        * loader/DocumentLoader.cpp:
     39        (WebCore::DocumentLoader::startLoadingMainResource):
     40        * loader/DocumentThreadableLoader.cpp:
     41        (WebCore::DocumentThreadableLoader::loadRequest):
     42        * loader/ImageLoader.cpp:
     43        (WebCore::ImageLoader::updateFromElement):
     44        * loader/LinkLoader.cpp:
     45        (WebCore::LinkLoader::preloadIfNeeded):
     46        (WebCore::LinkLoader::loadLink):
     47        * loader/MediaResourceLoader.cpp:
     48        (WebCore::MediaResourceLoader::requestResource):
     49        * loader/ResourceTimingInformation.cpp:
     50        (WebCore::ResourceTimingInformation::storeResourceTimingInitiatorInformation):
     51        * loader/ResourceTimingInformation.h:
     52        * loader/TextTrackLoader.cpp:
     53        (WebCore::TextTrackLoader::load):
     54        * loader/cache/CachedCSSStyleSheet.cpp:
     55        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
     56        * loader/cache/CachedCSSStyleSheet.h:
     57        * loader/cache/CachedFont.cpp:
     58        (WebCore::CachedFont::CachedFont):
     59        (WebCore::CachedFont::load):
     60        (WebCore::CachedFont::beginLoadIfNeeded):
     61        * loader/cache/CachedFont.h:
     62        * loader/cache/CachedImage.cpp:
     63        (WebCore::CachedImage::CachedImage):
     64        (WebCore::CachedImage::load):
     65        * loader/cache/CachedImage.h:
     66        * loader/cache/CachedRawResource.cpp:
     67        (WebCore::CachedRawResource::CachedRawResource):
     68        * loader/cache/CachedRawResource.h:
     69        * loader/cache/CachedResource.cpp:
     70        (WebCore::CachedResource::CachedResource):
     71        (WebCore::CachedResource::load):
     72        (WebCore::CachedResource::loadFrom):
     73        * loader/cache/CachedResource.h:
     74        (WebCore::CachedResource::resourceRequest):
     75        * loader/cache/CachedResourceLoader.cpp:
     76        (WebCore::createResource):
     77        (WebCore::CachedResourceLoader::requestImage):
     78        (WebCore::CachedResourceLoader::requestFont):
     79        (WebCore::CachedResourceLoader::requestTextTrack):
     80        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
     81        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
     82        (WebCore::CachedResourceLoader::requestScript):
     83        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
     84        (WebCore::CachedResourceLoader::requestSVGDocument):
     85        (WebCore::CachedResourceLoader::requestLinkResource):
     86        (WebCore::CachedResourceLoader::requestMedia):
     87        (WebCore::CachedResourceLoader::requestRawResource):
     88        (WebCore::CachedResourceLoader::requestMainResource):
     89        (WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
     90        (WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
     91        (WebCore::CachedResourceLoader::requestResource):
     92        (WebCore::CachedResourceLoader::revalidateResource):
     93        (WebCore::CachedResourceLoader::loadResource):
     94        (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
     95        (WebCore::CachedResourceLoader::preload):
     96        (WebCore::CachedResourceLoader::checkForPendingPreloads):
     97        (WebCore::CachedResourceLoader::requestPreload):
     98        * loader/cache/CachedResourceLoader.h:
     99        * loader/cache/CachedSVGDocument.cpp:
     100        (WebCore::CachedSVGDocument::CachedSVGDocument):
     101        * loader/cache/CachedSVGDocument.h:
     102        * loader/cache/CachedSVGDocumentReference.cpp:
     103        (WebCore::CachedSVGDocumentReference::load):
     104        * loader/cache/CachedSVGFont.cpp:
     105        (WebCore::CachedSVGFont::CachedSVGFont):
     106        * loader/cache/CachedSVGFont.h:
     107        * loader/cache/CachedScript.cpp:
     108        (WebCore::CachedScript::CachedScript):
     109        * loader/cache/CachedScript.h:
     110        * loader/cache/CachedTextTrack.cpp:
     111        (WebCore::CachedTextTrack::CachedTextTrack):
     112        * loader/cache/CachedTextTrack.h:
     113        * loader/cache/CachedXSLStyleSheet.cpp:
     114        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
     115        (WebCore::CachedXSLStyleSheet::didAddClient):
     116        * loader/cache/CachedXSLStyleSheet.h:
     117        * loader/icon/IconLoader.cpp:
     118        (WebCore::IconLoader::startLoading):
     119        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
     120        (WebCore::WebCoreAVCFResourceLoader::startLoading):
     121        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
     122        (WebCore::WebCoreAVFResourceLoader::startLoading):
     123        * svg/SVGFEImageElement.cpp:
     124        (WebCore::SVGFEImageElement::requestImageResource):
     125        * svg/SVGFontFaceUriElement.cpp:
     126        (WebCore::SVGFontFaceUriElement::loadFont):
     127        * svg/SVGUseElement.cpp:
     128        (WebCore::SVGUseElement::updateExternalDocument):
     129        * xml/XSLImportRule.cpp:
     130        (WebCore::XSLImportRule::loadSheet):
     131
    11322016-09-16  Youenn Fablet  <youenn@apple.com>
    2133
  • trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp

    r204014 r206016  
    109109    CachedResourceRequest request(ResourceRequest(document->completeURL(m_resource)), options);
    110110    request.setInitiator(cachedResourceRequestInitiators().css);
    111     m_cachedFont = document->cachedResourceLoader().requestFont(request, isSVG);
     111    m_cachedFont = document->cachedResourceLoader().requestFont(WTFMove(request), isSVG);
    112112    return m_cachedFont.get();
    113113}
  • trunk/Source/WebCore/css/CSSImageSetValue.cpp

    r205419 r206016  
    9292    Document* document = loader.document();
    9393    updateDeviceScaleFactor(*document);
    94    
     94
    9595    if (!m_accessedBestFitImage) {
    9696        m_accessedBestFitImage = true;
     
    106106            updateRequestForAccessControl(request.mutableResourceRequest(), *document->securityOrigin(), options.allowCredentials);
    107107        }
    108         m_cachedImage = loader.requestImage(request);
     108        m_cachedImage = loader.requestImage(WTFMove(request));
    109109        m_bestFitImageScaleFactor = image.scaleFactor;
    110110    }
  • trunk/Source/WebCore/css/CSSImageValue.cpp

    r205419 r206016  
    7676            updateRequestForAccessControl(request.mutableResourceRequest(), *loader.document()->securityOrigin(), options.allowCredentials);
    7777        }
    78         m_cachedImage = loader.requestImage(request);
     78        m_cachedImage = loader.requestImage(WTFMove(request));
    7979    }
    8080    return m_cachedImage.get();
  • trunk/Source/WebCore/css/StyleRuleImport.cpp

    r205660 r206016  
    120120    if (m_cachedSheet)
    121121        m_cachedSheet->removeClient(&m_styleSheetClient);
    122     if (m_parentStyleSheet->isUserStyleSheet())
    123         m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(request);
    124     else
    125         m_cachedSheet = document->cachedResourceLoader().requestCSSStyleSheet(request);
     122    if (m_parentStyleSheet->isUserStyleSheet()) {
     123        request.setOptions(ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, SkipSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::SkipPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching));
     124        m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(WTFMove(request));
     125    } else
     126        m_cachedSheet = document->cachedResourceLoader().requestCSSStyleSheet(WTFMove(request));
    126127    if (m_cachedSheet) {
    127128        // if the import rule is issued dynamically, the sheet may be
  • trunk/Source/WebCore/dom/ProcessingInstruction.cpp

    r205455 r206016  
    130130                m_cachedSheet = nullptr;
    131131            }
    132            
     132
    133133            String url = document().completeURL(href).string();
    134134            if (!dispatchBeforeLoadEvent(url))
    135135                return;
    136            
     136
    137137            m_loading = true;
    138138            document().authorStyleSheets().addPendingSheet();
    139            
     139
    140140            CachedResourceRequest request(ResourceRequest(document().completeURL(href)));
    141141#if ENABLE(XSLT)
    142142            if (m_isXSL)
    143                 m_cachedSheet = document().cachedResourceLoader().requestXSLStyleSheet(request);
     143                m_cachedSheet = document().cachedResourceLoader().requestXSLStyleSheet(WTFMove(request));
    144144            else
    145145#endif
     
    150150                request.setCharset(charset);
    151151
    152                 m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(request);
     152                m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(WTFMove(request));
    153153            }
    154154            if (m_cachedSheet)
  • trunk/Source/WebCore/dom/ScriptElement.cpp

    r205854 r206016  
    294294    request.setInitiator(&element());
    295295
    296     return m_element.document().cachedResourceLoader().requestScript(request);
     296    return m_element.document().cachedResourceLoader().requestScript(WTFMove(request));
    297297}
    298298
  • trunk/Source/WebCore/html/HTMLLinkElement.cpp

    r205455 r206016  
    272272        request.setAsPotentiallyCrossOrigin(crossOrigin(), document());
    273273
    274         m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(request);
     274        m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(WTFMove(request));
    275275
    276276        if (m_cachedSheet)
  • trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp

    r205269 r206016  
    6969        return;
    7070
    71     CachedResourceRequest request = preload->resourceRequest(m_document);
    72     m_document.cachedResourceLoader().preload(preload->resourceType(), request, preload->charset(), CachedResourceLoader::ImplicitPreload);
     71    m_document.cachedResourceLoader().preload(preload->resourceType(), preload->resourceRequest(m_document), CachedResourceLoader::ImplicitPreload);
    7372}
    7473
  • trunk/Source/WebCore/loader/CrossOriginPreflightChecker.cpp

    r205473 r206016  
    113113
    114114    ASSERT(!m_resource);
    115     m_resource = m_loader.document().cachedResourceLoader().requestRawResource(preflightRequest);
     115    m_resource = m_loader.document().cachedResourceLoader().requestRawResource(WTFMove(preflightRequest));
    116116    if (m_resource)
    117117        m_resource->addClient(this);
  • trunk/Source/WebCore/loader/DocumentLoader.cpp

    r205818 r206016  
    15111511
    15121512    static NeverDestroyed<ResourceLoaderOptions> mainResourceLoadOptions(SendCallbacks, SniffContent, BufferData, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, SkipSecurityCheck, FetchOptions::Mode::NoCors, IncludeCertificateInfo, ContentSecurityPolicyImposition::DoPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching);
    1513     CachedResourceRequest cachedResourceRequest(ResourceRequest(request), mainResourceLoadOptions);
    1514     m_mainResource = m_cachedResourceLoader->requestMainResource(cachedResourceRequest);
     1513    m_mainResource = m_cachedResourceLoader->requestMainResource(CachedResourceRequest(ResourceRequest(request), mainResourceLoadOptions));
    15151514
    15161515#if ENABLE(CONTENT_EXTENSIONS)
  • trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp

    r206009 r206016  
    373373
    374374        ASSERT(!m_resource);
    375         m_resource = m_document.cachedResourceLoader().requestRawResource(newRequest);
     375        // We create an URL here as the request will be moved in requestRawResource
     376        URL requestUrl = newRequest.resourceRequest().url();
     377        m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest));
    376378        if (m_resource)
    377379            m_resource->addClient(this);
    378380        else {
    379381            // FIXME: Since we receive a synchronous error, this is probably due to some AccessControl checks. We should try to retrieve the actual error.
    380             m_client->didFail(ResourceError(String(), 0, newRequest.resourceRequest().url(), String(), ResourceError::Type::AccessControl));
     382            m_client->didFail(ResourceError(String(), 0, requestUrl, String(), ResourceError::Type::AccessControl));
    381383        }
    382384        return;
  • trunk/Source/WebCore/loader/ImageLoader.cpp

    r205473 r206016  
    186186            bool autoLoadOtherImages = document.cachedResourceLoader().autoLoadImages();
    187187            document.cachedResourceLoader().setAutoLoadImages(false);
    188             newImage = new CachedImage(request.resourceRequest(), m_element.document().page()->sessionID());
     188            newImage = new CachedImage(WTFMove(request), m_element.document().page()->sessionID());
    189189            newImage->setStatus(CachedResource::Pending);
    190190            newImage->setLoading(true);
     
    193193            document.cachedResourceLoader().setAutoLoadImages(autoLoadOtherImages);
    194194        } else
    195             newImage = document.cachedResourceLoader().requestImage(request);
     195            newImage = document.cachedResourceLoader().requestImage(WTFMove(request));
    196196
    197197        // If we do not have an image here, it means that a cross-site
  • trunk/Source/WebCore/loader/LinkLoader.cpp

    r206010 r206016  
    164164    linkRequest.setAsPotentiallyCrossOrigin(crossOriginMode, document);
    165165    linkRequest.setForPreload(true);
    166     CachedResourceHandle<CachedResource> cachedLinkResource = document.cachedResourceLoader().preload(type.value(), linkRequest, emptyString(), CachedResourceLoader::ExplicitPreload);
     166    CachedResourceHandle<CachedResource> cachedLinkResource = document.cachedResourceLoader().preload(type.value(), WTFMove(linkRequest), CachedResourceLoader::ExplicitPreload);
    167167
    168168    if (cachedLinkResource)
     
    196196            type = CachedResource::LinkSubresource;
    197197        }
    198         CachedResourceRequest linkRequest(ResourceRequest(document.completeURL(href)), priority);
    199198
    200199        if (m_cachedLinkResource) {
     
    202201            m_cachedLinkResource = nullptr;
    203202        }
    204         m_cachedLinkResource = document.cachedResourceLoader().requestLinkResource(type, linkRequest);
     203        m_cachedLinkResource = document.cachedResourceLoader().requestLinkResource(type, CachedResourceRequest(ResourceRequest(document.completeURL(href)), priority));
    205204        if (m_cachedLinkResource)
    206205            m_cachedLinkResource->addClient(this);
  • trunk/Source/WebCore/loader/MediaResourceLoader.cpp

    r203971 r206016  
    8080#endif
    8181
    82     CachedResourceHandle<CachedRawResource> resource = m_document->cachedResourceLoader().requestMedia(cacheRequest);
     82    CachedResourceHandle<CachedRawResource> resource = m_document->cachedResourceLoader().requestMedia(WTFMove(cacheRequest));
    8383    if (!resource)
    8484        return nullptr;
  • trunk/Source/WebCore/loader/ResourceTimingInformation.cpp

    r204976 r206016  
    6060}
    6161
    62 void ResourceTimingInformation::storeResourceTimingInitiatorInformation(const CachedResourceHandle<CachedResource>& resource, const CachedResourceRequest& request, Frame* frame)
     62void ResourceTimingInformation::storeResourceTimingInitiatorInformation(const CachedResourceHandle<CachedResource>& resource, const AtomicString& initiatorName, Frame* frame)
    6363{
    6464    ASSERT(RuntimeEnabledFeatures::sharedFeatures().resourceTimingEnabled());
     
    7272        }
    7373    } else {
    74         InitiatorInfo info = { request.initiatorName(), monotonicallyIncreasingTime(), NotYetAdded };
     74        InitiatorInfo info = { initiatorName, monotonicallyIncreasingTime(), NotYetAdded };
    7575        m_initiatorMap.add(resource.get(), info);
    7676    }
  • trunk/Source/WebCore/loader/ResourceTimingInformation.h

    r204976 r206016  
    4444
    4545    void addResourceTiming(CachedResource*, Document&, const LoadTiming&);
    46     void storeResourceTimingInitiatorInformation(const CachedResourceHandle<CachedResource>&, const CachedResourceRequest&, Frame*);
     46    void storeResourceTimingInitiatorInformation(const CachedResourceHandle<CachedResource>&, const AtomicString&, Frame*);
    4747
    4848private:
  • trunk/Source/WebCore/loader/TextTrackLoader.cpp

    r205750 r206016  
    158158    cueRequest.setAsPotentiallyCrossOrigin(crossOriginMode, *document);
    159159
    160     m_resource = document->cachedResourceLoader().requestTextTrack(cueRequest);
     160    m_resource = document->cachedResourceLoader().requestTextTrack(WTFMove(cueRequest));
    161161    if (!m_resource)
    162162        return false;
  • trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp

    r206010 r206016  
    3030#include "CSSStyleSheet.h"
    3131#include "CachedResourceClientWalker.h"
     32#include "CachedResourceRequest.h"
    3233#include "CachedStyleSheetClient.h"
    3334#include "HTTPHeaderNames.h"
     
    4142namespace WebCore {
    4243
    43 CachedCSSStyleSheet::CachedCSSStyleSheet(const ResourceRequest& resourceRequest, const String& charset, SessionID sessionID)
    44     : CachedResource(resourceRequest, CSSStyleSheet, sessionID)
    45     , m_decoder(TextResourceDecoder::create("text/css", charset))
     44CachedCSSStyleSheet::CachedCSSStyleSheet(CachedResourceRequest&& request, SessionID sessionID)
     45    : CachedResource(WTFMove(request), CSSStyleSheet, sessionID)
     46    , m_decoder(TextResourceDecoder::create("text/css", request.charset()))
    4647{
    4748    // Prefer text/css but accept any type (dell.com serves a stylesheet
  • trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h

    r206010 r206016  
    3838    class CachedCSSStyleSheet final : public CachedResource {
    3939    public:
    40         CachedCSSStyleSheet(const ResourceRequest&, const String& charset, SessionID);
     40        CachedCSSStyleSheet(CachedResourceRequest&&, SessionID);
    4141        virtual ~CachedCSSStyleSheet();
    4242
  • trunk/Source/WebCore/loader/cache/CachedFont.cpp

    r201767 r206016  
    4343namespace WebCore {
    4444
    45 CachedFont::CachedFont(const ResourceRequest& resourceRequest, SessionID sessionID, Type type)
    46     : CachedResource(resourceRequest, type, sessionID)
     45CachedFont::CachedFont(CachedResourceRequest&& request, SessionID sessionID, Type type)
     46    : CachedResource(WTFMove(request), type, sessionID)
    4747    , m_loadInitiated(false)
    4848    , m_hasCreatedFontDataWrappingResource(false)
     
    5454}
    5555
    56 void CachedFont::load(CachedResourceLoader&, const ResourceLoaderOptions& options)
     56void CachedFont::load(CachedResourceLoader&)
    5757{
    5858    // Don't load the file yet.  Wait for an access before triggering the load.
    5959    setLoading(true);
    60     m_options = options;
    6160}
    6261
     
    8079    if (!m_loadInitiated) {
    8180        m_loadInitiated = true;
    82         CachedResource::load(loader, m_options);
     81        CachedResource::load(loader);
    8382    }
    8483}
  • trunk/Source/WebCore/loader/cache/CachedFont.h

    r200921 r206016  
    4444class CachedFont : public CachedResource {
    4545public:
    46     CachedFont(const ResourceRequest&, SessionID, Type = FontResource);
     46    CachedFont(CachedResourceRequest&&, SessionID, Type = FontResource);
    4747    virtual ~CachedFont();
    4848
     
    5151
    5252    virtual bool ensureCustomFontData(const AtomicString& remoteURI);
    53 
    5453    static std::unique_ptr<FontCustomPlatformData> createCustomFontData(SharedBuffer&, bool& wrapping);
    5554    static FontPlatformData platformDataFromCustomData(FontCustomPlatformData&, const FontDescription&, bool bold, bool italic, const FontFeatureSettings&, const FontVariantSettings&);
     
    6665    bool mayTryReplaceEncodedData() const override;
    6766
    68     void load(CachedResourceLoader&, const ResourceLoaderOptions&) override;
     67    void load(CachedResourceLoader&) override;
    6968
    7069    void didAddClient(CachedResourceClient*) override;
  • trunk/Source/WebCore/loader/cache/CachedImage.cpp

    r205997 r206016  
    5757namespace WebCore {
    5858
    59 CachedImage::CachedImage(const ResourceRequest& resourceRequest, SessionID sessionID)
    60     : CachedResource(resourceRequest, ImageResource, sessionID)
     59CachedImage::CachedImage(CachedResourceRequest&& request, SessionID sessionID)
     60    : CachedResource(WTFMove(request), ImageResource, sessionID)
    6161    , m_image(nullptr)
    6262    , m_isManuallyCached(false)
     
    6767
    6868CachedImage::CachedImage(Image* image, SessionID sessionID)
    69     : CachedResource(ResourceRequest(), ImageResource, sessionID)
     69    : CachedResource(CachedResourceRequest(ResourceRequest()), ImageResource, sessionID)
    7070    , m_image(image)
    7171    , m_isManuallyCached(false)
     
    7777
    7878CachedImage::CachedImage(const URL& url, Image* image, SessionID sessionID)
    79     : CachedResource(ResourceRequest(url), ImageResource, sessionID)
     79    : CachedResource(CachedResourceRequest(ResourceRequest(url)), ImageResource, sessionID)
    8080    , m_image(image)
    8181    , m_isManuallyCached(false)
     
    8787
    8888CachedImage::CachedImage(const URL& url, Image* image, CachedImage::CacheBehaviorType type, SessionID sessionID)
    89     : CachedResource(ResourceRequest(url), ImageResource, sessionID)
     89    : CachedResource(CachedResourceRequest(ResourceRequest(url)), ImageResource, sessionID)
    9090    , m_image(image)
    9191    , m_isManuallyCached(type == CachedImage::ManuallyCached)
     
    107107}
    108108
    109 void CachedImage::load(CachedResourceLoader& cachedResourceLoader, const ResourceLoaderOptions& options)
    110 {
    111     if (cachedResourceLoader.shouldPerformImageLoad(url()))
    112         CachedResource::load(cachedResourceLoader, options);
     109void CachedImage::load(CachedResourceLoader& loader)
     110{
     111    if (loader.shouldPerformImageLoad(url()))
     112        CachedResource::load(loader);
    113113    else
    114114        setLoading(false);
  • trunk/Source/WebCore/loader/cache/CachedImage.h

    r205997 r206016  
    5151    enum CacheBehaviorType { AutomaticallyCached, ManuallyCached };
    5252
    53     CachedImage(const ResourceRequest&, SessionID);
     53    CachedImage(CachedResourceRequest&&, SessionID);
    5454    CachedImage(Image*, SessionID);
    5555    CachedImage(const URL&, Image*, SessionID);
     
    6363
    6464    std::pair<Image*, float> brokenImage(float deviceScaleFactor) const; // Returns an image and the image's resolution scale factor.
    65     bool willPaintBrokenImage() const; 
     65    bool willPaintBrokenImage() const;
    6666
    6767    bool canRender(const RenderElement* renderer, float multiplier) { return !errorOccurred() && !imageSizeForRenderer(renderer, multiplier).isEmpty(); }
     
    8585    bool isManuallyCached() const { return m_isManuallyCached; }
    8686    RevalidationDecision makeRevalidationDecision(CachePolicy) const override;
    87     void load(CachedResourceLoader&, const ResourceLoaderOptions&) override;
     87    void load(CachedResourceLoader&) override;
    8888
    8989    bool isOriginClean(SecurityOrigin*);
  • trunk/Source/WebCore/loader/cache/CachedRawResource.cpp

    r204466 r206016  
    3737namespace WebCore {
    3838
    39 CachedRawResource::CachedRawResource(ResourceRequest& resourceRequest, Type type, SessionID sessionID)
    40     : CachedResource(resourceRequest, type, sessionID)
     39CachedRawResource::CachedRawResource(CachedResourceRequest&& request, Type type, SessionID sessionID)
     40    : CachedResource(WTFMove(request), type, sessionID)
    4141    , m_identifier(0)
    4242    , m_allowEncodedDataReplacement(true)
  • trunk/Source/WebCore/loader/cache/CachedRawResource.h

    r198292 r206016  
    3333class CachedRawResource final : public CachedResource {
    3434public:
    35     CachedRawResource(ResourceRequest&, Type, SessionID);
     35    CachedRawResource(CachedResourceRequest&&, Type, SessionID);
    3636
    3737    // FIXME: AssociatedURLLoader shouldn't be a DocumentThreadableLoader and therefore shouldn't
     
    4141
    4242    virtual void setDataBufferingPolicy(DataBufferingPolicy);
    43    
     43
    4444    // FIXME: This is exposed for the InpsectorInstrumentation for preflights in DocumentThreadableLoader. It's also really lame.
    4545    unsigned long identifier() const { return m_identifier; }
  • trunk/Source/WebCore/loader/cache/CachedResource.cpp

    r205805 r206016  
    113113DEFINE_DEBUG_ONLY_GLOBAL(RefCountedLeakCounter, cachedResourceLeakCounter, ("CachedResource"));
    114114
    115 CachedResource::CachedResource(const ResourceRequest& request, Type type, SessionID sessionID)
    116     : m_resourceRequest(request)
     115CachedResource::CachedResource(CachedResourceRequest&& request, Type type, SessionID sessionID)
     116    : m_resourceRequest(WTFMove(request.mutableResourceRequest()))
     117    , m_options(request.options())
    117118    , m_decodedDataDeletionTimer(*this, &CachedResource::destroyDecodedData, deadDecodedDataDeletionIntervalForResourceType(type))
    118119    , m_sessionID(sessionID)
     
    260261}
    261262
    262 void CachedResource::load(CachedResourceLoader& cachedResourceLoader, const ResourceLoaderOptions& options)
     263void CachedResource::load(CachedResourceLoader& cachedResourceLoader)
    263264{
    264265    if (!cachedResourceLoader.frame()) {
     
    280281
    281282    FrameLoader& frameLoader = frame.loader();
    282     if (options.securityCheck == DoSecurityCheck && (frameLoader.state() == FrameStateProvisional || !frameLoader.activeDocumentLoader() || frameLoader.activeDocumentLoader()->isStopping())) {
     283    if (m_options.securityCheck == DoSecurityCheck && (frameLoader.state() == FrameStateProvisional || !frameLoader.activeDocumentLoader() || frameLoader.activeDocumentLoader()->isStopping())) {
    283284        failBeforeStarting();
    284285        return;
    285286    }
    286287
    287     m_options = options;
    288288    m_loading = true;
    289289
     
    336336    }
    337337
    338     m_loader = platformStrategies()->loaderStrategy()->loadResource(frame, *this, request, options);
     338    m_loader = platformStrategies()->loaderStrategy()->loadResource(frame, *this, request, m_options);
    339339    if (!m_loader) {
    340340        failBeforeStarting();
     
    345345}
    346346
    347 void CachedResource::loadFrom(const CachedResource& resource, const ResourceLoaderOptions& options, CachedResourceLoader& cachedResourceLoader)
     347void CachedResource::loadFrom(const CachedResource& resource, CachedResourceLoader& cachedResourceLoader)
    348348{
    349349    ASSERT(url() == resource.url());
     
    351351    ASSERT(resource.status() == Status::Cached);
    352352
    353     m_options = options;
    354353    computeOrigin(cachedResourceLoader);
    355354
    356     if (isCrossOrigin() && options.mode == FetchOptions::Mode::Cors) {
     355    if (isCrossOrigin() && m_options.mode == FetchOptions::Mode::Cors) {
    357356        ASSERT(m_origin);
    358357        String errorMessage;
  • trunk/Source/WebCore/loader/cache/CachedResource.h

    r205750 r206016  
    4747class CachedResourceHandleBase;
    4848class CachedResourceLoader;
     49class CachedResourceRequest;
    4950class InspectorResource;
    5051class SecurityOrigin;
     
    9495    };
    9596
    96     CachedResource(const ResourceRequest&, Type, SessionID);
     97    CachedResource(CachedResourceRequest&&, Type, SessionID);
    9798    virtual ~CachedResource();
    9899
    99     virtual void load(CachedResourceLoader&, const ResourceLoaderOptions&);
     100    virtual void load(CachedResourceLoader&);
    100101
    101102    virtual void setEncoding(const String&) { }
     
    112113    virtual bool shouldIgnoreHTTPStatusCodeErrors() const { return false; }
    113114
     115    const ResourceRequest& resourceRequest() const { return m_resourceRequest; }
    114116    ResourceRequest& resourceRequest() { return m_resourceRequest; }
    115117    const URL& url() const { return m_resourceRequest.url();}
     
    210212    ResourceResponse::Tainting responseTainting() const { return m_responseTainting; }
    211213
    212     void loadFrom(const CachedResource&, const ResourceLoaderOptions&, CachedResourceLoader&);
     214    void loadFrom(const CachedResource&, CachedResourceLoader&);
    213215
    214216    SecurityOrigin* origin() const { return m_origin.get(); }
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r206010 r206016  
    8383namespace WebCore {
    8484
    85 static CachedResource* createResource(CachedResource::Type type, ResourceRequest& request, const String& charset, SessionID sessionID)
     85static CachedResource* createResource(CachedResource::Type type, CachedResourceRequest&& request, SessionID sessionID)
    8686{
    8787    switch (type) {
    8888    case CachedResource::ImageResource:
    89         return new CachedImage(request, sessionID);
     89        return new CachedImage(WTFMove(request), sessionID);
    9090    case CachedResource::CSSStyleSheet:
    91         return new CachedCSSStyleSheet(request, charset, sessionID);
     91        return new CachedCSSStyleSheet(WTFMove(request), sessionID);
    9292    case CachedResource::Script:
    93         return new CachedScript(request, charset, sessionID);
     93        return new CachedScript(WTFMove(request), sessionID);
    9494    case CachedResource::SVGDocumentResource:
    95         return new CachedSVGDocument(request, sessionID);
     95        return new CachedSVGDocument(WTFMove(request), sessionID);
    9696#if ENABLE(SVG_FONTS)
    9797    case CachedResource::SVGFontResource:
    98         return new CachedSVGFont(request, sessionID);
     98        return new CachedSVGFont(WTFMove(request), sessionID);
    9999#endif
    100100    case CachedResource::FontResource:
    101         return new CachedFont(request, sessionID);
     101        return new CachedFont(WTFMove(request), sessionID);
    102102    case CachedResource::MediaResource:
    103103    case CachedResource::RawResource:
    104104    case CachedResource::MainResource:
    105         return new CachedRawResource(request, type, sessionID);
     105        return new CachedRawResource(WTFMove(request), type, sessionID);
    106106#if ENABLE(XSLT)
    107107    case CachedResource::XSLStyleSheet:
    108         return new CachedXSLStyleSheet(request, sessionID);
     108        return new CachedXSLStyleSheet(WTFMove(request), sessionID);
    109109#endif
    110110#if ENABLE(LINK_PREFETCH)
    111111    case CachedResource::LinkPrefetch:
    112         return new CachedResource(request, CachedResource::LinkPrefetch, sessionID);
     112        return new CachedResource(WTFMove(request), CachedResource::LinkPrefetch, sessionID);
    113113    case CachedResource::LinkSubresource:
    114         return new CachedResource(request, CachedResource::LinkSubresource, sessionID);
     114        return new CachedResource(WTFMove(request), CachedResource::LinkSubresource, sessionID);
    115115#endif
    116116#if ENABLE(VIDEO_TRACK)
    117117    case CachedResource::TextTrackResource:
    118         return new CachedTextTrack(request, sessionID);
     118        return new CachedTextTrack(WTFMove(request), sessionID);
    119119#endif
    120120    }
     
    175175}
    176176
    177 CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest& request)
     177CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest&& request)
    178178{
    179179    if (Frame* frame = this->frame()) {
     
    187187        }
    188188    }
    189    
     189
    190190    request.setDefer(clientDefersImage(request.resourceRequest().url()) ? CachedResourceRequest::DeferredByClient : CachedResourceRequest::NoDefer);
    191     return downcast<CachedImage>(requestResource(CachedResource::ImageResource, request).get());
    192 }
    193 
    194 CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(CachedResourceRequest& request, bool isSVG)
     191    return downcast<CachedImage>(requestResource(CachedResource::ImageResource, WTFMove(request)).get());
     192}
     193
     194CachedResourceHandle<CachedFont> CachedResourceLoader::requestFont(CachedResourceRequest&& request, bool isSVG)
    195195{
    196196#if ENABLE(SVG_FONTS)
    197197    if (isSVG)
    198         return downcast<CachedSVGFont>(requestResource(CachedResource::SVGFontResource, request).get());
     198        return downcast<CachedSVGFont>(requestResource(CachedResource::SVGFontResource, WTFMove(request)).get());
    199199#else
    200200    UNUSED_PARAM(isSVG);
    201201#endif
    202     return downcast<CachedFont>(requestResource(CachedResource::FontResource, request).get());
     202    return downcast<CachedFont>(requestResource(CachedResource::FontResource, WTFMove(request)).get());
    203203}
    204204
    205205#if ENABLE(VIDEO_TRACK)
    206 CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(CachedResourceRequest& request)
    207 {
    208     return downcast<CachedTextTrack>(requestResource(CachedResource::TextTrackResource, request).get());
    209 }
    210 #endif
    211 
    212 CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(CachedResourceRequest& request)
    213 {
    214     return downcast<CachedCSSStyleSheet>(requestResource(CachedResource::CSSStyleSheet, request).get());
    215 }
    216 
    217 CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(CachedResourceRequest& request)
     206CachedResourceHandle<CachedTextTrack> CachedResourceLoader::requestTextTrack(CachedResourceRequest&& request)
     207{
     208    return downcast<CachedTextTrack>(requestResource(CachedResource::TextTrackResource, WTFMove(request)).get());
     209}
     210#endif
     211
     212CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestCSSStyleSheet(CachedResourceRequest&& request)
     213{
     214    return downcast<CachedCSSStyleSheet>(requestResource(CachedResource::CSSStyleSheet, WTFMove(request)).get());
     215}
     216
     217CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(CachedResourceRequest&& request)
    218218{
    219219    URL url = MemoryCache::removeFragmentIdentifierIfNeeded(request.resourceRequest().url());
     
    235235        request.mutableResourceRequest().setURL(url);
    236236
    237     CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(request.resourceRequest(), request.charset(), sessionID());
    238 
    239     if (request.allowsCaching())
     237    CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(WTFMove(request), sessionID());
     238
     239    if (userSheet->allowsCaching())
    240240        memoryCache.add(*userSheet);
    241241    // FIXME: loadResource calls setOwningCachedResourceLoader() if the resource couldn't be added to cache. Does this function need to call it, too?
    242242
    243     userSheet->load(*this, ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData, AllowStoredCredentials, ClientCredentialPolicy::MayAskClientForCredentials, FetchOptions::Credentials::Include, SkipSecurityCheck, FetchOptions::Mode::NoCors, DoNotIncludeCertificateInfo, ContentSecurityPolicyImposition::SkipPolicyCheck, DefersLoadingPolicy::AllowDefersLoading, CachingPolicy::AllowCaching));
    244    
     243    userSheet->load(*this);
    245244    return userSheet;
    246245}
    247246
    248 CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedResourceRequest& request)
    249 {
    250     return downcast<CachedScript>(requestResource(CachedResource::Script, request).get());
     247CachedResourceHandle<CachedScript> CachedResourceLoader::requestScript(CachedResourceRequest&& request)
     248{
     249    return downcast<CachedScript>(requestResource(CachedResource::Script, WTFMove(request)).get());
    251250}
    252251
    253252#if ENABLE(XSLT)
    254 CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(CachedResourceRequest& request)
    255 {
    256     return downcast<CachedXSLStyleSheet>(requestResource(CachedResource::XSLStyleSheet, request).get());
    257 }
    258 #endif
    259 
    260 CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(CachedResourceRequest& request)
    261 {
    262     return downcast<CachedSVGDocument>(requestResource(CachedResource::SVGDocumentResource, request).get());
     253CachedResourceHandle<CachedXSLStyleSheet> CachedResourceLoader::requestXSLStyleSheet(CachedResourceRequest&& request)
     254{
     255    return downcast<CachedXSLStyleSheet>(requestResource(CachedResource::XSLStyleSheet, WTFMove(request)).get());
     256}
     257#endif
     258
     259CachedResourceHandle<CachedSVGDocument> CachedResourceLoader::requestSVGDocument(CachedResourceRequest&& request)
     260{
     261    return downcast<CachedSVGDocument>(requestResource(CachedResource::SVGDocumentResource, WTFMove(request)).get());
    263262}
    264263
    265264#if ENABLE(LINK_PREFETCH)
    266 CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, CachedResourceRequest& request)
     265CachedResourceHandle<CachedResource> CachedResourceLoader::requestLinkResource(CachedResource::Type type, CachedResourceRequest&& request)
    267266{
    268267    ASSERT(frame());
    269268    ASSERT(type == CachedResource::LinkPrefetch || type == CachedResource::LinkSubresource);
    270     return requestResource(type, request);
    271 }
    272 #endif
    273 
    274 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMedia(CachedResourceRequest& request)
    275 {
    276     return downcast<CachedRawResource>(requestResource(CachedResource::MediaResource, request).get());
    277 }
    278 
    279 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(CachedResourceRequest& request)
    280 {
    281     return downcast<CachedRawResource>(requestResource(CachedResource::RawResource, request).get());
    282 }
    283 
    284 CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMainResource(CachedResourceRequest& request)
    285 {
    286     return downcast<CachedRawResource>(requestResource(CachedResource::MainResource, request).get());
     269    return requestResource(type, WTFMove(request));
     270}
     271#endif
     272
     273CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMedia(CachedResourceRequest&& request)
     274{
     275    return downcast<CachedRawResource>(requestResource(CachedResource::MediaResource, WTFMove(request)).get());
     276}
     277
     278CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestRawResource(CachedResourceRequest&& request)
     279{
     280    return downcast<CachedRawResource>(requestResource(CachedResource::RawResource, WTFMove(request)).get());
     281}
     282
     283CachedResourceHandle<CachedRawResource> CachedResourceLoader::requestMainResource(CachedResourceRequest&& request)
     284{
     285    return downcast<CachedRawResource>(requestResource(CachedResource::MainResource, WTFMove(request)).get());
    287286}
    288287
     
    540539}
    541540
    542 bool CachedResourceLoader::updateCachedResourceWithCurrentRequest(CachedResourceRequest& request, CachedResourceHandle<CachedResource>& resourceHandle)
    543 {
    544     ASSERT(resourceHandle);
    545 
    546     CachedResource& resource = *resourceHandle;
    547 
     541bool CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest(const CachedResource& resource, const CachedResourceRequest& request)
     542{
    548543    // FIXME: We should progressively extend this to other reusable resources
    549544    if (resource.type() != CachedResource::Type::ImageResource && resource.type() != CachedResource::Type::Script && resource.type() != CachedResource::Type::TextTrackResource && resource.type() != CachedResource::Type::CSSStyleSheet)
    550545        return false;
    551546
    552     bool shouldUpdate = resource.options().mode != request.options().mode || request.resourceRequest().httpOrigin() != resource.resourceRequest().httpOrigin();
    553 
    554     if (!shouldUpdate)
    555         return false;
    556 
     547    return resource.options().mode != request.options().mode || request.resourceRequest().httpOrigin() != resource.resourceRequest().httpOrigin();
     548}
     549
     550CachedResourceHandle<CachedResource> CachedResourceLoader::updateCachedResourceWithCurrentRequest(const CachedResource& resource, CachedResourceRequest&& request)
     551{
    557552    // FIXME: For being loaded requests, we currently do not use the same resource, as this may induce errors in the resource response tainting.
    558553    // We should find a way to improve this.
    559554    if (resource.status() != CachedResource::Cached) {
    560555        request.setCachingPolicy(CachingPolicy::DisallowCaching);
    561         resourceHandle = loadResource(resource.type(), request);
    562         return true;
    563     }
    564 
    565     resourceHandle = createResource(resource.type(), request.mutableResourceRequest(), request.charset(), sessionID());
    566     resourceHandle->loadFrom(resource, request.options(), *this);
    567     return true;
     556        return loadResource(resource.type(), WTFMove(request));
     557    }
     558
     559    auto resourceHandle = createResource(resource.type(), WTFMove(request), sessionID());
     560    resourceHandle->loadFrom(resource, *this);
     561    return resourceHandle;
    568562}
    569563
     
    578572}
    579573
    580 CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest& request)
     574CachedResourceHandle<CachedResource> CachedResourceLoader::requestResource(CachedResource::Type type, CachedResourceRequest&& request)
    581575{
    582576    if (Document* document = this->document())
    583577        document->contentSecurityPolicy()->upgradeInsecureRequestIfNeeded(request.mutableResourceRequest(), ContentSecurityPolicy::InsecureRequestType::Load);
    584    
     578
    585579    URL url = request.resourceRequest().url();
    586    
     580
    587581    LOG(ResourceLoading, "CachedResourceLoader::requestResource '%s', charset '%s', priority=%d, forPreload=%u", url.stringCenterEllipsizedToLength().latin1().data(), request.charset().latin1().data(), request.priority() ? static_cast<int>(request.priority().value()) : -1, request.forPreload());
    588    
     582
    589583    // If only the fragment identifiers differ, it is the same resource.
    590584    url = MemoryCache::removeFragmentIdentifierIfNeeded(url);
     
    603597        if (blockedStatus.blockedLoad) {
    604598            if (type == CachedResource::Type::MainResource) {
    605                 auto resource = createResource(type, request.mutableResourceRequest(), request.charset(), sessionID());
     599                auto resource = createResource(type, WTFMove(request), sessionID());
    606600                ASSERT(resource);
    607601                resource->error(CachedResource::Status::LoadError);
     
    647641
    648642    logMemoryCacheResourceRequest(frame(), resource ? DiagnosticLoggingKeys::inMemoryCacheKey() : DiagnosticLoggingKeys::notInMemoryCacheKey());
     643
     644    // These 3 fields will be used below after request is moved.
     645    // FIXME: We can rearrange the code to not require storing all 3 fields.
     646    auto forPreload = request.forPreload();
     647    auto defer = request.defer();
     648    auto priority = request.priority();
    649649
    650650    RevalidationPolicy policy = determineRevalidationPolicy(type, request, resource.get());
     
    656656        if (resource)
    657657            logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::inMemoryCacheKey(), DiagnosticLoggingKeys::unusedKey());
    658         resource = loadResource(type, request);
     658        resource = loadResource(type, WTFMove(request));
    659659        break;
    660660    case Revalidate:
    661661        if (resource)
    662662            logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::inMemoryCacheKey(), DiagnosticLoggingKeys::revalidatingKey());
    663         resource = revalidateResource(request, resource.get());
     663        resource = revalidateResource(WTFMove(request), *resource);
    664664        break;
    665665    case Use:
    666         if (updateCachedResourceWithCurrentRequest(request, resource)) {
     666        ASSERT(resource);
     667        if (shouldUpdateCachedResourceWithCurrentRequest(*resource, request)) {
     668            resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request));
    667669            if (resource->status() != CachedResource::Status::Cached)
    668670                policy = Load;
    669671        } else {
    670             ASSERT(policy == Use);
    671672            if (!shouldContinueAfterNotifyingLoadedFromMemoryCache(request, resource.get()))
    672673                return nullptr;
     
    678679                resource->response().networkLoadTiming().reset();
    679680                loadTiming.setResponseEnd(monotonicallyIncreasingTime());
    680                 m_resourceTimingInfo.storeResourceTimingInitiatorInformation(resource, request, frame());
     681                m_resourceTimingInfo.storeResourceTimingInitiatorInformation(resource, request.initiatorName(), frame());
    681682                m_resourceTimingInfo.addResourceTiming(resource.get(), *document(), loadTiming);
    682683            }
     
    689690        return nullptr;
    690691
    691     if (!request.forPreload() || policy != Use)
    692         resource->setLoadPriority(request.priority());
    693 
    694     if (!request.forPreload() && resource->loader() && resource->resourceRequest().ignoreForRequestCount()) {
     692    if (!forPreload || policy != Use)
     693        resource->setLoadPriority(priority);
     694
     695    if (!forPreload && resource->loader() && resource->resourceRequest().ignoreForRequestCount()) {
    695696        resource->resourceRequest().setIgnoreForRequestCount(false);
    696697        incrementRequestCount(*resource);
    697698    }
    698699
    699     if ((policy != Use || resource->stillNeedsLoad()) && CachedResourceRequest::NoDefer == request.defer()) {
    700         resource->load(*this, request.options());
     700    if ((policy != Use || resource->stillNeedsLoad()) && CachedResourceRequest::NoDefer == defer) {
     701        resource->load(*this);
    701702
    702703        // We don't support immediate loads, but we do support immediate failure.
     
    708709    }
    709710
    710     if (document() && !document()->loadEventFinished() && !request.resourceRequest().url().protocolIsData())
    711         m_validatedURLs.add(request.resourceRequest().url());
     711    if (document() && !document()->loadEventFinished() && !resource->resourceRequest().url().protocolIsData())
     712        m_validatedURLs.add(resource->resourceRequest().url());
    712713
    713714    ASSERT(resource->url() == url.string());
     
    721722}
    722723
    723 CachedResourceHandle<CachedResource> CachedResourceLoader::revalidateResource(const CachedResourceRequest& request, CachedResource* resource)
    724 {
    725     ASSERT(resource);
    726     ASSERT(resource->inCache());
     724CachedResourceHandle<CachedResource> CachedResourceLoader::revalidateResource(CachedResourceRequest&& request, CachedResource& resource)
     725{
     726    ASSERT(resource.inCache());
    727727    auto& memoryCache = MemoryCache::singleton();
    728728    ASSERT(!memoryCache.disabled());
    729     ASSERT(resource->canUseCacheValidator());
    730     ASSERT(!resource->resourceToRevalidate());
    731     ASSERT(resource->sessionID() == sessionID());
    732     ASSERT(resource->allowsCaching());
    733 
    734     CachedResourceHandle<CachedResource> newResource = createResource(resource->type(), resource->resourceRequest(), resource->encoding(), resource->sessionID());
    735 
    736     LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource.get(), resource);
    737     newResource->setResourceToRevalidate(resource);
    738    
    739     memoryCache.remove(*resource);
     729    ASSERT(resource.canUseCacheValidator());
     730    ASSERT(!resource.resourceToRevalidate());
     731    ASSERT(resource.sessionID() == sessionID());
     732    ASSERT(resource.allowsCaching());
     733
     734#if ENABLE(WEB_TIMING)
     735    AtomicString initiatorName = request.initiatorName();
     736#endif
     737    CachedResourceHandle<CachedResource> newResource = createResource(resource.type(), WTFMove(request), resource.sessionID());
     738
     739    LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource.get(), &resource);
     740    newResource->setResourceToRevalidate(&resource);
     741
     742    memoryCache.remove(resource);
    740743    memoryCache.add(*newResource);
    741744#if ENABLE(WEB_TIMING)
    742745    if (RuntimeEnabledFeatures::sharedFeatures().resourceTimingEnabled())
    743         m_resourceTimingInfo.storeResourceTimingInitiatorInformation(newResource, request, frame());
    744 #else
    745     UNUSED_PARAM(request);
     746        m_resourceTimingInfo.storeResourceTimingInitiatorInformation(newResource, initiatorName, frame());
    746747#endif
    747748    return newResource;
    748749}
    749750
    750 CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest& request)
     751CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest&& request)
    751752{
    752753    auto& memoryCache = MemoryCache::singleton();
     
    755756    LOG(ResourceLoading, "Loading CachedResource for '%s'.", request.resourceRequest().url().stringCenterEllipsizedToLength().latin1().data());
    756757
    757     CachedResourceHandle<CachedResource> resource = createResource(type, request.mutableResourceRequest(), request.charset(), sessionID());
    758 
    759     if (request.allowsCaching() && !memoryCache.add(*resource))
     758#if ENABLE(WEB_TIMING)
     759    AtomicString initiatorName = request.initiatorName();
     760#endif
     761    CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID());
     762
     763    if (resource->allowsCaching() && !memoryCache.add(*resource))
    760764        resource->setOwningCachedResourceLoader(this);
    761765#if ENABLE(WEB_TIMING)
    762766    if (RuntimeEnabledFeatures::sharedFeatures().resourceTimingEnabled())
    763         m_resourceTimingInfo.storeResourceTimingInitiatorInformation(resource, request, frame());
     767        m_resourceTimingInfo.storeResourceTimingInitiatorInformation(resource, initiatorName, frame());
    764768#endif
    765769    return resource;
     
    986990    for (auto& resource : m_documentResources.values()) {
    987991        if (is<CachedImage>(*resource) && resource->stillNeedsLoad() && !clientDefersImage(resource->url()))
    988             downcast<CachedImage>(*resource).load(*this, defaultCachedResourceOptions());
     992            downcast<CachedImage>(*resource).load(*this);
    989993    }
    990994}
     
    10961100}
    10971101
    1098 CachedResourceHandle<CachedResource> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest& request, const String& charset, PreloadType preloadType)
     1102CachedResourceHandle<CachedResource> CachedResourceLoader::preload(CachedResource::Type type, CachedResourceRequest&& request, PreloadType preloadType)
    10991103{
    11001104    // We always preload resources on iOS. See <https://bugs.webkit.org/show_bug.cgi?id=91276>.
     
    11071111        // Don't preload subresources that can't block the parser before we have something to draw.
    11081112        // This helps prevent preloads from delaying first display when bandwidth is limited.
    1109         PendingPreload pendingPreload = { type, request, charset };
     1113        PendingPreload pendingPreload = { type, WTFMove(request) };
    11101114        m_pendingPreloads.append(pendingPreload);
    11111115        return nullptr;
     
    11141118    UNUSED_PARAM(preloadType);
    11151119#endif
    1116     return requestPreload(type, request, charset);
    1117 }
    1118 
    1119 void CachedResourceLoader::checkForPendingPreloads() 
     1120    return requestPreload(type, WTFMove(request));
     1121}
     1122
     1123void CachedResourceLoader::checkForPendingPreloads()
    11201124{
    11211125    if (m_pendingPreloads.isEmpty())
     
    11341138        // Don't request preload if the resource already loaded normally (this will result in double load if the page is being reloaded with cached results ignored).
    11351139        if (!cachedResource(preload.m_request.resourceRequest().url()))
    1136             requestPreload(preload.m_type, preload.m_request, preload.m_charset);
     1140            requestPreload(preload.m_type, WTFMove(preload.m_request));
    11371141    }
    11381142    m_pendingPreloads.clear();
    11391143}
    11401144
    1141 CachedResourceHandle<CachedResource> CachedResourceLoader::requestPreload(CachedResource::Type type, CachedResourceRequest& request, const String& charset)
    1142 {
    1143     String encoding;
    1144     if (type == CachedResource::Script || type == CachedResource::CSSStyleSheet)
    1145         encoding = charset.isEmpty() ? m_document->charset() : charset;
    1146 
    1147     request.setCharset(encoding);
     1145CachedResourceHandle<CachedResource> CachedResourceLoader::requestPreload(CachedResource::Type type, CachedResourceRequest&& request)
     1146{
     1147    if (request.charset().isEmpty() && (type == CachedResource::Script || type == CachedResource::CSSStyleSheet))
     1148        request.setCharset(m_document->charset());
    11481149    request.setForPreload(true);
    11491150
    1150     CachedResourceHandle<CachedResource> resource = requestResource(type, request);
     1151    CachedResourceHandle<CachedResource> resource = requestResource(type, WTFMove(request));
    11511152    if (!resource || (m_preloads && m_preloads->contains(resource.get())))
    11521153        return nullptr;
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.h

    r205473 r206016  
    7373    ~CachedResourceLoader();
    7474
    75     CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&);
    76     CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&);
    77     CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&);
    78     CachedResourceHandle<CachedScript> requestScript(CachedResourceRequest&);
    79     CachedResourceHandle<CachedFont> requestFont(CachedResourceRequest&, bool isSVG);
    80     CachedResourceHandle<CachedRawResource> requestMedia(CachedResourceRequest&);
    81     CachedResourceHandle<CachedRawResource> requestRawResource(CachedResourceRequest&);
    82     CachedResourceHandle<CachedRawResource> requestMainResource(CachedResourceRequest&);
    83     CachedResourceHandle<CachedSVGDocument> requestSVGDocument(CachedResourceRequest&);
     75    CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&&);
     76    CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&&);
     77    CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&&);
     78    CachedResourceHandle<CachedScript> requestScript(CachedResourceRequest&&);
     79    CachedResourceHandle<CachedFont> requestFont(CachedResourceRequest&&, bool isSVG);
     80    CachedResourceHandle<CachedRawResource> requestMedia(CachedResourceRequest&&);
     81    CachedResourceHandle<CachedRawResource> requestRawResource(CachedResourceRequest&&);
     82    CachedResourceHandle<CachedRawResource> requestMainResource(CachedResourceRequest&&);
     83    CachedResourceHandle<CachedSVGDocument> requestSVGDocument(CachedResourceRequest&&);
    8484#if ENABLE(XSLT)
    85     CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(CachedResourceRequest&);
     85    CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(CachedResourceRequest&&);
    8686#endif
    8787#if ENABLE(LINK_PREFETCH)
    88     CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, CachedResourceRequest&);
     88    CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, CachedResourceRequest&&);
    8989#endif
    9090#if ENABLE(VIDEO_TRACK)
    91     CachedResourceHandle<CachedTextTrack> requestTextTrack(CachedResourceRequest&);
     91    CachedResourceHandle<CachedTextTrack> requestTextTrack(CachedResourceRequest&&);
    9292#endif
    9393
     
    9797    CachedResource* cachedResource(const String& url) const;
    9898    CachedResource* cachedResource(const URL& url) const;
    99    
     99
    100100    typedef HashMap<String, CachedResourceHandle<CachedResource>> DocumentResourceMap;
    101101    const DocumentResourceMap& allCachedResources() const { return m_documentResources; }
     
    132132    void clearPendingPreloads();
    133133    enum PreloadType { ImplicitPreload, ExplicitPreload };
    134     CachedResourceHandle<CachedResource> preload(CachedResource::Type, CachedResourceRequest&, const String& charset, PreloadType);
     134    CachedResourceHandle<CachedResource> preload(CachedResource::Type, CachedResourceRequest&&, PreloadType);
    135135    void checkForPendingPreloads();
    136136    void printPreloadStats();
     
    149149    explicit CachedResourceLoader(DocumentLoader*);
    150150
    151     CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, CachedResourceRequest&);
    152     CachedResourceHandle<CachedResource> revalidateResource(const CachedResourceRequest&, CachedResource*);
    153     CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&);
    154     CachedResourceHandle<CachedResource> requestPreload(CachedResource::Type, CachedResourceRequest&, const String& charset);
     151    CachedResourceHandle<CachedResource> requestResource(CachedResource::Type, CachedResourceRequest&&);
     152    CachedResourceHandle<CachedResource> revalidateResource(CachedResourceRequest&&, CachedResource&);
     153    CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&&);
     154    CachedResourceHandle<CachedResource> requestPreload(CachedResource::Type, CachedResourceRequest&&);
    155155
    156156    enum RevalidationPolicy { Use, Revalidate, Reload, Load };
    157157    RevalidationPolicy determineRevalidationPolicy(CachedResource::Type, CachedResourceRequest&, CachedResource* existingResource) const;
    158158
    159     bool updateCachedResourceWithCurrentRequest(CachedResourceRequest&, CachedResourceHandle<CachedResource>&);
     159    bool shouldUpdateCachedResourceWithCurrentRequest(const CachedResource&, const CachedResourceRequest&);
     160    CachedResourceHandle<CachedResource> updateCachedResourceWithCurrentRequest(const CachedResource&, CachedResourceRequest&&);
     161
    160162    bool shouldContinueAfterNotifyingLoadedFromMemoryCache(const CachedResourceRequest&, CachedResource*);
    161163    bool checkInsecureContent(CachedResource::Type, const URL&) const;
     
    179181        CachedResource::Type m_type;
    180182        CachedResourceRequest m_request;
    181         String m_charset;
    182183    };
    183184    Deque<PendingPreload> m_pendingPreloads;
  • trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp

    r186392 r206016  
    2828namespace WebCore {
    2929
    30 CachedSVGDocument::CachedSVGDocument(const ResourceRequest& request, SessionID sessionID)
    31     : CachedResource(request, SVGDocumentResource, sessionID)
     30CachedSVGDocument::CachedSVGDocument(CachedResourceRequest&& request, SessionID sessionID)
     31    : CachedResource(WTFMove(request), SVGDocumentResource, sessionID)
    3232    , m_decoder(TextResourceDecoder::create("application/xml"))
    3333{
  • trunk/Source/WebCore/loader/cache/CachedSVGDocument.h

    r199881 r206016  
    3333class CachedSVGDocument final : public CachedResource {
    3434public:
    35     explicit CachedSVGDocument(const ResourceRequest&, SessionID);
     35    explicit CachedSVGDocument(CachedResourceRequest&&, SessionID);
    3636    virtual ~CachedSVGDocument();
    3737
  • trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.cpp

    r191369 r206016  
    5555    CachedResourceRequest request(ResourceRequest(loader.document()->completeURL(m_url)), options);
    5656    request.setInitiator(cachedResourceRequestInitiators().css);
    57     m_document = loader.requestSVGDocument(request);
     57    m_document = loader.requestSVGDocument(WTFMove(request));
    5858    if (m_document)
    5959        m_document->addClient(this);
  • trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp

    r199014 r206016  
    4343namespace WebCore {
    4444
    45 CachedSVGFont::CachedSVGFont(const ResourceRequest& resourceRequest, SessionID sessionID)
    46     : CachedFont(resourceRequest, sessionID, SVGFontResource)
     45CachedSVGFont::CachedSVGFont(CachedResourceRequest&& request, SessionID sessionID)
     46    : CachedFont(WTFMove(request), sessionID, SVGFontResource)
    4747    , m_externalSVGFontElement(nullptr)
    4848{
  • trunk/Source/WebCore/loader/cache/CachedSVGFont.h

    r198074 r206016  
    3737class CachedSVGFont final : public CachedFont {
    3838public:
    39     CachedSVGFont(const ResourceRequest&, SessionID);
     39    CachedSVGFont(CachedResourceRequest&&, SessionID);
    4040
    4141    bool ensureCustomFontData(const AtomicString& remoteURI) override;
    42    
     42
    4343    RefPtr<Font> createFont(const FontDescription&, const AtomicString& remoteURI, bool syntheticBold, bool syntheticItalic, const FontFeatureSettings&, const FontVariantSettings&) override;
    4444
  • trunk/Source/WebCore/loader/cache/CachedScript.cpp

    r205854 r206016  
    3030#include "CachedResourceClient.h"
    3131#include "CachedResourceClientWalker.h"
     32#include "CachedResourceRequest.h"
    3233#include "HTTPHeaderNames.h"
    3334#include "HTTPParsers.h"
     
    4041namespace WebCore {
    4142
    42 CachedScript::CachedScript(const ResourceRequest& resourceRequest, const String& charset, SessionID sessionID)
    43     : CachedResource(resourceRequest, Script, sessionID)
    44     , m_decoder(TextResourceDecoder::create(ASCIILiteral("application/javascript"), charset))
     43CachedScript::CachedScript(CachedResourceRequest&& request, SessionID sessionID)
     44    : CachedResource(WTFMove(request), Script, sessionID)
     45    , m_decoder(TextResourceDecoder::create(ASCIILiteral("application/javascript"), request.charset()))
    4546{
    4647    // It's javascript we want.
  • trunk/Source/WebCore/loader/cache/CachedScript.h

    r205854 r206016  
    3535class CachedScript final : public CachedResource {
    3636public:
    37     CachedScript(const ResourceRequest&, const String& charset, SessionID);
     37    CachedScript(CachedResourceRequest&&, SessionID);
    3838    virtual ~CachedScript();
    3939
  • trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp

    r204466 r206016  
    3838namespace WebCore {
    3939
    40 CachedTextTrack::CachedTextTrack(const ResourceRequest& resourceRequest, SessionID sessionID)
    41     : CachedResource(resourceRequest, TextTrackResource, sessionID)
     40CachedTextTrack::CachedTextTrack(CachedResourceRequest&& request, SessionID sessionID)
     41    : CachedResource(WTFMove(request), TextTrackResource, sessionID)
    4242{
    4343}
  • trunk/Source/WebCore/loader/cache/CachedTextTrack.h

    r197563 r206016  
    3636class CachedTextTrack final : public CachedResource {
    3737public:
    38     CachedTextTrack(const ResourceRequest&, SessionID);
     38    CachedTextTrack(CachedResourceRequest&&, SessionID);
    3939
    4040private:
  • trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp

    r204466 r206016  
    3737#if ENABLE(XSLT)
    3838
    39 CachedXSLStyleSheet::CachedXSLStyleSheet(const ResourceRequest& resourceRequest, SessionID sessionID)
    40     : CachedResource(resourceRequest, XSLStyleSheet, sessionID)
     39CachedXSLStyleSheet::CachedXSLStyleSheet(CachedResourceRequest&& request, SessionID sessionID)
     40    : CachedResource(WTFMove(request), XSLStyleSheet, sessionID)
    4141    , m_decoder(TextResourceDecoder::create("text/xsl"))
    4242{
     
    5151
    5252void CachedXSLStyleSheet::didAddClient(CachedResourceClient* c)
    53 { 
     53{
    5454    ASSERT(c->resourceClientType() == CachedStyleSheetClient::expectedType());
    5555    if (!isLoading())
  • trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h

    r199881 r206016  
    3737class CachedXSLStyleSheet final : public CachedResource {
    3838public:
    39     CachedXSLStyleSheet(const ResourceRequest&, SessionID);
     39    CachedXSLStyleSheet(CachedResourceRequest&&, SessionID);
    4040    virtual ~CachedXSLStyleSheet();
    4141
  • trunk/Source/WebCore/loader/icon/IconLoader.cpp

    r203720 r206016  
    6565    request.setInitiator(cachedResourceRequestInitiators().icon);
    6666
    67     m_resource = m_frame.document()->cachedResourceLoader().requestRawResource(request);
     67    m_resource = m_frame.document()->cachedResourceLoader().requestRawResource(WTFMove(request));
    6868    if (m_resource)
    6969        m_resource->addClient(this);
  • trunk/Source/WebCore/platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp

    r203720 r206016  
    7676    request.mutableResourceRequest().setPriority(ResourceLoadPriority::Low);
    7777    CachedResourceLoader* loader = m_parent->player()->cachedResourceLoader();
    78     m_resource = loader ? loader->requestRawResource(request) : 0;
     78    m_resource = loader ? loader->requestRawResource(WTFMove(request)) : 0;
    7979    if (m_resource)
    8080        m_resource->addClient(this);
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm

    r203720 r206016  
    7373    request.mutableResourceRequest().setPriority(ResourceLoadPriority::Low);
    7474    if (auto* loader = m_parent->player()->cachedResourceLoader())
    75         m_resource = loader->requestMedia(request);
     75        m_resource = loader->requestMedia(WTFMove(request));
    7676
    7777    if (m_resource)
  • trunk/Source/WebCore/svg/SVGFEImageElement.cpp

    r204014 r206016  
    9191    CachedResourceRequest request(ResourceRequest(document().completeURL(href())), options);
    9292    request.setInitiator(this);
    93     m_cachedImage = document().cachedResourceLoader().requestImage(request);
     93    m_cachedImage = document().cachedResourceLoader().requestImage(WTFMove(request));
    9494
    9595    if (m_cachedImage)
  • trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp

    r204014 r206016  
    107107        CachedResourceRequest request(ResourceRequest(document().completeURL(href)), options);
    108108        request.setInitiator(this);
    109         m_cachedFont = cachedResourceLoader.requestFont(request, isSVGFontTarget(*this));
     109        m_cachedFont = cachedResourceLoader.requestFont(WTFMove(request), isSVGFontTarget(*this));
    110110        if (m_cachedFont) {
    111111            m_cachedFont->addClient(this);
  • trunk/Source/WebCore/svg/SVGUseElement.cpp

    r204014 r206016  
    574574        CachedResourceRequest request { ResourceRequest { externalDocumentURL }, options };
    575575        request.setInitiator(this);
    576         m_externalDocument = document().cachedResourceLoader().requestSVGDocument(request);
     576        m_externalDocument = document().cachedResourceLoader().requestSVGDocument(WTFMove(request));
    577577        if (m_externalDocument)
    578578            m_externalDocument->addClient(this);
  • trunk/Source/WebCore/xml/XSLImportRule.cpp

    r184622 r206016  
    9191        // use parent styleheet's URL as the base URL
    9292        absHref = URL(parentSheet->baseURL(), m_strHref).string();
    93    
     93
    9494    // Check for a cycle in our import chain.  If we encounter a stylesheet
    9595    // in our parent chain with the same URL, then just bail.
     
    9898            return;
    9999    }
    100    
    101     CachedResourceRequest request(ResourceRequest(cachedResourceLoader->document()->completeURL(absHref)));
     100
    102101    if (m_cachedSheet)
    103102        m_cachedSheet->removeClient(this);
    104     m_cachedSheet = cachedResourceLoader->requestXSLStyleSheet(request);
    105    
     103    m_cachedSheet = cachedResourceLoader->requestXSLStyleSheet(CachedResourceRequest(ResourceRequest(cachedResourceLoader->document()->completeURL(absHref))));
     104
    106105    if (m_cachedSheet) {
    107106        m_cachedSheet->addClient(this);
    108        
     107
    109108        // If the imported sheet is in the cache, then setXSLStyleSheet gets called,
    110109        // and the sheet even gets parsed (via parseString).  In this case we have
Note: See TracChangeset for help on using the changeset viewer.