Diff
Modified: trunk/Source/WebCore/ChangeLog (179241 => 179242)
--- trunk/Source/WebCore/ChangeLog 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/ChangeLog 2015-01-28 05:53:53 UTC (rev 179242)
@@ -1,3 +1,15 @@
+2015-01-27 Chris Dumez <[email protected]>
+
+ Use a Ref<CachedResourceLoader> in Document instead of a RefPtr
+ https://bugs.webkit.org/show_bug.cgi?id=140971
+
+ Reviewed by Andreas Kling.
+
+ Use a Ref<CachedResourceLoader> in Document instead of a RefPtr as it
+ can never be null. Also have Document::cachedResourceLoader() return a
+ reference instead of a pointer. This gets rid of a lot of unnecessary
+ null-checks.
+
2015-01-27 Alexey Proskuryakov <[email protected]>
More build fixes for newer clang.
Modified: trunk/Source/WebCore/css/CSSCanvasValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSCanvasValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSCanvasValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -45,7 +45,7 @@
FloatSize fixedSize(const RenderElement*);
bool isPending() const { return false; }
- void loadSubimages(CachedResourceLoader*) { }
+ void loadSubimages(CachedResourceLoader&) { }
bool equals(const CSSCanvasValue&) const;
Modified: trunk/Source/WebCore/css/CSSCrossfadeValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSCrossfadeValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSCrossfadeValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -84,7 +84,7 @@
float percentage = m_percentageValue->getFloatValue();
float inversePercentage = 1 - percentage;
- CachedResourceLoader* cachedResourceLoader = renderer->document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = renderer->document().cachedResourceLoader();
CachedImage* cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), cachedResourceLoader);
CachedImage* cachedToImage = cachedImageForCSSValue(m_toValue.get(), cachedResourceLoader);
@@ -114,7 +114,7 @@
return subimageKnownToBeOpaque(*m_fromValue, renderer) && subimageKnownToBeOpaque(*m_toValue, renderer);
}
-void CSSCrossfadeValue::loadSubimages(CachedResourceLoader* cachedResourceLoader)
+void CSSCrossfadeValue::loadSubimages(CachedResourceLoader& cachedResourceLoader)
{
CachedResourceHandle<CachedImage> oldCachedFromImage = m_cachedFromImage;
CachedResourceHandle<CachedImage> oldCachedToImage = m_cachedToImage;
@@ -142,9 +142,9 @@
PassRefPtr<Image> CSSCrossfadeValue::image(RenderElement* renderer, const FloatSize& size)
{
if (size.isEmpty())
- return 0;
+ return nullptr;
- CachedResourceLoader* cachedResourceLoader = renderer->document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = renderer->document().cachedResourceLoader();
CachedImage* cachedFromImage = cachedImageForCSSValue(m_fromValue.get(), cachedResourceLoader);
CachedImage* cachedToImage = cachedImageForCSSValue(m_toValue.get(), cachedResourceLoader);
Modified: trunk/Source/WebCore/css/CSSCrossfadeValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSCrossfadeValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSCrossfadeValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -59,7 +59,7 @@
bool isPending() const;
bool knownToBeOpaque(const RenderElement*) const;
- void loadSubimages(CachedResourceLoader*);
+ void loadSubimages(CachedResourceLoader&);
void setPercentage(PassRefPtr<CSSPrimitiveValue> percentageValue) { m_percentageValue = percentageValue; }
Modified: trunk/Source/WebCore/css/CSSCursorImageValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSCursorImageValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSCursorImageValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -130,7 +130,7 @@
return false;
}
-StyleImage* CSSCursorImageValue::cachedImage(CachedResourceLoader* loader)
+StyleImage* CSSCursorImageValue::cachedImage(CachedResourceLoader& loader)
{
#if ENABLE(CSS_IMAGE_SET)
if (is<CSSImageSetValue>(m_imageValue.get()))
@@ -143,9 +143,9 @@
// For SVG images we need to lazily substitute in the correct URL. Rather than attempt
// to change the URL of the CSSImageValue (which would then change behavior like cssText),
// we create an alternate CSSImageValue to use.
- if (isSVGCursor() && loader && loader->document()) {
+ if (isSVGCursor() && loader.document()) {
// FIXME: This will fail if the <cursor> element is in a shadow DOM (bug 59827)
- if (SVGCursorElement* cursorElement = resourceReferencedByCursorElement(downcast<CSSImageValue>(m_imageValue.get()).url(), *loader->document())) {
+ if (SVGCursorElement* cursorElement = resourceReferencedByCursorElement(downcast<CSSImageValue>(m_imageValue.get()).url(), *loader.document())) {
detachPendingImage();
Ref<CSSImageValue> svgImageValue(CSSImageValue::create(cursorElement->href()));
StyleCachedImage* cachedImage = svgImageValue->cachedImage(loader);
Modified: trunk/Source/WebCore/css/CSSCursorImageValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSCursorImageValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSCursorImageValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -52,7 +52,7 @@
String customCSSText() const;
bool updateIfSVGCursorIsUsed(Element*);
- StyleImage* cachedImage(CachedResourceLoader*);
+ StyleImage* cachedImage(CachedResourceLoader&);
StyleImage* cachedOrPendingImage(Document&);
void removeReferencedElement(SVGElement*);
Modified: trunk/Source/WebCore/css/CSSFilterImageValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSFilterImageValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -60,7 +60,7 @@
FloatSize CSSFilterImageValue::fixedSize(const RenderElement* renderer)
{
- CachedResourceLoader* cachedResourceLoader = renderer->document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = renderer->document().cachedResourceLoader();
CachedImage* cachedImage = cachedImageForCSSValue(m_imageValue.get(), cachedResourceLoader);
if (!cachedImage)
@@ -79,7 +79,7 @@
return false;
}
-void CSSFilterImageValue::loadSubimages(CachedResourceLoader* cachedResourceLoader)
+void CSSFilterImageValue::loadSubimages(CachedResourceLoader& cachedResourceLoader)
{
CachedResourceHandle<CachedImage> oldCachedImage = m_cachedImage;
@@ -98,9 +98,9 @@
PassRefPtr<Image> CSSFilterImageValue::image(RenderElement* renderer, const FloatSize& size)
{
if (size.isEmpty())
- return 0;
+ return nullptr;
- CachedResourceLoader* cachedResourceLoader = renderer->document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = renderer->document().cachedResourceLoader();
CachedImage* cachedImage = cachedImageForCSSValue(m_imageValue.get(), cachedResourceLoader);
if (!cachedImage)
Modified: trunk/Source/WebCore/css/CSSFilterImageValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSFilterImageValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSFilterImageValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -62,7 +62,7 @@
bool isPending() const;
bool knownToBeOpaque(const RenderElement*) const;
- void loadSubimages(CachedResourceLoader*);
+ void loadSubimages(CachedResourceLoader&);
bool hasFailedOrCanceledSubresources() const;
Modified: trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSFontFaceSrcValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -103,7 +103,7 @@
if (!m_cachedFont) {
CachedResourceRequest request(ResourceRequest(document->completeURL(m_resource)));
request.setInitiator(cachedResourceRequestInitiators().css);
- m_cachedFont = document->cachedResourceLoader()->requestFont(request, isSVG);
+ m_cachedFont = document->cachedResourceLoader().requestFont(request, isSVG);
}
return m_cachedFont.get();
}
Modified: trunk/Source/WebCore/css/CSSFontSelector.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSFontSelector.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSFontSelector.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -540,15 +540,14 @@
m_beginLoadingTimer.stop();
- CachedResourceLoader* cachedResourceLoader = m_document->cachedResourceLoader();
- for (size_t i = 0; i < m_fontsToBeginLoading.size(); ++i) {
+ CachedResourceLoader& cachedResourceLoader = m_document->cachedResourceLoader();
+ for (auto& fontHandle : m_fontsToBeginLoading) {
// Balances incrementRequestCount() in beginLoadingFontSoon().
- cachedResourceLoader->decrementRequestCount(m_fontsToBeginLoading[i].get());
+ cachedResourceLoader.decrementRequestCount(fontHandle.get());
}
-
m_fontsToBeginLoading.clear();
- m_document = 0;
+ m_document = nullptr;
}
void CSSFontSelector::beginLoadingFontSoon(CachedFont* font)
@@ -560,7 +559,7 @@
// Increment the request count now, in order to prevent didFinishLoad from being dispatched
// after this font has been requested but before it began loading. Balanced by
// decrementRequestCount() in beginLoadTimerFired() and in clearDocument().
- m_document->cachedResourceLoader()->incrementRequestCount(font);
+ m_document->cachedResourceLoader().incrementRequestCount(font);
m_beginLoadingTimer.startOneShot(0);
}
@@ -572,14 +571,14 @@
// CSSFontSelector could get deleted via beginLoadIfNeeded() or loadDone() unless protected.
Ref<CSSFontSelector> protect(*this);
- CachedResourceLoader* cachedResourceLoader = m_document->cachedResourceLoader();
- for (size_t i = 0; i < fontsToBeginLoading.size(); ++i) {
- fontsToBeginLoading[i]->beginLoadIfNeeded(cachedResourceLoader);
+ CachedResourceLoader& cachedResourceLoader = m_document->cachedResourceLoader();
+ for (auto& fontHandle : fontsToBeginLoading) {
+ fontHandle->beginLoadIfNeeded(cachedResourceLoader);
// Balances incrementRequestCount() in beginLoadingFontSoon().
- cachedResourceLoader->decrementRequestCount(fontsToBeginLoading[i].get());
+ cachedResourceLoader.decrementRequestCount(fontHandle.get());
}
// Ensure that if the request count reaches zero, the frame loader will know about it.
- cachedResourceLoader->loadDone(0);
+ cachedResourceLoader.loadDone(nullptr);
// New font loads may be triggered by layout after the document load is complete but before we have dispatched
// didFinishLoading for the frame. Make sure the delegate is always dispatched by checking explicitly.
if (m_document && m_document->frame())
Modified: trunk/Source/WebCore/css/CSSGradientValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSGradientValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSGradientValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -85,7 +85,7 @@
bool isPending() const { return false; }
bool knownToBeOpaque(const RenderElement*) const;
- void loadSubimages(CachedResourceLoader*) { }
+ void loadSubimages(CachedResourceLoader&) { }
PassRefPtr<CSSGradientValue> gradientWithStylesResolved(StyleResolver*);
protected:
Modified: trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageGeneratorValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -200,7 +200,7 @@
return false;
}
-void CSSImageGeneratorValue::loadSubimages(CachedResourceLoader* cachedResourceLoader)
+void CSSImageGeneratorValue::loadSubimages(CachedResourceLoader& cachedResourceLoader)
{
switch (classType()) {
case CrossfadeClass:
@@ -239,7 +239,7 @@
return false;
}
-CachedImage* CSSImageGeneratorValue::cachedImageForCSSValue(CSSValue* value, CachedResourceLoader* cachedResourceLoader)
+CachedImage* CSSImageGeneratorValue::cachedImageForCSSValue(CSSValue* value, CachedResourceLoader& cachedResourceLoader)
{
if (!value)
return nullptr;
Modified: trunk/Source/WebCore/css/CSSImageGeneratorValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageGeneratorValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageGeneratorValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -56,7 +56,7 @@
bool isPending() const;
bool knownToBeOpaque(const RenderElement*) const;
- void loadSubimages(CachedResourceLoader*);
+ void loadSubimages(CachedResourceLoader&);
protected:
CSSImageGeneratorValue(ClassType);
@@ -66,7 +66,7 @@
const HashCountedSet<RenderElement*>& clients() const { return m_clients; }
// Helper functions for Crossfade and Filter.
- static CachedImage* cachedImageForCSSValue(CSSValue*, CachedResourceLoader*);
+ static CachedImage* cachedImageForCSSValue(CSSValue*, CachedResourceLoader&);
static bool subimageIsPending(CSSValue*);
private:
Modified: trunk/Source/WebCore/css/CSSImageSetValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageSetValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageSetValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -100,11 +100,9 @@
return image;
}
-StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader, const ResourceLoaderOptions& options)
+StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader& loader, const ResourceLoaderOptions& options)
{
- ASSERT(loader);
-
- Document* document = loader->document();
+ Document* document = loader.document();
if (Page* page = document->page())
m_scaleFactor = page->deviceScaleFactor();
else
@@ -122,7 +120,7 @@
request.setInitiator(cachedResourceRequestInitiators().css);
if (options.requestOriginPolicy() == PotentiallyCrossOriginEnabled)
updateRequestForAccessControl(request.mutableResourceRequest(), document->securityOrigin(), options.allowCredentials());
- if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) {
+ if (CachedResourceHandle<CachedImage> cachedImage = loader.requestImage(request)) {
detachPendingImage();
m_imageSet = StyleCachedImageSet::create(cachedImage.get(), image.scaleFactor, this);
m_accessedBestFitImage = true;
@@ -132,7 +130,7 @@
return is<StyleCachedImageSet>(m_imageSet.get()) ? downcast<StyleCachedImageSet>(m_imageSet.get()) : nullptr;
}
-StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader* loader)
+StyleCachedImageSet* CSSImageSetValue::cachedImageSet(CachedResourceLoader& loader)
{
return cachedImageSet(loader, CachedResourceLoader::defaultCachedResourceOptions());
}
Modified: trunk/Source/WebCore/css/CSSImageSetValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageSetValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageSetValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -47,8 +47,8 @@
}
~CSSImageSetValue();
- StyleCachedImageSet* cachedImageSet(CachedResourceLoader*, const ResourceLoaderOptions&);
- StyleCachedImageSet* cachedImageSet(CachedResourceLoader*);
+ StyleCachedImageSet* cachedImageSet(CachedResourceLoader&, const ResourceLoaderOptions&);
+ StyleCachedImageSet* cachedImageSet(CachedResourceLoader&);
// Returns a StyleCachedImageSet if the best fit image has been cached already, otherwise a StylePendingImage.
StyleImage* cachedOrPendingImageSet(Document&);
Modified: trunk/Source/WebCore/css/CSSImageValue.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageValue.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageValue.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -71,23 +71,21 @@
return m_image.get();
}
-StyleCachedImage* CSSImageValue::cachedImage(CachedResourceLoader* loader, const ResourceLoaderOptions& options)
+StyleCachedImage* CSSImageValue::cachedImage(CachedResourceLoader& loader, const ResourceLoaderOptions& options)
{
- ASSERT(loader);
-
if (!m_accessedImage) {
m_accessedImage = true;
- CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(m_url)), options);
+ CachedResourceRequest request(ResourceRequest(loader.document()->completeURL(m_url)), options);
if (m_initiatorName.isEmpty())
request.setInitiator(cachedResourceRequestInitiators().css);
else
request.setInitiator(m_initiatorName);
if (options.requestOriginPolicy() == PotentiallyCrossOriginEnabled)
- updateRequestForAccessControl(request.mutableResourceRequest(), loader->document()->securityOrigin(), options.allowCredentials());
+ updateRequestForAccessControl(request.mutableResourceRequest(), loader.document()->securityOrigin(), options.allowCredentials());
- if (CachedResourceHandle<CachedImage> cachedImage = loader->requestImage(request)) {
+ if (CachedResourceHandle<CachedImage> cachedImage = loader.requestImage(request)) {
detachPendingImage();
m_image = StyleCachedImage::create(cachedImage.get());
}
@@ -96,7 +94,7 @@
return is<StyleCachedImage>(m_image.get()) ? downcast<StyleCachedImage>(m_image.get()) : nullptr;
}
-StyleCachedImage* CSSImageValue::cachedImage(CachedResourceLoader* loader)
+StyleCachedImage* CSSImageValue::cachedImage(CachedResourceLoader& loader)
{
return cachedImage(loader, CachedResourceLoader::defaultCachedResourceOptions());
}
Modified: trunk/Source/WebCore/css/CSSImageValue.h (179241 => 179242)
--- trunk/Source/WebCore/css/CSSImageValue.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/CSSImageValue.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -39,8 +39,8 @@
static Ref<CSSImageValue> create(const String& url, StyleImage* image) { return adoptRef(*new CSSImageValue(url, image)); }
~CSSImageValue();
- StyleCachedImage* cachedImage(CachedResourceLoader*, const ResourceLoaderOptions&);
- StyleCachedImage* cachedImage(CachedResourceLoader*);
+ StyleCachedImage* cachedImage(CachedResourceLoader&, const ResourceLoaderOptions&);
+ StyleCachedImage* cachedImage(CachedResourceLoader&);
// Returns a StyleCachedImage if the image is cached already, otherwise a StylePendingImage.
StyleImage* cachedOrPendingImage();
Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (179241 => 179242)
--- trunk/Source/WebCore/css/StyleBuilderConverter.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -1059,7 +1059,7 @@
URL url = ""
bool isExternalDocument = SVGURIReference::isExternalURIReference(cssUrl, styleResolver.document());
- newMaskImage = MaskImageOperation::create(maskImageValue, cssUrl, url.fragmentIdentifier(), isExternalDocument, styleResolver.document().cachedResourceLoader());
+ newMaskImage = MaskImageOperation::create(maskImageValue, cssUrl, url.fragmentIdentifier(), isExternalDocument, &styleResolver.document().cachedResourceLoader());
if (isExternalDocument)
styleResolver.state().maskImagesWithPendingSVGDocuments().append(newMaskImage);
}
Modified: trunk/Source/WebCore/css/StyleResolver.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/StyleResolver.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/StyleResolver.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -2229,7 +2229,7 @@
if (!hasFilters && !hasMasks)
return;
- CachedResourceLoader* cachedResourceLoader = state.document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = state.document().cachedResourceLoader();
if (hasFilters) {
for (auto& filterOperation : state.filtersWithPendingSVGDocuments())
Modified: trunk/Source/WebCore/css/StyleRuleImport.cpp (179241 => 179242)
--- trunk/Source/WebCore/css/StyleRuleImport.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/css/StyleRuleImport.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -96,10 +96,6 @@
if (!document)
return;
- CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader();
- if (!cachedResourceLoader)
- return;
-
URL absURL;
if (!m_parentStyleSheet->baseURL().isNull())
// use parent styleheet's URL as the base URL
@@ -122,9 +118,9 @@
if (m_cachedSheet)
m_cachedSheet->removeClient(&m_styleSheetClient);
if (m_parentStyleSheet->isUserStyleSheet())
- m_cachedSheet = cachedResourceLoader->requestUserCSSStyleSheet(request);
+ m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(request);
else
- m_cachedSheet = cachedResourceLoader->requestCSSStyleSheet(request);
+ m_cachedSheet = document->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
Modified: trunk/Source/WebCore/dom/Document.cpp (179241 => 179242)
--- trunk/Source/WebCore/dom/Document.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/dom/Document.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -415,6 +415,7 @@
, m_ignorePendingStylesheets(false)
, m_pendingSheetLayout(NoLayoutWithPendingSheets)
, m_frame(frame)
+ , m_cachedResourceLoader(m_frame ? Ref<CachedResourceLoader>(m_frame->loader().activeDocumentLoader()->cachedResourceLoader()) : CachedResourceLoader::create(nullptr))
, m_activeParserCount(0)
, m_wellFormed(false)
, m_printing(false)
@@ -528,10 +529,6 @@
if ((frame && frame->ownerElement()) || !url.isEmpty())
setURL(url);
- if (m_frame)
- m_cachedResourceLoader = &m_frame->loader().activeDocumentLoader()->cachedResourceLoader();
- if (!m_cachedResourceLoader)
- m_cachedResourceLoader = CachedResourceLoader::create(nullptr);
m_cachedResourceLoader->setDocument(this);
#if ENABLE(TEXT_AUTOSIZING)
@@ -625,7 +622,6 @@
// load the initial empty document and the SVGDocument with the same DocumentLoader).
if (m_cachedResourceLoader->document() == this)
m_cachedResourceLoader->setDocument(nullptr);
- m_cachedResourceLoader.clear();
// We must call clearRareData() here since a Document class inherits TreeScope
// as well as Node. See a comment on TreeScope.h for the reason.
@@ -3816,8 +3812,7 @@
return;
m_domWindow->dispatchLoadEvent();
m_loadEventFinished = true;
- if (m_cachedResourceLoader)
- m_cachedResourceLoader->documentDidFinishLoadEvent();
+ m_cachedResourceLoader->documentDidFinishLoadEvent();
}
void Document::enqueueWindowEvent(PassRefPtr<Event> event)
Modified: trunk/Source/WebCore/dom/Document.h (179241 => 179242)
--- trunk/Source/WebCore/dom/Document.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/dom/Document.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -623,7 +623,7 @@
// auto is specified.
WEBCORE_EXPORT void pageSizeAndMarginsInPixels(int pageIndex, IntSize& pageSize, int& marginTop, int& marginRight, int& marginBottom, int& marginLeft);
- CachedResourceLoader* cachedResourceLoader() { return m_cachedResourceLoader.get(); }
+ CachedResourceLoader& cachedResourceLoader() { return m_cachedResourceLoader; }
void didBecomeCurrentDocumentInFrame();
void destroyRenderTree();
@@ -1395,7 +1395,7 @@
Frame* m_frame;
RefPtr<DOMWindow> m_domWindow;
- RefPtr<CachedResourceLoader> m_cachedResourceLoader;
+ Ref<CachedResourceLoader> m_cachedResourceLoader;
RefPtr<DocumentParser> m_parser;
unsigned m_activeParserCount;
Modified: trunk/Source/WebCore/dom/ProcessingInstruction.cpp (179241 => 179242)
--- trunk/Source/WebCore/dom/ProcessingInstruction.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/dom/ProcessingInstruction.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -147,7 +147,7 @@
CachedResourceRequest request(ResourceRequest(document().completeURL(href)));
#if ENABLE(XSLT)
if (m_isXSL)
- m_cachedSheet = document().cachedResourceLoader()->requestXSLStyleSheet(request);
+ m_cachedSheet = document().cachedResourceLoader().requestXSLStyleSheet(request);
else
#endif
{
@@ -156,7 +156,7 @@
charset = document().charset();
request.setCharset(charset);
- m_cachedSheet = document().cachedResourceLoader()->requestCSSStyleSheet(request);
+ m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(request);
}
if (m_cachedSheet)
m_cachedSheet->addClient(this);
Modified: trunk/Source/WebCore/dom/ScriptElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/dom/ScriptElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/dom/ScriptElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -261,7 +261,7 @@
request.setCharset(scriptCharset());
request.setInitiator(&element());
- m_cachedScript = m_element.document().cachedResourceLoader()->requestScript(request);
+ m_cachedScript = m_element.document().cachedResourceLoader().requestScript(request);
m_isExternalScript = true;
}
Modified: trunk/Source/WebCore/editing/Editor.cpp (179241 => 179242)
--- trunk/Source/WebCore/editing/Editor.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/editing/Editor.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -1281,8 +1281,7 @@
if (!canPaste())
return;
updateMarkersForWordsAffectedByEditing(false);
- CachedResourceLoader* loader = document().cachedResourceLoader();
- ResourceCacheValidationSuppressor validationSuppressor(loader);
+ ResourceCacheValidationSuppressor validationSuppressor(document().cachedResourceLoader());
if (m_frame.selection().selection().isContentRichlyEditable())
pasteWithPasteboard(&pasteboard, true);
else
Modified: trunk/Source/WebCore/html/HTMLLinkElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/html/HTMLLinkElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/html/HTMLLinkElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -232,7 +232,7 @@
ResourceLoadPriority priority = isActive ? ResourceLoadPriorityUnresolved : ResourceLoadPriorityVeryLow;
CachedResourceRequest request(ResourceRequest(document().completeURL(url)), charset, priority);
request.setInitiator(this);
- m_cachedSheet = document().cachedResourceLoader()->requestCSSStyleSheet(request);
+ m_cachedSheet = document().cachedResourceLoader().requestCSSStyleSheet(request);
if (m_cachedSheet)
m_cachedSheet->addClient(this);
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -5721,7 +5721,7 @@
CachedResourceLoader* HTMLMediaElement::mediaPlayerCachedResourceLoader()
{
- return document().cachedResourceLoader();
+ return &document().cachedResourceLoader();
}
PassRefPtr<PlatformMediaResourceLoader> HTMLMediaElement::mediaPlayerCreateResourceLoader(std::unique_ptr<PlatformMediaResourceLoaderClient> client)
Modified: trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp (179241 => 179242)
--- trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -73,7 +73,7 @@
return;
CachedResourceRequest request = preload->resourceRequest(m_document);
- m_document.cachedResourceLoader()->preload(preload->resourceType(), request, preload->charset());
+ m_document.cachedResourceLoader().preload(preload->resourceType(), request, preload->charset());
}
Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (179241 => 179242)
--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -255,7 +255,7 @@
CachedResource* InspectorPageAgent::cachedResource(Frame* frame, const URL& url)
{
- CachedResource* cachedResource = frame->document()->cachedResourceLoader()->cachedResource(url);
+ CachedResource* cachedResource = frame->document()->cachedResourceLoader().cachedResource(url);
if (!cachedResource) {
ResourceRequest request(url);
#if ENABLE(CACHE_PARTITIONING)
@@ -447,7 +447,7 @@
{
Vector<CachedResource*> result;
- for (auto& cachedResourceHandle : frame->document()->cachedResourceLoader()->allCachedResources().values()) {
+ for (auto& cachedResourceHandle : frame->document()->cachedResourceLoader().allCachedResources().values()) {
auto* cachedResource = cachedResourceHandle.get();
if (cachedResource->resourceRequest().hiddenFromInspector())
continue;
Modified: trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -366,7 +366,7 @@
newRequest.setInitiator(m_options.initiator);
#endif
ASSERT(!m_resource);
- m_resource = m_document.cachedResourceLoader()->requestRawResource(newRequest);
+ m_resource = m_document.cachedResourceLoader().requestRawResource(newRequest);
if (m_resource) {
if (m_resource->loader()) {
unsigned long identifier = m_resource->loader()->identifier();
Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/FrameLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -713,8 +713,8 @@
m_frame.document()->initContentSecurityPolicy();
const Settings& settings = m_frame.settings();
- m_frame.document()->cachedResourceLoader()->setImagesEnabled(settings.areImagesEnabled());
- m_frame.document()->cachedResourceLoader()->setAutoLoadImages(settings.loadsImagesAutomatically());
+ m_frame.document()->cachedResourceLoader().setImagesEnabled(settings.areImagesEnabled());
+ m_frame.document()->cachedResourceLoader().setAutoLoadImages(settings.loadsImagesAutomatically());
if (m_documentLoader) {
String dnsPrefetchControl = m_documentLoader->response().httpHeaderField(HTTPHeaderName::XDNSPrefetchControl);
@@ -811,7 +811,7 @@
return;
// Still waiting for images/scripts?
- if (m_frame.document()->cachedResourceLoader()->requestCount())
+ if (m_frame.document()->cachedResourceLoader().requestCount())
return;
// Still waiting for elements that don't go through a FrameLoader?
@@ -2447,11 +2447,11 @@
int FrameLoader::numPendingOrLoadingRequests(bool recurse) const
{
if (!recurse)
- return m_frame.document()->cachedResourceLoader()->requestCount();
+ return m_frame.document()->cachedResourceLoader().requestCount();
int count = 0;
for (Frame* frame = &m_frame; frame; frame = frame->tree().traverseNext(&m_frame))
- count += frame->document()->cachedResourceLoader()->requestCount();
+ count += frame->document()->cachedResourceLoader().requestCount();
return count;
}
Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/ImageLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -188,15 +188,15 @@
}
if (m_loadManually) {
- bool autoLoadOtherImages = document.cachedResourceLoader()->autoLoadImages();
- document.cachedResourceLoader()->setAutoLoadImages(false);
+ bool autoLoadOtherImages = document.cachedResourceLoader().autoLoadImages();
+ document.cachedResourceLoader().setAutoLoadImages(false);
newImage = new CachedImage(request.resourceRequest(), m_element.document().page()->sessionID());
newImage->setLoading(true);
- newImage->setOwningCachedResourceLoader(document.cachedResourceLoader());
- document.cachedResourceLoader()->m_documentResources.set(newImage->url(), newImage.get());
- document.cachedResourceLoader()->setAutoLoadImages(autoLoadOtherImages);
+ newImage->setOwningCachedResourceLoader(&document.cachedResourceLoader());
+ document.cachedResourceLoader().m_documentResources.set(newImage->url(), newImage.get());
+ document.cachedResourceLoader().setAutoLoadImages(autoLoadOtherImages);
} else
- newImage = document.cachedResourceLoader()->requestImage(request);
+ newImage = document.cachedResourceLoader().requestImage(request);
// If we do not have an image here, it means that a cross-site
// violation occurred, or that the image was blocked via Content
Modified: trunk/Source/WebCore/loader/LinkLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/LinkLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/LinkLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -117,9 +117,9 @@
if (m_cachedLinkResource) {
m_cachedLinkResource->removeClient(this);
- m_cachedLinkResource = 0;
+ m_cachedLinkResource = nullptr;
}
- m_cachedLinkResource = document->cachedResourceLoader()->requestLinkResource(type, linkRequest);
+ m_cachedLinkResource = document->cachedResourceLoader().requestLinkResource(type, linkRequest);
if (m_cachedLinkResource)
m_cachedLinkResource->addClient(this);
}
Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -66,8 +66,7 @@
m_didPassAccessControlCheck = false;
- CachedResourceLoader* loader = m_document.cachedResourceLoader();
- m_resource = loader ? loader->requestRawResource(cacheRequest) : nullptr;
+ m_resource = m_document.cachedResourceLoader().requestRawResource(cacheRequest);
if (!m_resource)
return false;
Modified: trunk/Source/WebCore/loader/SubresourceLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/SubresourceLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/SubresourceLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -54,16 +54,16 @@
DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, subresourceLoaderCounter, ("SubresourceLoader"));
-SubresourceLoader::RequestCountTracker::RequestCountTracker(CachedResourceLoader* cachedResourceLoader, CachedResource* resource)
+SubresourceLoader::RequestCountTracker::RequestCountTracker(CachedResourceLoader& cachedResourceLoader, CachedResource* resource)
: m_cachedResourceLoader(cachedResourceLoader)
, m_resource(resource)
{
- m_cachedResourceLoader->incrementRequestCount(m_resource);
+ m_cachedResourceLoader.incrementRequestCount(m_resource);
}
SubresourceLoader::RequestCountTracker::~RequestCountTracker()
{
- m_cachedResourceLoader->decrementRequestCount(m_resource);
+ m_cachedResourceLoader.decrementRequestCount(m_resource);
}
SubresourceLoader::SubresourceLoader(Frame* frame, CachedResource* resource, const ResourceLoaderOptions& options)
Modified: trunk/Source/WebCore/loader/SubresourceLoader.h (179241 => 179242)
--- trunk/Source/WebCore/loader/SubresourceLoader.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/SubresourceLoader.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -107,10 +107,10 @@
class RequestCountTracker {
public:
- RequestCountTracker(CachedResourceLoader*, CachedResource*);
+ RequestCountTracker(CachedResourceLoader&, CachedResource*);
~RequestCountTracker();
private:
- CachedResourceLoader* m_cachedResourceLoader;
+ CachedResourceLoader& m_cachedResourceLoader;
CachedResource* m_resource;
};
Modified: trunk/Source/WebCore/loader/TextTrackLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/TextTrackLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/TextTrackLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -169,8 +169,7 @@
}
}
- CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader();
- m_resource = cachedResourceLoader->requestTextTrack(cueRequest);
+ m_resource = document->cachedResourceLoader().requestTextTrack(cueRequest);
if (!m_resource)
return false;
Modified: trunk/Source/WebCore/loader/cache/CachedFont.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedFont.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedFont.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -62,7 +62,7 @@
{
}
-void CachedFont::load(CachedResourceLoader*, const ResourceLoaderOptions& options)
+void CachedFont::load(CachedResourceLoader&, const ResourceLoaderOptions& options)
{
// Don't load the file yet. Wait for an access before triggering the load.
setLoading(true);
@@ -84,11 +84,11 @@
checkNotify();
}
-void CachedFont::beginLoadIfNeeded(CachedResourceLoader* dl)
+void CachedFont::beginLoadIfNeeded(CachedResourceLoader& loader)
{
if (!m_loadInitiated) {
m_loadInitiated = true;
- CachedResource::load(dl, m_options);
+ CachedResource::load(loader, m_options);
}
}
Modified: trunk/Source/WebCore/loader/cache/CachedFont.h (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedFont.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedFont.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -47,7 +47,7 @@
CachedFont(const ResourceRequest&, SessionID, Type = FontResource);
virtual ~CachedFont();
- void beginLoadIfNeeded(CachedResourceLoader* dl);
+ void beginLoadIfNeeded(CachedResourceLoader&);
virtual bool stillNeedsLoad() const override { return !m_loadInitiated; }
virtual bool ensureCustomFontData(bool externalSVG, const AtomicString& remoteURI);
@@ -63,7 +63,7 @@
virtual void checkNotify() override;
virtual bool mayTryReplaceEncodedData() const override;
- virtual void load(CachedResourceLoader*, const ResourceLoaderOptions&) override;
+ virtual void load(CachedResourceLoader&, const ResourceLoaderOptions&) override;
virtual void didAddClient(CachedResourceClient*) override;
virtual void finishLoading(SharedBuffer*) override;
Modified: trunk/Source/WebCore/loader/cache/CachedImage.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedImage.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedImage.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -107,9 +107,9 @@
clearImage();
}
-void CachedImage::load(CachedResourceLoader* cachedResourceLoader, const ResourceLoaderOptions& options)
+void CachedImage::load(CachedResourceLoader& cachedResourceLoader, const ResourceLoaderOptions& options)
{
- if (!cachedResourceLoader || cachedResourceLoader->autoLoadImages())
+ if (cachedResourceLoader.autoLoadImages())
CachedResource::load(cachedResourceLoader, options);
else
setLoading(false);
Modified: trunk/Source/WebCore/loader/cache/CachedImage.h (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedImage.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedImage.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -85,7 +85,7 @@
bool isManuallyCached() const { return m_isManuallyCached; }
virtual bool mustRevalidateDueToCacheHeaders(const CachedResourceLoader&, CachePolicy) const override;
- virtual void load(CachedResourceLoader*, const ResourceLoaderOptions&) override;
+ virtual void load(CachedResourceLoader&, const ResourceLoaderOptions&) override;
bool isOriginClean(SecurityOrigin*);
Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedResource.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -185,13 +185,13 @@
error(CachedResource::LoadError);
}
-void CachedResource::addAdditionalRequestHeaders(CachedResourceLoader* cachedResourceLoader)
+void CachedResource::addAdditionalRequestHeaders(CachedResourceLoader& cachedResourceLoader)
{
// Note: We skip the Content-Security-Policy check here because we check
// the Content-Security-Policy at the CachedResourceLoader layer so we can
// handle different resource types differently.
- FrameLoader& frameLoader = cachedResourceLoader->frame()->loader();
+ FrameLoader& frameLoader = cachedResourceLoader.frame()->loader();
String outgoingReferrer;
String outgoingOrigin;
if (m_resourceRequest.httpReferrer().isNull()) {
@@ -202,7 +202,7 @@
outgoingOrigin = SecurityOrigin::createFromString(outgoingReferrer)->toString();
}
- outgoingReferrer = SecurityPolicy::generateReferrerHeader(cachedResourceLoader->document()->referrerPolicy(), m_resourceRequest.url(), outgoingReferrer);
+ outgoingReferrer = SecurityPolicy::generateReferrerHeader(cachedResourceLoader.document()->referrerPolicy(), m_resourceRequest.url(), outgoingReferrer);
if (outgoingReferrer.isEmpty())
m_resourceRequest.clearHTTPReferrer();
else
@@ -212,14 +212,14 @@
frameLoader.addExtraFieldsToSubresourceRequest(m_resourceRequest);
}
-void CachedResource::load(CachedResourceLoader* cachedResourceLoader, const ResourceLoaderOptions& options)
+void CachedResource::load(CachedResourceLoader& cachedResourceLoader, const ResourceLoaderOptions& options)
{
- if (!cachedResourceLoader->frame()) {
+ if (!cachedResourceLoader.frame()) {
failBeforeStarting();
return;
}
- FrameLoader& frameLoader = cachedResourceLoader->frame()->loader();
+ FrameLoader& frameLoader = cachedResourceLoader.frame()->loader();
if (options.securityCheck() == DoSecurityCheck && (frameLoader.state() == FrameStateProvisional || !frameLoader.activeDocumentLoader() || frameLoader.activeDocumentLoader()->isStopping())) {
failBeforeStarting();
return;
@@ -233,7 +233,7 @@
// When QuickLook is invoked to convert a document, it returns a unique URL in the
// NSURLReponse for the main document. To make safeQLURLForDocumentURLAndResourceURL()
// work, we need to use the QL URL not the original URL.
- const URL& documentURL = cachedResourceLoader->frame() ? cachedResourceLoader->frame()->loader().documentLoader()->response().url() : cachedResourceLoader->document()->url();
+ const URL& documentURL = cachedResourceLoader.frame() ? cachedResourceLoader.frame()->loader().documentLoader()->response().url() : cachedResourceLoader.document()->url();
m_resourceRequest.setURL(safeQLURLForDocumentURLAndResourceURL(documentURL, url()));
}
#endif
@@ -248,8 +248,8 @@
const String& lastModified = resourceToRevalidate->response().httpHeaderField(HTTPHeaderName::LastModified);
const String& eTag = resourceToRevalidate->response().httpHeaderField(HTTPHeaderName::ETag);
if (!lastModified.isEmpty() || !eTag.isEmpty()) {
- ASSERT(cachedResourceLoader->cachePolicy(type()) != CachePolicyReload);
- if (cachedResourceLoader->cachePolicy(type()) == CachePolicyRevalidate)
+ ASSERT(cachedResourceLoader.cachePolicy(type()) != CachePolicyReload);
+ if (cachedResourceLoader.cachePolicy(type()) == CachePolicyRevalidate)
m_resourceRequest.setHTTPHeaderField(HTTPHeaderName::CacheControl, "max-age=0");
if (!lastModified.isEmpty())
m_resourceRequest.setHTTPHeaderField(HTTPHeaderName::IfModifiedSince, lastModified);
@@ -277,7 +277,7 @@
m_fragmentIdentifierForRequest = String();
}
- m_loader = platformStrategies()->loaderStrategy()->resourceLoadScheduler()->scheduleSubresourceLoad(cachedResourceLoader->frame(), this, request, options);
+ m_loader = platformStrategies()->loaderStrategy()->resourceLoadScheduler()->scheduleSubresourceLoad(cachedResourceLoader.frame(), this, request, options);
if (!m_loader) {
failBeforeStarting();
return;
Modified: trunk/Source/WebCore/loader/cache/CachedResource.h (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedResource.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedResource.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -94,7 +94,7 @@
CachedResource(const ResourceRequest&, Type, SessionID);
virtual ~CachedResource();
- virtual void load(CachedResourceLoader*, const ResourceLoaderOptions&);
+ virtual void load(CachedResourceLoader&, const ResourceLoaderOptions&);
virtual void setEncoding(const String&) { }
virtual String encoding() const { return String(); }
@@ -282,7 +282,7 @@
double freshnessLifetime(const ResourceResponse&) const;
- void addAdditionalRequestHeaders(CachedResourceLoader*);
+ void addAdditionalRequestHeaders(CachedResourceLoader&);
void failBeforeStarting();
HashMap<CachedResourceClient*, std::unique_ptr<Callback>> m_clientsAwaitingCallback;
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -228,7 +228,7 @@
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?
- userSheet->load(this, ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForAllCredentials, SkipSecurityCheck, UseDefaultOriginRestrictionsForType, DoNotIncludeCertificateInfo));
+ userSheet->load(*this, ResourceLoaderOptions(DoNotSendCallbacks, SniffContent, BufferData, AllowStoredCredentials, AskClientForAllCredentials, SkipSecurityCheck, UseDefaultOriginRestrictionsForType, DoNotIncludeCertificateInfo));
return userSheet;
}
@@ -516,7 +516,7 @@
resource->setLoadPriority(request.priority());
if ((policy != Use || resource->stillNeedsLoad()) && CachedResourceRequest::NoDefer == request.defer()) {
- resource->load(this, request.options());
+ resource->load(*this, request.options());
// We don't support immediate loads, but we do support immediate failure.
if (resource->errorOccurred()) {
@@ -763,7 +763,7 @@
for (DocumentResourceMap::iterator it = m_documentResources.begin(); it != end; ++it) {
CachedResource* resource = it->value.get();
if (is<CachedImage>(*resource) && resource->stillNeedsLoad() && !clientDefersImage(resource->url()))
- downcast<CachedImage>(*resource).load(this, defaultCachedResourceOptions());
+ downcast<CachedImage>(*resource).load(*this, defaultCachedResourceOptions());
}
}
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.h (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -194,22 +194,18 @@
WTF_MAKE_NONCOPYABLE(ResourceCacheValidationSuppressor);
WTF_MAKE_FAST_ALLOCATED;
public:
- ResourceCacheValidationSuppressor(CachedResourceLoader* loader)
+ ResourceCacheValidationSuppressor(CachedResourceLoader& loader)
: m_loader(loader)
- , m_previousState(false)
+ , m_previousState(m_loader.m_allowStaleResources)
{
- if (m_loader) {
- m_previousState = m_loader->m_allowStaleResources;
- m_loader->m_allowStaleResources = true;
- }
+ m_loader.m_allowStaleResources = true;
}
~ResourceCacheValidationSuppressor()
{
- if (m_loader)
- m_loader->m_allowStaleResources = m_previousState;
+ m_loader.m_allowStaleResources = m_previousState;
}
private:
- CachedResourceLoader* m_loader;
+ CachedResourceLoader& m_loader;
bool m_previousState;
};
Modified: trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -53,15 +53,14 @@
}
}
-void CachedSVGDocumentReference::load(CachedResourceLoader* loader)
+void CachedSVGDocumentReference::load(CachedResourceLoader& loader)
{
- ASSERT(loader);
if (m_loadRequested)
return;
- CachedResourceRequest request(ResourceRequest(loader->document()->completeURL(m_url)));
+ CachedResourceRequest request(ResourceRequest(loader.document()->completeURL(m_url)));
request.setInitiator(cachedResourceRequestInitiators().css);
- m_document = loader->requestSVGDocument(request);
+ m_document = loader.requestSVGDocument(request);
if (m_document) {
m_document->setCanReuse(m_canReuseResource);
m_document->addClient(this);
Modified: trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.h (179241 => 179242)
--- trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/cache/CachedSVGDocumentReference.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -41,7 +41,7 @@
virtual ~CachedSVGDocumentReference();
- void load(CachedResourceLoader*);
+ void load(CachedResourceLoader&);
bool loadRequested() const { return m_loadRequested; }
CachedSVGDocument* document() { return m_document.get(); }
Modified: trunk/Source/WebCore/loader/icon/IconLoader.cpp (179241 => 179242)
--- trunk/Source/WebCore/loader/icon/IconLoader.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/loader/icon/IconLoader.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -63,7 +63,7 @@
request.mutableResourceRequest().setPriority(ResourceLoadPriorityLow);
request.setInitiator(cachedResourceRequestInitiators().icon);
- m_resource = m_frame.document()->cachedResourceLoader()->requestRawResource(request);
+ m_resource = m_frame.document()->cachedResourceLoader().requestRawResource(request);
if (m_resource)
m_resource->addClient(this);
else
@@ -74,7 +74,7 @@
{
if (m_resource) {
m_resource->removeClient(this);
- m_resource = 0;
+ m_resource = nullptr;
}
}
Modified: trunk/Source/WebCore/page/DragController.cpp (179241 => 179242)
--- trunk/Source/WebCore/page/DragController.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/page/DragController.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -487,8 +487,7 @@
if (!range)
return false;
- CachedResourceLoader* cachedResourceLoader = range->ownerDocument().cachedResourceLoader();
- ResourceCacheValidationSuppressor validationSuppressor(cachedResourceLoader);
+ ResourceCacheValidationSuppressor validationSuppressor(range->ownerDocument().cachedResourceLoader());
if (dragIsMove(innerFrame->selection(), dragData) || dragCaret.isContentRichlyEditable()) {
bool chosePlainText = false;
RefPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, *innerFrame, *range, true, chosePlainText);
Modified: trunk/Source/WebCore/page/Settings.cpp (179241 => 179242)
--- trunk/Source/WebCore/page/Settings.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/page/Settings.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -57,8 +57,8 @@
return;
for (Frame* frame = &page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
- frame->document()->cachedResourceLoader()->setImagesEnabled(page->settings().areImagesEnabled());
- frame->document()->cachedResourceLoader()->setAutoLoadImages(page->settings().loadsImagesAutomatically());
+ frame->document()->cachedResourceLoader().setImagesEnabled(page->settings().areImagesEnabled());
+ frame->document()->cachedResourceLoader().setAutoLoadImages(page->settings().loadsImagesAutomatically());
}
}
Modified: trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp (179241 => 179242)
--- trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -196,8 +196,8 @@
LayoutSize scrollOffset;
FrameView* view = nullptr;
- if (m_player && m_player->cachedResourceLoader() && m_player->cachedResourceLoader()->document())
- view = m_player->cachedResourceLoader()->document()->view();
+ if (m_player && m_player->cachedResourceLoader() && m_player->cachedResourceLoader().document())
+ view = m_player->cachedResourceLoader().document()->view();
if (view)
scrollOffset = view->scrollOffsetForFixedPosition();
@@ -434,9 +434,9 @@
{
HWND hWndParent = nullptr;
FrameView* view = nullptr;
- if (!m_player || !m_player->cachedResourceLoader() || !m_player->cachedResourceLoader()->document())
+ if (!m_player || !m_player->cachedResourceLoader() || !m_player->cachedResourceLoader().document())
return;
- view = m_player->cachedResourceLoader()->document()->view();
+ view = m_player->cachedResourceLoader().document()->view();
if (!view || !view->hostWindow())
return;
hWndParent = view->hostWindow()->platformPageClient();
Modified: trunk/Source/WebCore/svg/SVGFEImageElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/svg/SVGFEImageElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/svg/SVGFEImageElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -82,7 +82,7 @@
{
CachedResourceRequest request(ResourceRequest(document().completeURL(href())));
request.setInitiator(this);
- m_cachedImage = document().cachedResourceLoader()->requestImage(request);
+ m_cachedImage = document().cachedResourceLoader().requestImage(request);
if (m_cachedImage)
m_cachedImage->addClient(this);
Modified: trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/svg/SVGFontFaceUriElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -101,10 +101,10 @@
const AtomicString& href = ""
if (!href.isNull()) {
- CachedResourceLoader* cachedResourceLoader = document().cachedResourceLoader();
+ CachedResourceLoader& cachedResourceLoader = document().cachedResourceLoader();
CachedResourceRequest request(ResourceRequest(document().completeURL(href)));
request.setInitiator(this);
- m_cachedFont = cachedResourceLoader->requestFont(request, isSVGFontTarget(*this));
+ m_cachedFont = cachedResourceLoader.requestFont(request, isSVGFontTarget(*this));
if (m_cachedFont) {
m_cachedFont->addClient(this);
m_cachedFont->beginLoadIfNeeded(cachedResourceLoader);
Modified: trunk/Source/WebCore/svg/SVGUseElement.cpp (179241 => 179242)
--- trunk/Source/WebCore/svg/SVGUseElement.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/svg/SVGUseElement.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -260,7 +260,7 @@
if (url.hasFragmentIdentifier()) {
CachedResourceRequest request(ResourceRequest(url.string()));
request.setInitiator(this);
- setCachedDocument(document().cachedResourceLoader()->requestSVGDocument(request));
+ setCachedDocument(document().cachedResourceLoader().requestSVGDocument(request));
}
} else
setCachedDocument(0);
Modified: trunk/Source/WebCore/testing/Internals.cpp (179241 => 179242)
--- trunk/Source/WebCore/testing/Internals.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/testing/Internals.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -373,7 +373,7 @@
bool Internals::isPreloaded(const String& url)
{
Document* document = contextDocument();
- return document->cachedResourceLoader()->isPreloaded(url);
+ return document->cachedResourceLoader().isPreloaded(url);
}
bool Internals::isLoadingFromMemoryCache(const String& url)
@@ -1685,11 +1685,7 @@
ec = INVALID_ACCESS_ERR;
return;
}
-
- CachedResourceLoader* cachedResourceLoader = document->cachedResourceLoader();
- if (!cachedResourceLoader)
- return;
- cachedResourceLoader->garbageCollectDocumentResources();
+ document->cachedResourceLoader().garbageCollectDocumentResources();
}
void Internals::allowRoundingHacks() const
Modified: trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp (179241 => 179242)
--- trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/xml/XSLStyleSheetLibxslt.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -127,8 +127,8 @@
{
Document* document = ownerDocument();
if (!document)
- return 0;
- return document->cachedResourceLoader();
+ return nullptr;
+ return &document->cachedResourceLoader();
}
bool XSLStyleSheet::parseString(const String& string)
Modified: trunk/Source/WebCore/xml/XSLTProcessorLibxslt.cpp (179241 => 179242)
--- trunk/Source/WebCore/xml/XSLTProcessorLibxslt.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/xml/XSLTProcessorLibxslt.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -288,7 +288,7 @@
// HTML (create an HTML document), XML (create an XML document),
// and text (wrap in a <pre> and create an XML document).
- const xmlChar* resultType = 0;
+ const xmlChar* resultType = nullptr;
XSLT_GET_IMPORT_PTR(resultType, sheet, method);
if (!resultType && resultDoc->type == XML_HTML_DOCUMENT_NODE)
resultType = (const xmlChar*)"html";
@@ -305,11 +305,11 @@
{
Ref<Document> ownerDocument(sourceNode.document());
- setXSLTLoadCallBack(docLoaderFunc, this, ownerDocument->cachedResourceLoader());
+ setXSLTLoadCallBack(docLoaderFunc, this, &ownerDocument->cachedResourceLoader());
xsltStylesheetPtr sheet = xsltStylesheetPointer(m_stylesheet, m_stylesheetRootNode.get());
if (!sheet) {
- setXSLTLoadCallBack(0, 0, 0);
- m_stylesheet = 0;
+ setXSLTLoadCallBack(nullptr, nullptr, nullptr);
+ m_stylesheet = nullptr;
return false;
}
m_stylesheet->clearDocuments();
Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParser.h (179241 => 179242)
--- trunk/Source/WebCore/xml/parser/XMLDocumentParser.h 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParser.h 2015-01-28 05:53:53 UTC (rev 179242)
@@ -192,7 +192,7 @@
};
#if ENABLE(XSLT)
-void* xmlDocPtrForString(CachedResourceLoader*, const String& source, const String& url);
+void* xmlDocPtrForString(CachedResourceLoader&, const String& source, const String& url);
#endif
HashMap<String, String> parseAttributes(const String&, bool& attrsOK);
Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp (179241 => 179242)
--- trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -680,7 +680,7 @@
// keep this alive until this function is done.
Ref<XMLDocumentParser> protect(*this);
- XMLDocumentParserScope scope(document()->cachedResourceLoader());
+ XMLDocumentParserScope scope(&document()->cachedResourceLoader());
// FIXME: Can we parse 8-bit strings directly as Latin-1 instead of upconverting to UTF-16?
switchToUTF16(context->context());
@@ -1352,7 +1352,7 @@
m_sawXSLTransform = false;
m_sawFirstElement = false;
- XMLDocumentParserScope scope(document()->cachedResourceLoader());
+ XMLDocumentParserScope scope(&document()->cachedResourceLoader());
if (m_parsingFragment)
m_context = XMLParserContext::createMemoryParser(&sax, this, chunk);
else {
@@ -1367,11 +1367,11 @@
if (m_context) {
// Tell libxml we're done.
{
- XMLDocumentParserScope scope(document()->cachedResourceLoader());
+ XMLDocumentParserScope scope(&document()->cachedResourceLoader());
xmlParseChunk(context(), 0, 0, 1);
}
- m_context = 0;
+ m_context = nullptr;
}
}
@@ -1406,10 +1406,10 @@
return BOMHighByte == 0xFF ? "UTF-16LE" : "UTF-16BE";
}
-void* xmlDocPtrForString(CachedResourceLoader* cachedResourceLoader, const String& source, const String& url)
+void* xmlDocPtrForString(CachedResourceLoader& cachedResourceLoader, const String& source, const String& url)
{
if (source.isEmpty())
- return 0;
+ return nullptr;
// Parse in a single chunk into an xmlDocPtr
// FIXME: Hook up error handlers so that a failure to parse the main document results in
@@ -1420,7 +1420,7 @@
size_t sizeInBytes = source.length() * (is8Bit ? sizeof(LChar) : sizeof(UChar));
const char* encoding = is8Bit ? "iso-8859-1" : nativeEndianUTF16Encoding();
- XMLDocumentParserScope scope(cachedResourceLoader, errorFunc, 0);
+ XMLDocumentParserScope scope(&cachedResourceLoader, errorFunc);
return xmlReadMemory(characters, sizeInBytes, url.latin1().data(), encoding, XSLT_PARSE_OPTIONS);
}
#endif
Modified: trunk/Source/WebKit/win/ChangeLog (179241 => 179242)
--- trunk/Source/WebKit/win/ChangeLog 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebKit/win/ChangeLog 2015-01-28 05:53:53 UTC (rev 179242)
@@ -1,3 +1,15 @@
+2015-01-27 Chris Dumez <[email protected]>
+
+ Use a Ref<CachedResourceLoader> in Document instead of a RefPtr
+ https://bugs.webkit.org/show_bug.cgi?id=140971
+
+ Reviewed by Andreas Kling.
+
+ Use more references instead of pointers.
+
+ * WebDataSource.cpp:
+ (WebDataSource::subresourceForURL):
+
2015-01-26 Brent Fulgham <[email protected]>
[Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener
Modified: trunk/Source/WebKit/win/WebDataSource.cpp (179241 => 179242)
--- trunk/Source/WebKit/win/WebDataSource.cpp 2015-01-28 05:48:59 UTC (rev 179241)
+++ trunk/Source/WebKit/win/WebDataSource.cpp 2015-01-28 05:53:53 UTC (rev 179242)
@@ -288,14 +288,14 @@
return E_POINTER;
}
- *resource = 0;
+ *resource = nullptr;
- Document *doc = m_loader->frameLoader()->frame().document();
+ Document* doc = m_loader->frameLoader()->frame().document();
if (!doc)
return E_FAIL;
- CachedResource *cachedResource = doc->cachedResourceLoader()->cachedResource(String(url));
+ CachedResource* cachedResource = doc->cachedResourceLoader().cachedResource(String(url));
if (!cachedResource)
return E_FAIL;