diff options
Diffstat (limited to 'WebCore/html/HTMLImageLoader.cpp')
-rw-r--r-- | WebCore/html/HTMLImageLoader.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/WebCore/html/HTMLImageLoader.cpp b/WebCore/html/HTMLImageLoader.cpp index c6f49aa..6e31d9b 100644 --- a/WebCore/html/HTMLImageLoader.cpp +++ b/WebCore/html/HTMLImageLoader.cpp @@ -1,7 +1,7 @@ /* * Copyright (C) 1999 Lars Knoll (knoll@kde.org) * (C) 1999 Antti Koivisto (koivisto@kde.org) - * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2004, 2005, 2006, 2007, 2010 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -30,6 +30,10 @@ #include "HTMLNames.h" #include "HTMLObjectElement.h" +#if USE(JSC) +#include "JSDOMWindowBase.h" +#endif + namespace WebCore { HTMLImageLoader::HTMLImageLoader(Element* node) @@ -55,12 +59,21 @@ String HTMLImageLoader::sourceURI(const AtomicString& attr) const } void HTMLImageLoader::notifyFinished(CachedResource*) -{ +{ CachedImage* cachedImage = image(); Element* elem = element(); ImageLoader::notifyFinished(cachedImage); +#if USE(JSC) + if (!cachedImage->errorOccurred() && !cachedImage->httpStatusCodeErrorOccurred()) { + if (!elem->inDocument()) { + JSC::JSGlobalData* globalData = JSDOMWindowBase::commonJSGlobalData(); + globalData->heap.reportExtraMemoryCost(cachedImage->encodedSize()); + } + } +#endif + if ((cachedImage->errorOccurred() || cachedImage->httpStatusCodeErrorOccurred()) && elem->hasTagName(HTMLNames::objectTag)) static_cast<HTMLObjectElement*>(elem)->renderFallbackContent(); } |